@sjcrh/proteinpaint-client 2.187.0 → 2.188.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (963) hide show
  1. package/dist/2dmaf-6YIEXAIG.js +1372 -0
  2. package/dist/AIProjectAdmin-5K5NIQNT.js +828 -0
  3. package/dist/AppHeader-4SN5M6SZ.js +834 -0
  4. package/dist/BoxPlot-DBJA6TQF.js +1218 -0
  5. package/dist/CorrelationVolcano-MDMTMTT5.js +618 -0
  6. package/dist/DE-S5AFNI4I.js +94 -0
  7. package/dist/DEinput-XVBBA74N.js +300 -0
  8. package/dist/DifferentialAnalysis-TUBGPAB2.js +244 -0
  9. package/dist/DifferentialAnalysis-TUBGPAB2.js.map +7 -0
  10. package/dist/Disco-VV7FQ7WW.js +3236 -0
  11. package/dist/Disco.UI-JDJFJFEY.js +244 -0
  12. package/dist/DmrPlot-XOG67W74.js +641 -0
  13. package/dist/GB-K3AWZQFF.js +1129 -0
  14. package/dist/GeneExpInput-Y7MDS2CA.js +365 -0
  15. package/dist/HicApp-53OTZ3YU.js +2249 -0
  16. package/dist/NumBinaryEditor-SB4YR3JM.js +269 -0
  17. package/dist/NumBinaryEditor.unit.spec-V2W2OZYP.js +285 -0
  18. package/dist/NumContEditor-RZZBM7PR.js +106 -0
  19. package/dist/NumContEditor.unit.spec-GAAW3ZZN.js +168 -0
  20. package/dist/NumCustomBinEditor-GFCGPRPI.js +37 -0
  21. package/dist/NumCustomBinEditor.unit.spec-24MXSO3L.js +283 -0
  22. package/dist/NumDiscreteEditor-HAHIOFNC.js +178 -0
  23. package/dist/NumDiscreteEditor.unit.spec-JYN2CWSI.js +201 -0
  24. package/dist/NumRegularBinEditor-7DOE64RB.js +37 -0
  25. package/dist/NumRegularBinEditor.unit.spec-2WU4GGNT.js +226 -0
  26. package/dist/NumSplineEditor-JLRD5TVX.js +191 -0
  27. package/dist/NumSplineEditor.unit.spec-LOG7CECJ.js +198 -0
  28. package/dist/NumericDensity-IDOP7I34.js +37 -0
  29. package/dist/NumericDensity.unit.spec-HTJQRPVH.js +220 -0
  30. package/dist/NumericHandler-DWVVGLLB.js +38 -0
  31. package/dist/NumericHandler.unit.spec-BDDFTHOF.js +218 -0
  32. package/dist/ProteomeInput-PK4ZM3SZ.js +395 -0
  33. package/dist/ProteomeInput-PK4ZM3SZ.js.map +7 -0
  34. package/dist/RunChart2-PBJ56YX3.js +757 -0
  35. package/dist/SC-UC3HP2MY.js +830 -0
  36. package/dist/SC-UC3HP2MY.js.map +7 -0
  37. package/dist/Volcano-BZJCA53R.js +1314 -0
  38. package/dist/Volcano-BZJCA53R.js.map +7 -0
  39. package/dist/WSIViewer-OHOP2DZT.js +48475 -0
  40. package/dist/WSIViewer-OHOP2DZT.js.map +7 -0
  41. package/dist/WsiSamplesPlot-FOMPMEXK.js +164 -0
  42. package/dist/adSandbox-SRPPCYYR.js +37 -0
  43. package/dist/alphaGenome-IS2WAJCK.js +174 -0
  44. package/dist/app-GTHYSGWI.js +36 -0
  45. package/dist/app-XEKETNLG.js +48 -0
  46. package/dist/app.js +20 -20
  47. package/dist/bam-GQBFL6A7.js +859 -0
  48. package/dist/barchart-AESC4JSX.js +46 -0
  49. package/dist/barchart.data-RE34IC4G.js +22 -0
  50. package/dist/barchart.events-KM4J5ISO.js +46 -0
  51. package/dist/barchart.integration.spec-DFVSBGO3.js +1676 -0
  52. package/dist/barchart2-NNTL4RQZ.js +310 -0
  53. package/dist/block-EHZM3FUX.js +6201 -0
  54. package/dist/block.init-EAEFNNF6.js +37 -0
  55. package/dist/block.mds.expressionrank-ZBHA2CFE.js +358 -0
  56. package/dist/block.mds.geneboxplot-4ZU3QUAK.js +827 -0
  57. package/dist/block.mds.junction-PDH55JXO.js +1544 -0
  58. package/dist/block.mds.svcnv-QWBU54XQ.js +6800 -0
  59. package/dist/block.svg-HUGBYWXU.js +163 -0
  60. package/dist/block.tk.aicheck-SDCWXQZF.js +282 -0
  61. package/dist/block.tk.ase-HMUTHCJS.js +364 -0
  62. package/dist/block.tk.bam-Q7B2YQLI.js +1905 -0
  63. package/dist/block.tk.bedgraphdot-QBGBSVHN.js +383 -0
  64. package/dist/block.tk.bigwig.ui-767A3MUH.js +211 -0
  65. package/dist/block.tk.hicstraw-LEZUZHLF.js +822 -0
  66. package/dist/block.tk.junction-GQHCZOYR.js +2363 -0
  67. package/dist/block.tk.junction.textmatrixui-D5QUO7KQ.js +198 -0
  68. package/dist/block.tk.ld-E3MHZOG5.js +98 -0
  69. package/dist/block.tk.menu-XE7PFYGR.js +1028 -0
  70. package/dist/block.tk.pgv-MPPMPDED.js +943 -0
  71. package/dist/brainImaging-YQ443NOL.js +422 -0
  72. package/dist/chunk-26WXJBSR.js +228 -0
  73. package/dist/chunk-2P6Z7JFC.js +119 -0
  74. package/dist/chunk-2QQO4RRD.js +2681 -0
  75. package/dist/chunk-2T7VYQLY.js +281 -0
  76. package/dist/chunk-2T7VYQLY.js.map +7 -0
  77. package/dist/chunk-2XPDA6NL.js +20652 -0
  78. package/dist/chunk-2XPDA6NL.js.map +7 -0
  79. package/dist/chunk-37ARSZOI.js +2815 -0
  80. package/dist/chunk-42Q53PXE.js +381 -0
  81. package/dist/chunk-46ASPS5Y.js +386 -0
  82. package/dist/chunk-4KPI7PB5.js +142 -0
  83. package/dist/chunk-4MDNMCGZ.js +102 -0
  84. package/dist/chunk-5IG3E4DT.js +272 -0
  85. package/dist/chunk-5MIR7IHI.js +52 -0
  86. package/dist/chunk-5MZVXJVA.js +55 -0
  87. package/dist/chunk-66D5GRS5.js +263 -0
  88. package/dist/chunk-6ATE2TRC.js +534 -0
  89. package/dist/chunk-6BFR6MK3.js +158 -0
  90. package/dist/chunk-6NJMCO4X.js +335 -0
  91. package/dist/chunk-6ON5KAMO.js +54 -0
  92. package/dist/chunk-76GPYMHZ.js +102 -0
  93. package/dist/chunk-7AAFBFOH.js +147 -0
  94. package/dist/chunk-7OOZHEUC.js +302 -0
  95. package/dist/chunk-A4VLWLYF.js +226 -0
  96. package/dist/chunk-A6EFWGWD.js +444 -0
  97. package/dist/chunk-ALW5XXVW.js +170 -0
  98. package/dist/chunk-ANCT2BGO.js +34 -0
  99. package/dist/chunk-AROMXWCY.js +291 -0
  100. package/dist/chunk-AY4UBGLC.js +815 -0
  101. package/dist/chunk-B43MTEYB.js +84 -0
  102. package/dist/chunk-B43MTEYB.js.map +7 -0
  103. package/dist/chunk-BMVLR3TM.js +1210 -0
  104. package/dist/chunk-BR7JA2EO.js +621 -0
  105. package/dist/chunk-C3SYSMNE.js +42 -0
  106. package/dist/chunk-C3SYSMNE.js.map +7 -0
  107. package/dist/chunk-D3HJXMTH.js +17 -0
  108. package/dist/chunk-DKUEZ4XD.js +205 -0
  109. package/dist/chunk-DT3MMC5U.js +31 -0
  110. package/dist/chunk-DYVKN7EE.js +5000 -0
  111. package/dist/chunk-EF37UZY6.js +37 -0
  112. package/dist/chunk-ESXMS7FW.js +229 -0
  113. package/dist/chunk-FDK4UJMN.js +263 -0
  114. package/dist/chunk-FDK4UJMN.js.map +7 -0
  115. package/dist/chunk-FUSVXQ6C.js +368 -0
  116. package/dist/chunk-G7JRRTS5.js +170 -0
  117. package/dist/chunk-G7JRRTS5.js.map +7 -0
  118. package/dist/chunk-GHWHLSUX.js +192 -0
  119. package/dist/chunk-GHWHLSUX.js.map +7 -0
  120. package/dist/chunk-GXKVAPGP.js +2786 -0
  121. package/dist/chunk-H4JIENLQ.js +39 -0
  122. package/dist/chunk-H7YJG4YM.js +470 -0
  123. package/dist/chunk-I24KPIDD.js +148 -0
  124. package/dist/chunk-IENFDUWD.js +203 -0
  125. package/dist/chunk-IKHIY6IZ.js +2327 -0
  126. package/dist/chunk-IKHIY6IZ.js.map +7 -0
  127. package/dist/chunk-J7BISJTL.js +50 -0
  128. package/dist/chunk-J7KYOSEK.js +824 -0
  129. package/dist/chunk-JGPZ5254.js +371 -0
  130. package/dist/chunk-JUIPCWAM.js +194 -0
  131. package/dist/chunk-LO4NMQ7W.js +293 -0
  132. package/dist/chunk-LSSLS5HV.js +95 -0
  133. package/dist/chunk-MDLRB3MR.js +407 -0
  134. package/dist/chunk-MJLKGZ27.js +129 -0
  135. package/dist/chunk-MYWJQRTD.js +1849 -0
  136. package/dist/chunk-MYWJQRTD.js.map +7 -0
  137. package/dist/chunk-NL5T3SBK.js +4209 -0
  138. package/dist/chunk-NMBIT4IK.js +46 -0
  139. package/dist/chunk-NMBIT4IK.js.map +7 -0
  140. package/dist/chunk-ONAYJVN2.js +217 -0
  141. package/dist/chunk-PP7K4R2E.js +141 -0
  142. package/dist/chunk-PP7K4R2E.js.map +7 -0
  143. package/dist/chunk-PSMFOARZ.js +14 -0
  144. package/dist/chunk-QX3GF2IA.js +514 -0
  145. package/dist/chunk-QZ2U4BOS.js +1159 -0
  146. package/dist/chunk-RBZBBNLL.js +1087 -0
  147. package/dist/chunk-RQ2ZJ66W.js +276 -0
  148. package/dist/chunk-RQ2ZJ66W.js.map +7 -0
  149. package/dist/chunk-RZTFQXWV.js +117 -0
  150. package/dist/chunk-SJC2C77V.js +177 -0
  151. package/dist/chunk-THUXB7EE.js +698 -0
  152. package/dist/chunk-THUXB7EE.js.map +7 -0
  153. package/dist/chunk-TVXVP4M6.js +215 -0
  154. package/dist/chunk-UTDPKDIY.js +482 -0
  155. package/dist/chunk-UVIUB7QI.js +280 -0
  156. package/dist/chunk-VAUSRBL5.js +6364 -0
  157. package/dist/chunk-VP3IZVQA.js +54 -0
  158. package/dist/chunk-VP3IZVQA.js.map +7 -0
  159. package/dist/chunk-WP22GYZ2.js +446 -0
  160. package/dist/chunk-WUNX3VST.js +1271 -0
  161. package/dist/chunk-X7GDCYND.js +1561 -0
  162. package/dist/chunk-X7GDCYND.js.map +7 -0
  163. package/dist/chunk-XB3V6S2X.js +1230 -0
  164. package/dist/chunk-XB3V6S2X.js.map +7 -0
  165. package/dist/chunk-XD4TBJK2.js +455 -0
  166. package/dist/chunk-Y6DSXMPB.js +121 -0
  167. package/dist/chunk-YBIZRASR.js +252 -0
  168. package/dist/chunk-YI2YH7ZK.js +158 -0
  169. package/dist/chunk-YLDE3PVC.js +1943 -0
  170. package/dist/chunk-Z736NYXL.js +26 -0
  171. package/dist/chunk-ZEJB7CPC.js +95 -0
  172. package/dist/chunk-ZGWEBKZ4.js +100 -0
  173. package/dist/condition-FSF6ROJV.js +331 -0
  174. package/dist/controls-OPSBFDFZ.js +40 -0
  175. package/dist/controls.config-3QRV5363.js +38 -0
  176. package/dist/correlation-WLOI7Z35.js +97 -0
  177. package/dist/cuminc-G2UGJUUA.js +1148 -0
  178. package/dist/cuminc.integration.spec-X5NEZ6S5.js +677 -0
  179. package/dist/customdata.inputui-RNW3AO3Z.js +288 -0
  180. package/dist/dataDownload-4U3TGDMH.js +329 -0
  181. package/dist/dataDownload.integration.spec-6FUI2SJ4.js +192 -0
  182. package/dist/databrowser.ui-4GVJVJWG.js +432 -0
  183. package/dist/dictionary-NSDS7Z4K.js +110 -0
  184. package/dist/dnaMethylation-OYQB75LD.js +37 -0
  185. package/dist/dnaMethylation.integration.spec-6TTLV34N.js +202 -0
  186. package/dist/dofetch-4TO3QMT6.js +50 -0
  187. package/dist/e2pca-NYBVR6PL.js +349 -0
  188. package/dist/ep-RTDVEA4D.js +1255 -0
  189. package/dist/expclust.gdc.spec-JVIRESTP.js +306 -0
  190. package/dist/facet-OVBF2QMO.js +520 -0
  191. package/dist/forms2-HTLS54CX.js +533 -0
  192. package/dist/gb-Y3546HMZ.js +87 -0
  193. package/dist/geneExpClustering-PH3PWH3K.js +248 -0
  194. package/dist/geneExpression-2Z2EV3XM.js +37 -0
  195. package/dist/geneExpression-6CFXOCGW.js +312 -0
  196. package/dist/geneExpression.unit.spec-WKUTHRHC.js +101 -0
  197. package/dist/geneORA-SHLZESLB.js +277 -0
  198. package/dist/geneVariant-FHZUIFPM.js +38 -0
  199. package/dist/geneVariant-Y7ZUBEOX.js +40 -0
  200. package/dist/geneVariant.integration.spec-N7TZUOY3.js +197 -0
  201. package/dist/genefusion.ui-7PDVZPZ2.js +308 -0
  202. package/dist/geneset-HLVOGYUI.js +202 -0
  203. package/dist/genomeBrowser.spec-7IVIMUR5.js +280 -0
  204. package/dist/grin2-2GNWIYFU.js +845 -0
  205. package/dist/grin2-2GNWIYFU.js.map +7 -0
  206. package/dist/grin2-Z5O7254R.js +1555 -0
  207. package/dist/gsea-TFC3MBRW.js +46 -0
  208. package/dist/hierCluster-ERSE5I4I.js +62 -0
  209. package/dist/hierCluster-QQZQU5ZG.js +58 -0
  210. package/dist/hierCluster.config-WPINWW37.js +39 -0
  211. package/dist/hierCluster.integration.spec-Y6OHSKPW.js +394 -0
  212. package/dist/hierCluster.interactivity-HS3G5QC5.js +53 -0
  213. package/dist/hierCluster.renderers-W63ZKZTT.js +21 -0
  214. package/dist/imagePlot-QFVN25PM.js +162 -0
  215. package/dist/importPlot-MIDM5APH.js +8 -0
  216. package/dist/isoformExpression-L4TRNT4A.js +39 -0
  217. package/dist/isoformExpression.unit.spec-QQG323LA.js +207 -0
  218. package/dist/launch.adhoc-4NQ6GGGL.js +41 -0
  219. package/dist/leftlabel.sample-JU7AIPZL.js +259 -0
  220. package/dist/legacyDataset-TT4CHF23.js +119 -0
  221. package/dist/lollipop-JG74M6PJ.js +170 -0
  222. package/dist/maf-PDL2EGHI.js +451 -0
  223. package/dist/maftimeline-V43NQEEE.js +592 -0
  224. package/dist/matrix-EB2EFP4S.js +57 -0
  225. package/dist/matrix-Q57FU5FE.js +62 -0
  226. package/dist/matrix.cells-NJIMPD32.js +28 -0
  227. package/dist/matrix.config-GLDEQD3H.js +40 -0
  228. package/dist/matrix.data-6SHAKOQU.js +25 -0
  229. package/dist/matrix.groups-MTDEANQA.js +26 -0
  230. package/dist/matrix.integration.spec-JCZ5VQJU.js +3071 -0
  231. package/dist/matrix.interactivity-SVRNWL6V.js +41 -0
  232. package/dist/matrix.layout-2HREO42N.js +43 -0
  233. package/dist/matrix.legend-QHVKT3MP.js +22 -0
  234. package/dist/matrix.renderers-IYR3ZY6V.js +37 -0
  235. package/dist/matrix.serieses-2VMTQXL2.js +21 -0
  236. package/dist/matrix.sort-PWA2RQQR.js +27 -0
  237. package/dist/matrix.sort.unit.spec-3OYIPTFY.js +471 -0
  238. package/dist/matrix.sorterUi-Y5QLO75X.js +18 -0
  239. package/dist/matrix.sorterUi.unit.spec-BNEXQHLP.js +341 -0
  240. package/dist/mavb-IZDDU4KK.js +731 -0
  241. package/dist/mds.fimo-FWBL7JE6.js +517 -0
  242. package/dist/mds.samplescatterplot-T47C7DJB.js +1549 -0
  243. package/dist/mds.survivalplot-MFZJCGS6.js +482 -0
  244. package/dist/numericDictTermCluster-I2W67RGA.js +72 -0
  245. package/dist/oncomatrix-6W7IBAED.js +294 -0
  246. package/dist/oncomatrix.spec-CEFH5IGH.js +447 -0
  247. package/dist/plot.2dvaf-BN6CFLNU.js +376 -0
  248. package/dist/plot.app-7EYWUCZV.js +40 -0
  249. package/dist/plot.barplot-MDIARSQD.js +101 -0
  250. package/dist/plot.boxplot-RUHGXC54.js +151 -0
  251. package/dist/plot.brainImaging-JEE32ZBV.js +51 -0
  252. package/dist/plot.disco-2RPNPX6E.js +101 -0
  253. package/dist/plot.dzi-7VTYYGGW.js +33 -0
  254. package/dist/plot.ssgq-FHE5KU5C.js +138 -0
  255. package/dist/plot.vaf2cov-WDJJM5Q4.js +258 -0
  256. package/dist/plot.wsi-FQZWHNSF.js +36 -0
  257. package/dist/polar-M7EGINN4.js +185 -0
  258. package/dist/polar2-JFYY43K2.js +227 -0
  259. package/dist/profile.spec-SIOHASOX.js +79 -0
  260. package/dist/profileBarchart-6JLEKVJV.js +266 -0
  261. package/dist/profileForms-G6CH73RV.js +440 -0
  262. package/dist/profilePlot-NQYJOBVV.js +53 -0
  263. package/dist/profileRadar-4TNWIXDB.js +262 -0
  264. package/dist/profileRadarFacility-XPH3LCBQ.js +262 -0
  265. package/dist/proteinView-OZLHO45J.js +1222 -0
  266. package/dist/proteinView-OZLHO45J.js.map +7 -0
  267. package/dist/proteomeAbundance-NQ4635NL.js +12 -0
  268. package/dist/proteomeAbundance-OV24UTZN.js +59 -0
  269. package/dist/proteomeAbundance-OV24UTZN.js.map +7 -0
  270. package/dist/qualitative-DL4WJG3O.js +42 -0
  271. package/dist/radar2-YNOQWHBT.js +315 -0
  272. package/dist/radarFacility2-24UPSI7S.js +324 -0
  273. package/dist/regression-URAUTLTD.js +55 -0
  274. package/dist/regression.inputs-UDVOU7FB.js +47 -0
  275. package/dist/regression.inputs.term-BWW6W34R.js +47 -0
  276. package/dist/regression.inputs.values.table-UKGIZTXG.js +44 -0
  277. package/dist/regression.integration.spec-EBHQTNA3.js +783 -0
  278. package/dist/regression.results-XTOSWIP6.js +39 -0
  279. package/dist/regression.spec-KG2I53VR.js +707 -0
  280. package/dist/report-KH7SNPVF.js +221 -0
  281. package/dist/sampleScatter.spec-PIXGS3LG.js +201 -0
  282. package/dist/sampleView-TWS6VT55.js +47 -0
  283. package/dist/samplelst-6AB5Y4WR.js +110 -0
  284. package/dist/samplematrix-AJAF555E.js +2197 -0
  285. package/dist/sc-PMNYZKXA.js +85 -0
  286. package/dist/scatter-Q2GH3ZJD.js +801 -0
  287. package/dist/scatter.integration.spec-SMMYKWH3.js +1195 -0
  288. package/dist/selectGenomeWithTklst-VE4SDYY7.js +133 -0
  289. package/dist/singleCellCellType-S324GCKW.js +37 -0
  290. package/dist/singleCellCellType.unit.spec-NXC2GELH.js +159 -0
  291. package/dist/singleCellGeneExpression-6H4HRKIA.js +37 -0
  292. package/dist/singleCellGeneExpression.unit.spec-HIJXVUWJ.js +152 -0
  293. package/dist/singleCellPlot-H7PCZ2DP.js +52 -0
  294. package/dist/singlecell-4LH3MQVL.js +85 -0
  295. package/dist/singlecell-MOSYT3RI.js +1571 -0
  296. package/dist/snp-IKLGTD4Q.js +37 -0
  297. package/dist/snp.unit.spec-GC74MUVM.js +175 -0
  298. package/dist/snplocus-RIABFSBQ.js +207 -0
  299. package/dist/spliceevent.a53ss.diagram-4E2IYYHL.js +150 -0
  300. package/dist/spliceevent.exonskip.diagram-C56R6XLQ.js +276 -0
  301. package/dist/spliceevent.noeventdiagram-SIPMAKXI.js +459 -0
  302. package/dist/ssGSEA-5QNHLSOI.js +37 -0
  303. package/dist/ssGSEA.unit.spec-KVPN553B.js +87 -0
  304. package/dist/summarizeCnvGeneexp-K4VGJSW6.js +162 -0
  305. package/dist/summarizeGeneexpSurvival-HGHX65FN.js +107 -0
  306. package/dist/summarizeMutationCnv-3K4Z6R2X.js +163 -0
  307. package/dist/summarizeMutationDiagnosis-M2MHUPRT.js +39 -0
  308. package/dist/summarizeMutationSurvival-WVBUP3GA.js +98 -0
  309. package/dist/summary-RZHZXCU5.js +48 -0
  310. package/dist/summary.integration.spec-FGZP7DY7.js +413 -0
  311. package/dist/summaryInput-UGM7MMCR.js +234 -0
  312. package/dist/sunburst-L27U7LV7.js +283 -0
  313. package/dist/survival-5ZMEBV6O.js +57 -0
  314. package/dist/survival-JWRRGTJT.js +45 -0
  315. package/dist/survival.integration.spec-Z5542I4V.js +801 -0
  316. package/dist/svgraph-O6ZVLNNN.js +1386 -0
  317. package/dist/svmr-ULFV7OSH.js +3841 -0
  318. package/dist/table-CHRQH2GH.js +199 -0
  319. package/dist/termCollection-FAO6ZA6F.js +178 -0
  320. package/dist/termCollection-GBXS3GOY.js +37 -0
  321. package/dist/termCollection.unit.spec-4WRTOV6E.js +207 -0
  322. package/dist/tk-KNUBWRNK.js +45 -0
  323. package/dist/tp.ui-2PPYOQYL.js +1458 -0
  324. package/dist/tvs.density-BZ5SKDQS.js +18 -0
  325. package/dist/tvs.dt-TDNSTGQR.js +38 -0
  326. package/dist/tvs.dtcnv.categorical-P2IGIE4I.js +39 -0
  327. package/dist/tvs.dtcnv.continuous-2XUCRBDR.js +71 -0
  328. package/dist/tvs.dtfusion-PRHZVMOG.js +39 -0
  329. package/dist/tvs.dtsnvindel-KGKBW5JS.js +39 -0
  330. package/dist/tvs.dtsv-M3CY5TZF.js +39 -0
  331. package/dist/tvs.numeric-W74JCC5P.js +21 -0
  332. package/dist/tvs.samplelst-BTWFBBAN.js +103 -0
  333. package/dist/tvs.termCollection-Y64QIKOA.js +158 -0
  334. package/dist/violin-3LLHHV3L.js +45 -0
  335. package/dist/violin.integration.spec-6NF5FDLQ.js +1424 -0
  336. package/dist/violin.interactivity-W2AKZ24D.js +37 -0
  337. package/dist/violin.renderer-CRFYYZRI.js +39 -0
  338. package/dist/vocabulary-AUJOAVYS.js +40 -0
  339. package/package.json +4 -3
  340. package/dist/2dmaf-DTWWXOZC.js +0 -1372
  341. package/dist/AIProjectAdmin-BCYIWOXD.js +0 -828
  342. package/dist/AppHeader-H3L2MRWP.js +0 -834
  343. package/dist/BoxPlot-INZ6IN3V.js +0 -1218
  344. package/dist/CorrelationVolcano-AK3XW4ZH.js +0 -618
  345. package/dist/DE-IBSFUKNG.js +0 -94
  346. package/dist/DEinput-H4GMQWDY.js +0 -300
  347. package/dist/DifferentialAnalysis-3DSL5LQC.js +0 -243
  348. package/dist/DifferentialAnalysis-3DSL5LQC.js.map +0 -7
  349. package/dist/Disco-5PXXMGGQ.js +0 -3236
  350. package/dist/Disco.UI-23LOT2U6.js +0 -244
  351. package/dist/DmrPlot-PBCU2XNF.js +0 -641
  352. package/dist/GB-HIEPWNPV.js +0 -1129
  353. package/dist/GeneExpInput-A4JNX7PU.js +0 -365
  354. package/dist/HicApp-IDH2A4BC.js +0 -2249
  355. package/dist/NumBinaryEditor-CZ54X7J3.js +0 -269
  356. package/dist/NumBinaryEditor.unit.spec-QLBRM7MJ.js +0 -285
  357. package/dist/NumContEditor-Z5MGLQ2I.js +0 -106
  358. package/dist/NumContEditor.unit.spec-TR7D7ULV.js +0 -168
  359. package/dist/NumCustomBinEditor-B7JID42Y.js +0 -37
  360. package/dist/NumCustomBinEditor.unit.spec-GZJIVY4K.js +0 -283
  361. package/dist/NumDiscreteEditor-LWHZ36T6.js +0 -178
  362. package/dist/NumDiscreteEditor.unit.spec-QCQCMEWO.js +0 -201
  363. package/dist/NumRegularBinEditor-IATRIUKD.js +0 -37
  364. package/dist/NumRegularBinEditor.unit.spec-J6UTQO76.js +0 -226
  365. package/dist/NumSplineEditor-2KMU6SRO.js +0 -191
  366. package/dist/NumSplineEditor.unit.spec-MX7Y4MTD.js +0 -198
  367. package/dist/NumericDensity-JCH7F5FV.js +0 -37
  368. package/dist/NumericDensity.unit.spec-4TKKRKHF.js +0 -220
  369. package/dist/NumericHandler-7FB3RJM7.js +0 -38
  370. package/dist/NumericHandler.unit.spec-U6DCADZY.js +0 -218
  371. package/dist/RunChart2-VQTIVMKM.js +0 -757
  372. package/dist/SC-XW272KAP.js +0 -827
  373. package/dist/SC-XW272KAP.js.map +0 -7
  374. package/dist/Volcano-Y4U3L6D2.js +0 -1352
  375. package/dist/Volcano-Y4U3L6D2.js.map +0 -7
  376. package/dist/WSIViewer-UFB7TI2D.js +0 -47972
  377. package/dist/WSIViewer-UFB7TI2D.js.map +0 -7
  378. package/dist/WsiSamplesPlot-2OAR57YB.js +0 -164
  379. package/dist/adSandbox-IKKFYRF7.js +0 -37
  380. package/dist/alphaGenome-WJNFQGGK.js +0 -174
  381. package/dist/app-UHGTFH6D.js +0 -48
  382. package/dist/app-YETYAR45.js +0 -36
  383. package/dist/bam-S6U7VNJP.js +0 -859
  384. package/dist/barchart-3NJDGHXU.js +0 -46
  385. package/dist/barchart.data-MVVKPDLE.js +0 -22
  386. package/dist/barchart.events-WQGA4CGB.js +0 -46
  387. package/dist/barchart.integration.spec-E6CJTWRN.js +0 -1676
  388. package/dist/barchart2-UNHFOYKB.js +0 -310
  389. package/dist/block-2XHZLY26.js +0 -6201
  390. package/dist/block.init-CMG4V6RB.js +0 -37
  391. package/dist/block.mds.expressionrank-QX2JOEMV.js +0 -358
  392. package/dist/block.mds.geneboxplot-USVQSDBT.js +0 -827
  393. package/dist/block.mds.junction-R6GJO75N.js +0 -1544
  394. package/dist/block.mds.svcnv-MRISSDAX.js +0 -6800
  395. package/dist/block.svg-Z5KKZTDB.js +0 -163
  396. package/dist/block.tk.aicheck-SOFJYYZX.js +0 -282
  397. package/dist/block.tk.ase-EHX5FV2Y.js +0 -364
  398. package/dist/block.tk.bam-DJS6LODM.js +0 -1905
  399. package/dist/block.tk.bedgraphdot-R2YHPXZA.js +0 -383
  400. package/dist/block.tk.bigwig.ui-VPEEQJLS.js +0 -211
  401. package/dist/block.tk.hicstraw-BDYN573B.js +0 -822
  402. package/dist/block.tk.junction-BONB4BXU.js +0 -2363
  403. package/dist/block.tk.junction.textmatrixui-Y5R6KY4N.js +0 -198
  404. package/dist/block.tk.ld-EGVVSXCB.js +0 -98
  405. package/dist/block.tk.menu-4YBMB5JT.js +0 -1028
  406. package/dist/block.tk.pgv-SBHGL6UH.js +0 -943
  407. package/dist/brainImaging-G3WZDYG6.js +0 -422
  408. package/dist/chunk-2K5DSRBJ.js +0 -84
  409. package/dist/chunk-2K5DSRBJ.js.map +0 -7
  410. package/dist/chunk-2O6JF76T.js +0 -121
  411. package/dist/chunk-2QULGYVE.js +0 -368
  412. package/dist/chunk-2VLGHVOL.js +0 -215
  413. package/dist/chunk-32TTOWY6.js +0 -1210
  414. package/dist/chunk-43PMSEMV.js +0 -50
  415. package/dist/chunk-4KSU6NBP.js +0 -194
  416. package/dist/chunk-4SFX42S7.js +0 -1271
  417. package/dist/chunk-4Y444IRJ.js +0 -272
  418. package/dist/chunk-56AN5PPQ.js +0 -679
  419. package/dist/chunk-56AN5PPQ.js.map +0 -7
  420. package/dist/chunk-5FO3NKA4.js +0 -155
  421. package/dist/chunk-5FO3NKA4.js.map +0 -7
  422. package/dist/chunk-5HOR6JQ2.js +0 -100
  423. package/dist/chunk-5LZKQFLO.js +0 -180
  424. package/dist/chunk-5LZKQFLO.js.map +0 -7
  425. package/dist/chunk-5RE3J6HK.js +0 -293
  426. package/dist/chunk-5SMOOFRW.js +0 -386
  427. package/dist/chunk-64Z22QAH.js +0 -14
  428. package/dist/chunk-6NMH6WPB.js +0 -446
  429. package/dist/chunk-7FKIAQ4K.js +0 -17
  430. package/dist/chunk-7NOKTEHK.js +0 -407
  431. package/dist/chunk-7UHUOC6F.js +0 -119
  432. package/dist/chunk-AMYSEKPF.js +0 -1658
  433. package/dist/chunk-AMYSEKPF.js.map +0 -7
  434. package/dist/chunk-ANGDY7VC.js +0 -170
  435. package/dist/chunk-AQ4OP4GR.js +0 -39
  436. package/dist/chunk-AQVOYTLS.js +0 -177
  437. package/dist/chunk-ARINZFQG.js +0 -276
  438. package/dist/chunk-ARINZFQG.js.map +0 -7
  439. package/dist/chunk-BQJVLXEL.js +0 -55
  440. package/dist/chunk-BRMASRRS.js +0 -455
  441. package/dist/chunk-BT4OOYPT.js +0 -280
  442. package/dist/chunk-BTJFVY3R.js +0 -190
  443. package/dist/chunk-BTJFVY3R.js.map +0 -7
  444. package/dist/chunk-C62CSWMV.js +0 -335
  445. package/dist/chunk-CAWDQURD.js +0 -6364
  446. package/dist/chunk-DMAHNBGN.js +0 -1230
  447. package/dist/chunk-DMAHNBGN.js.map +0 -7
  448. package/dist/chunk-EGWVYY7K.js +0 -264
  449. package/dist/chunk-EGWVYY7K.js.map +0 -7
  450. package/dist/chunk-ENWVV6EU.js +0 -2681
  451. package/dist/chunk-EPOELG75.js +0 -56
  452. package/dist/chunk-EPOELG75.js.map +0 -7
  453. package/dist/chunk-FA44G3GZ.js +0 -470
  454. package/dist/chunk-GD7FKXOA.js +0 -148
  455. package/dist/chunk-GF4OSOYW.js +0 -2815
  456. package/dist/chunk-GQOBT2W7.js +0 -203
  457. package/dist/chunk-GTBL7UHX.js +0 -2786
  458. package/dist/chunk-HE7CD7BD.js +0 -482
  459. package/dist/chunk-I7JDV4ZC.js +0 -226
  460. package/dist/chunk-IABWKPRK.js +0 -534
  461. package/dist/chunk-IPDH4FHY.js +0 -54
  462. package/dist/chunk-JNOOLCYB.js +0 -1159
  463. package/dist/chunk-JPKYHLNI.js +0 -158
  464. package/dist/chunk-KMQ6GQ3I.js +0 -1943
  465. package/dist/chunk-KTCW3JA6.js +0 -4209
  466. package/dist/chunk-L4QG7XZE.js +0 -46
  467. package/dist/chunk-L4QG7XZE.js.map +0 -7
  468. package/dist/chunk-LGUE54VX.js +0 -302
  469. package/dist/chunk-LJ4AUJXC.js +0 -95
  470. package/dist/chunk-LN3QYBGI.js +0 -20495
  471. package/dist/chunk-LN3QYBGI.js.map +0 -7
  472. package/dist/chunk-LQQSRNR5.js +0 -228
  473. package/dist/chunk-LSV4Z473.js +0 -31
  474. package/dist/chunk-LTSR7SLO.js +0 -514
  475. package/dist/chunk-LY7GD74F.js +0 -381
  476. package/dist/chunk-MHCTLVGE.js +0 -26
  477. package/dist/chunk-MSAMGAQF.js +0 -2370
  478. package/dist/chunk-MSAMGAQF.js.map +0 -7
  479. package/dist/chunk-NYX4B5CO.js +0 -291
  480. package/dist/chunk-OPPNZXYG.js +0 -129
  481. package/dist/chunk-P6TPXUMP.js +0 -117
  482. package/dist/chunk-PL2CM7RY.js +0 -621
  483. package/dist/chunk-PSGQWZN4.js +0 -147
  484. package/dist/chunk-PZLYNNST.js +0 -371
  485. package/dist/chunk-RA4RQYXQ.js +0 -142
  486. package/dist/chunk-RAJZYWFN.js +0 -95
  487. package/dist/chunk-ROLVOPVR.js +0 -252
  488. package/dist/chunk-RQZJIBIH.js +0 -34
  489. package/dist/chunk-RSE2FOKW.js +0 -217
  490. package/dist/chunk-SDLRTORS.js +0 -263
  491. package/dist/chunk-TF4EDNQO.js +0 -158
  492. package/dist/chunk-TV74I3Y5.js +0 -43
  493. package/dist/chunk-TV74I3Y5.js.map +0 -7
  494. package/dist/chunk-UPPBAFUK.js +0 -5000
  495. package/dist/chunk-UVPAZM3G.js +0 -52
  496. package/dist/chunk-UWYCEYML.js +0 -815
  497. package/dist/chunk-VB3SRNBK.js +0 -37
  498. package/dist/chunk-W6XQR5UL.js +0 -444
  499. package/dist/chunk-XBBUQW52.js +0 -824
  500. package/dist/chunk-XSA3VIEQ.js +0 -205
  501. package/dist/chunk-XZ6MGJQ3.js +0 -102
  502. package/dist/chunk-YC6ZJ7RP.js +0 -1842
  503. package/dist/chunk-YC6ZJ7RP.js.map +0 -7
  504. package/dist/chunk-YEMIL6QU.js +0 -1087
  505. package/dist/chunk-ZD47FENE.js +0 -229
  506. package/dist/chunk-ZYBM24FU.js +0 -102
  507. package/dist/chunk-ZYY54HBU.js +0 -330
  508. package/dist/chunk-ZYY54HBU.js.map +0 -7
  509. package/dist/condition-ARCN26MF.js +0 -331
  510. package/dist/controls-PKWN2JGN.js +0 -40
  511. package/dist/controls.config-NFRPXFUJ.js +0 -38
  512. package/dist/correlation-DPT6XL2U.js +0 -97
  513. package/dist/cuminc-M4U7LQD5.js +0 -1148
  514. package/dist/cuminc.integration.spec-MH4OFYDJ.js +0 -677
  515. package/dist/customdata.inputui-6TAHAMSV.js +0 -288
  516. package/dist/dataDownload-7GZEYSUT.js +0 -329
  517. package/dist/dataDownload.integration.spec-NAIJRFTV.js +0 -192
  518. package/dist/databrowser.ui-LLXHZ5O6.js +0 -432
  519. package/dist/dictionary-MUAURMYE.js +0 -110
  520. package/dist/dnaMethylation-AU5D3U3E.js +0 -37
  521. package/dist/dnaMethylation.integration.spec-JIDBRA6P.js +0 -202
  522. package/dist/dofetch-WSYK5OTB.js +0 -50
  523. package/dist/e2pca-ICG35YR5.js +0 -349
  524. package/dist/ep-CSSSQOUP.js +0 -1255
  525. package/dist/expclust.gdc.spec-4WPQUXH4.js +0 -306
  526. package/dist/facet-JAGILNY6.js +0 -520
  527. package/dist/forms2-IMVDB6AT.js +0 -533
  528. package/dist/gb-36LTYICV.js +0 -87
  529. package/dist/geneExpClustering-CGMENTHI.js +0 -248
  530. package/dist/geneExpression-AD2L46J4.js +0 -37
  531. package/dist/geneExpression-G2FHBDUQ.js +0 -312
  532. package/dist/geneExpression.unit.spec-XWCB7K5L.js +0 -101
  533. package/dist/geneORA-GVHQF7DF.js +0 -277
  534. package/dist/geneVariant-HE22CH76.js +0 -40
  535. package/dist/geneVariant-SQD5QUFH.js +0 -38
  536. package/dist/geneVariant.integration.spec-66XFLDNN.js +0 -197
  537. package/dist/genefusion.ui-TD32NWD4.js +0 -308
  538. package/dist/geneset-NSYPDXS3.js +0 -202
  539. package/dist/genomeBrowser.spec-CYFONLNQ.js +0 -280
  540. package/dist/grin2-3QB57OPH.js +0 -1555
  541. package/dist/grin2-FLQNWPMZ.js +0 -851
  542. package/dist/grin2-FLQNWPMZ.js.map +0 -7
  543. package/dist/gsea-RMTU5I3U.js +0 -46
  544. package/dist/hierCluster-LSQL6PGC.js +0 -58
  545. package/dist/hierCluster-XTEBDEVO.js +0 -62
  546. package/dist/hierCluster.config-SHXFSPOH.js +0 -39
  547. package/dist/hierCluster.integration.spec-KNMIYWV3.js +0 -394
  548. package/dist/hierCluster.interactivity-6NAKTUR5.js +0 -53
  549. package/dist/hierCluster.renderers-FWOV4Q47.js +0 -21
  550. package/dist/imagePlot-3IVG4SFN.js +0 -162
  551. package/dist/importPlot-HEMDRIVF.js +0 -8
  552. package/dist/isoformExpression-FJ3GEU6D.js +0 -39
  553. package/dist/isoformExpression.unit.spec-L7D22UDB.js +0 -207
  554. package/dist/launch.adhoc-PDGQF2UP.js +0 -41
  555. package/dist/leftlabel.sample-ZBI4NHCV.js +0 -259
  556. package/dist/legacyDataset-PBCPC5I7.js +0 -119
  557. package/dist/lollipop-K7S6ASFE.js +0 -170
  558. package/dist/maf-JEW6PPJB.js +0 -451
  559. package/dist/maftimeline-7URL27MC.js +0 -592
  560. package/dist/matrix-6EK5WGIG.js +0 -57
  561. package/dist/matrix-DKBD5RIL.js +0 -62
  562. package/dist/matrix.cells-KEIOXJQ7.js +0 -28
  563. package/dist/matrix.config-FGJB4VVM.js +0 -40
  564. package/dist/matrix.data-QGCGFLD7.js +0 -25
  565. package/dist/matrix.groups-HBPLZ2QX.js +0 -26
  566. package/dist/matrix.integration.spec-R4PF67KF.js +0 -3071
  567. package/dist/matrix.interactivity-M3SY33ET.js +0 -41
  568. package/dist/matrix.layout-H6WQ3ZMW.js +0 -43
  569. package/dist/matrix.legend-UCL7HM26.js +0 -22
  570. package/dist/matrix.renderers-3PPFSS7Z.js +0 -37
  571. package/dist/matrix.serieses-S2TJ3E6P.js +0 -21
  572. package/dist/matrix.sort-CFA4UWBJ.js +0 -27
  573. package/dist/matrix.sort.unit.spec-562VIWDS.js +0 -471
  574. package/dist/matrix.sorterUi-FT7K5664.js +0 -18
  575. package/dist/matrix.sorterUi.unit.spec-GAHHUN3K.js +0 -341
  576. package/dist/mavb-HPW5X55U.js +0 -731
  577. package/dist/mds.fimo-HSBKLIOX.js +0 -517
  578. package/dist/mds.samplescatterplot-DE27OMJE.js +0 -1549
  579. package/dist/mds.survivalplot-IW22UGCE.js +0 -482
  580. package/dist/numericDictTermCluster-DOD66G3A.js +0 -72
  581. package/dist/oncomatrix-BZCVCPR4.js +0 -294
  582. package/dist/oncomatrix.spec-IHYCIAP4.js +0 -447
  583. package/dist/plot.2dvaf-QLOZ54VC.js +0 -376
  584. package/dist/plot.app-XDVDR23J.js +0 -40
  585. package/dist/plot.barplot-XOESF7OQ.js +0 -101
  586. package/dist/plot.boxplot-VNOC2CHT.js +0 -151
  587. package/dist/plot.brainImaging-7ZEOY4UR.js +0 -51
  588. package/dist/plot.disco-6GVDYK7A.js +0 -101
  589. package/dist/plot.dzi-TEFPPPL6.js +0 -33
  590. package/dist/plot.ssgq-OG4TODLO.js +0 -138
  591. package/dist/plot.vaf2cov-VMZRJULA.js +0 -258
  592. package/dist/plot.wsi-2CHZZ7AC.js +0 -36
  593. package/dist/polar-QUYQRQOQ.js +0 -185
  594. package/dist/polar2-OXXLAXJC.js +0 -227
  595. package/dist/profile.spec-TI6PRHNJ.js +0 -79
  596. package/dist/profileBarchart-GEK77XEB.js +0 -266
  597. package/dist/profileForms-NR3VNHKM.js +0 -440
  598. package/dist/profilePlot-GGKO3IW5.js +0 -53
  599. package/dist/profileRadar-MN3LX5ER.js +0 -262
  600. package/dist/profileRadarFacility-3G2HWB2L.js +0 -262
  601. package/dist/proteinView-TZ5BGOTA.js +0 -1188
  602. package/dist/proteinView-TZ5BGOTA.js.map +0 -7
  603. package/dist/proteomeAbundance-JXNECXF7.js +0 -68
  604. package/dist/proteomeAbundance-JXNECXF7.js.map +0 -7
  605. package/dist/proteomeAbundance-O4BB55O3.js +0 -21
  606. package/dist/qualitative-Q3TT73O7.js +0 -42
  607. package/dist/radar2-LSD3VPZT.js +0 -315
  608. package/dist/radarFacility2-LZGIXY7A.js +0 -324
  609. package/dist/regression-J3XDAPAZ.js +0 -55
  610. package/dist/regression.inputs-BBZYI5OI.js +0 -47
  611. package/dist/regression.inputs.term-7BW6XGLG.js +0 -47
  612. package/dist/regression.inputs.values.table-DYX2YU4H.js +0 -44
  613. package/dist/regression.integration.spec-WLXZYKWW.js +0 -783
  614. package/dist/regression.results-K5Q2N2KW.js +0 -39
  615. package/dist/regression.spec-VT7T6KBY.js +0 -707
  616. package/dist/report-3D3L573D.js +0 -221
  617. package/dist/sampleScatter.spec-6IPJQLM2.js +0 -201
  618. package/dist/sampleView-5JMFI4HF.js +0 -47
  619. package/dist/samplelst-SUCB5WOZ.js +0 -110
  620. package/dist/samplematrix-A5SZBKO6.js +0 -2197
  621. package/dist/sc-NAA6ESO6.js +0 -85
  622. package/dist/scatter-EQCN2HYE.js +0 -801
  623. package/dist/scatter.integration.spec-7NXIYS67.js +0 -1195
  624. package/dist/selectGenomeWithTklst-KXODNCY6.js +0 -133
  625. package/dist/singleCellCellType-HMIW76YB.js +0 -37
  626. package/dist/singleCellCellType.unit.spec-ZCZET56X.js +0 -159
  627. package/dist/singleCellGeneExpression-IUCUHF6R.js +0 -37
  628. package/dist/singleCellGeneExpression.unit.spec-J4D6F2N3.js +0 -152
  629. package/dist/singleCellPlot-L6W3MDGG.js +0 -52
  630. package/dist/singlecell-A6ECAAPI.js +0 -85
  631. package/dist/singlecell-KBABNXC5.js +0 -1571
  632. package/dist/snp-RO7ATG6E.js +0 -37
  633. package/dist/snp.unit.spec-ZJLRGJD4.js +0 -175
  634. package/dist/snplocus-N3CU6NRP.js +0 -207
  635. package/dist/spliceevent.a53ss.diagram-7PHT4COB.js +0 -150
  636. package/dist/spliceevent.exonskip.diagram-3CZTY6QD.js +0 -276
  637. package/dist/spliceevent.noeventdiagram-GQE256DT.js +0 -459
  638. package/dist/ssGSEA-4I3L5MX2.js +0 -37
  639. package/dist/ssGSEA.unit.spec-PZCC5YU7.js +0 -87
  640. package/dist/summarizeCnvGeneexp-ASXUQW56.js +0 -162
  641. package/dist/summarizeGeneexpSurvival-ULGUOW5V.js +0 -107
  642. package/dist/summarizeMutationCnv-VDUCIUGM.js +0 -163
  643. package/dist/summarizeMutationDiagnosis-FMAAMCZC.js +0 -39
  644. package/dist/summarizeMutationSurvival-GZ4NGDJT.js +0 -98
  645. package/dist/summary-2WNZ6JSB.js +0 -48
  646. package/dist/summary.integration.spec-XPMYB6GM.js +0 -413
  647. package/dist/summaryInput-2UGXEA5C.js +0 -234
  648. package/dist/sunburst-76WCQLTT.js +0 -283
  649. package/dist/survival-23IZM4ML.js +0 -45
  650. package/dist/survival-3EAMPHSX.js +0 -57
  651. package/dist/survival.integration.spec-YNVAKBV3.js +0 -801
  652. package/dist/svgraph-G2M5LXEP.js +0 -1386
  653. package/dist/svmr-BUDBVU34.js +0 -3841
  654. package/dist/table-QJSZ6YFK.js +0 -199
  655. package/dist/termCollection-2YAY3RLZ.js +0 -178
  656. package/dist/termCollection-MAMDMEDD.js +0 -37
  657. package/dist/termCollection.unit.spec-UY7G2BHG.js +0 -207
  658. package/dist/tk-GFGP3F76.js +0 -45
  659. package/dist/tp.ui-OQ757UIE.js +0 -1458
  660. package/dist/tvs.density-BJK23JYJ.js +0 -18
  661. package/dist/tvs.dt-TOYEFKNT.js +0 -38
  662. package/dist/tvs.dtcnv.categorical-EO2VLFL2.js +0 -39
  663. package/dist/tvs.dtcnv.continuous-ZAHTKZ4Y.js +0 -71
  664. package/dist/tvs.dtfusion-BY3AHBL3.js +0 -39
  665. package/dist/tvs.dtsnvindel-UM5LQ4FR.js +0 -39
  666. package/dist/tvs.dtsv-H7ZVHLS5.js +0 -39
  667. package/dist/tvs.numeric-66FP6RRH.js +0 -21
  668. package/dist/tvs.samplelst-Q5ECTZOY.js +0 -103
  669. package/dist/tvs.termCollection-FYNMKZTR.js +0 -158
  670. package/dist/violin-EGWLAJVM.js +0 -45
  671. package/dist/violin.integration.spec-3P4TYHBR.js +0 -1424
  672. package/dist/violin.interactivity-VWDR4LYB.js +0 -37
  673. package/dist/violin.renderer-WWTU6J7X.js +0 -39
  674. package/dist/vocabulary-JG4ZITOH.js +0 -40
  675. /package/dist/{2dmaf-DTWWXOZC.js.map → 2dmaf-6YIEXAIG.js.map} +0 -0
  676. /package/dist/{AIProjectAdmin-BCYIWOXD.js.map → AIProjectAdmin-5K5NIQNT.js.map} +0 -0
  677. /package/dist/{AppHeader-H3L2MRWP.js.map → AppHeader-4SN5M6SZ.js.map} +0 -0
  678. /package/dist/{BoxPlot-INZ6IN3V.js.map → BoxPlot-DBJA6TQF.js.map} +0 -0
  679. /package/dist/{CorrelationVolcano-AK3XW4ZH.js.map → CorrelationVolcano-MDMTMTT5.js.map} +0 -0
  680. /package/dist/{DE-IBSFUKNG.js.map → DE-S5AFNI4I.js.map} +0 -0
  681. /package/dist/{DEinput-H4GMQWDY.js.map → DEinput-XVBBA74N.js.map} +0 -0
  682. /package/dist/{Disco-5PXXMGGQ.js.map → Disco-VV7FQ7WW.js.map} +0 -0
  683. /package/dist/{Disco.UI-23LOT2U6.js.map → Disco.UI-JDJFJFEY.js.map} +0 -0
  684. /package/dist/{DmrPlot-PBCU2XNF.js.map → DmrPlot-XOG67W74.js.map} +0 -0
  685. /package/dist/{GB-HIEPWNPV.js.map → GB-K3AWZQFF.js.map} +0 -0
  686. /package/dist/{GeneExpInput-A4JNX7PU.js.map → GeneExpInput-Y7MDS2CA.js.map} +0 -0
  687. /package/dist/{HicApp-IDH2A4BC.js.map → HicApp-53OTZ3YU.js.map} +0 -0
  688. /package/dist/{NumBinaryEditor-CZ54X7J3.js.map → NumBinaryEditor-SB4YR3JM.js.map} +0 -0
  689. /package/dist/{NumBinaryEditor.unit.spec-QLBRM7MJ.js.map → NumBinaryEditor.unit.spec-V2W2OZYP.js.map} +0 -0
  690. /package/dist/{NumContEditor-Z5MGLQ2I.js.map → NumContEditor-RZZBM7PR.js.map} +0 -0
  691. /package/dist/{NumContEditor.unit.spec-TR7D7ULV.js.map → NumContEditor.unit.spec-GAAW3ZZN.js.map} +0 -0
  692. /package/dist/{NumCustomBinEditor-B7JID42Y.js.map → NumCustomBinEditor-GFCGPRPI.js.map} +0 -0
  693. /package/dist/{NumCustomBinEditor.unit.spec-GZJIVY4K.js.map → NumCustomBinEditor.unit.spec-24MXSO3L.js.map} +0 -0
  694. /package/dist/{NumDiscreteEditor-LWHZ36T6.js.map → NumDiscreteEditor-HAHIOFNC.js.map} +0 -0
  695. /package/dist/{NumDiscreteEditor.unit.spec-QCQCMEWO.js.map → NumDiscreteEditor.unit.spec-JYN2CWSI.js.map} +0 -0
  696. /package/dist/{NumRegularBinEditor-IATRIUKD.js.map → NumRegularBinEditor-7DOE64RB.js.map} +0 -0
  697. /package/dist/{NumRegularBinEditor.unit.spec-J6UTQO76.js.map → NumRegularBinEditor.unit.spec-2WU4GGNT.js.map} +0 -0
  698. /package/dist/{NumSplineEditor-2KMU6SRO.js.map → NumSplineEditor-JLRD5TVX.js.map} +0 -0
  699. /package/dist/{NumSplineEditor.unit.spec-MX7Y4MTD.js.map → NumSplineEditor.unit.spec-LOG7CECJ.js.map} +0 -0
  700. /package/dist/{NumericDensity-JCH7F5FV.js.map → NumericDensity-IDOP7I34.js.map} +0 -0
  701. /package/dist/{NumericDensity.unit.spec-4TKKRKHF.js.map → NumericDensity.unit.spec-HTJQRPVH.js.map} +0 -0
  702. /package/dist/{NumericHandler-7FB3RJM7.js.map → NumericHandler-DWVVGLLB.js.map} +0 -0
  703. /package/dist/{NumericHandler.unit.spec-U6DCADZY.js.map → NumericHandler.unit.spec-BDDFTHOF.js.map} +0 -0
  704. /package/dist/{RunChart2-VQTIVMKM.js.map → RunChart2-PBJ56YX3.js.map} +0 -0
  705. /package/dist/{WsiSamplesPlot-2OAR57YB.js.map → WsiSamplesPlot-FOMPMEXK.js.map} +0 -0
  706. /package/dist/{adSandbox-IKKFYRF7.js.map → adSandbox-SRPPCYYR.js.map} +0 -0
  707. /package/dist/{alphaGenome-WJNFQGGK.js.map → alphaGenome-IS2WAJCK.js.map} +0 -0
  708. /package/dist/{app-UHGTFH6D.js.map → app-GTHYSGWI.js.map} +0 -0
  709. /package/dist/{app-YETYAR45.js.map → app-XEKETNLG.js.map} +0 -0
  710. /package/dist/{bam-S6U7VNJP.js.map → bam-GQBFL6A7.js.map} +0 -0
  711. /package/dist/{barchart-3NJDGHXU.js.map → barchart-AESC4JSX.js.map} +0 -0
  712. /package/dist/{barchart.data-MVVKPDLE.js.map → barchart.data-RE34IC4G.js.map} +0 -0
  713. /package/dist/{barchart.events-WQGA4CGB.js.map → barchart.events-KM4J5ISO.js.map} +0 -0
  714. /package/dist/{barchart.integration.spec-E6CJTWRN.js.map → barchart.integration.spec-DFVSBGO3.js.map} +0 -0
  715. /package/dist/{barchart2-UNHFOYKB.js.map → barchart2-NNTL4RQZ.js.map} +0 -0
  716. /package/dist/{block-2XHZLY26.js.map → block-EHZM3FUX.js.map} +0 -0
  717. /package/dist/{block.init-CMG4V6RB.js.map → block.init-EAEFNNF6.js.map} +0 -0
  718. /package/dist/{block.mds.expressionrank-QX2JOEMV.js.map → block.mds.expressionrank-ZBHA2CFE.js.map} +0 -0
  719. /package/dist/{block.mds.geneboxplot-USVQSDBT.js.map → block.mds.geneboxplot-4ZU3QUAK.js.map} +0 -0
  720. /package/dist/{block.mds.junction-R6GJO75N.js.map → block.mds.junction-PDH55JXO.js.map} +0 -0
  721. /package/dist/{block.mds.svcnv-MRISSDAX.js.map → block.mds.svcnv-QWBU54XQ.js.map} +0 -0
  722. /package/dist/{block.svg-Z5KKZTDB.js.map → block.svg-HUGBYWXU.js.map} +0 -0
  723. /package/dist/{block.tk.aicheck-SOFJYYZX.js.map → block.tk.aicheck-SDCWXQZF.js.map} +0 -0
  724. /package/dist/{block.tk.ase-EHX5FV2Y.js.map → block.tk.ase-HMUTHCJS.js.map} +0 -0
  725. /package/dist/{block.tk.bam-DJS6LODM.js.map → block.tk.bam-Q7B2YQLI.js.map} +0 -0
  726. /package/dist/{block.tk.bedgraphdot-R2YHPXZA.js.map → block.tk.bedgraphdot-QBGBSVHN.js.map} +0 -0
  727. /package/dist/{block.tk.bigwig.ui-VPEEQJLS.js.map → block.tk.bigwig.ui-767A3MUH.js.map} +0 -0
  728. /package/dist/{block.tk.hicstraw-BDYN573B.js.map → block.tk.hicstraw-LEZUZHLF.js.map} +0 -0
  729. /package/dist/{block.tk.junction-BONB4BXU.js.map → block.tk.junction-GQHCZOYR.js.map} +0 -0
  730. /package/dist/{block.tk.junction.textmatrixui-Y5R6KY4N.js.map → block.tk.junction.textmatrixui-D5QUO7KQ.js.map} +0 -0
  731. /package/dist/{block.tk.ld-EGVVSXCB.js.map → block.tk.ld-E3MHZOG5.js.map} +0 -0
  732. /package/dist/{block.tk.menu-4YBMB5JT.js.map → block.tk.menu-XE7PFYGR.js.map} +0 -0
  733. /package/dist/{block.tk.pgv-SBHGL6UH.js.map → block.tk.pgv-MPPMPDED.js.map} +0 -0
  734. /package/dist/{brainImaging-G3WZDYG6.js.map → brainImaging-YQ443NOL.js.map} +0 -0
  735. /package/dist/{chunk-LQQSRNR5.js.map → chunk-26WXJBSR.js.map} +0 -0
  736. /package/dist/{chunk-7UHUOC6F.js.map → chunk-2P6Z7JFC.js.map} +0 -0
  737. /package/dist/{chunk-ENWVV6EU.js.map → chunk-2QQO4RRD.js.map} +0 -0
  738. /package/dist/{chunk-GF4OSOYW.js.map → chunk-37ARSZOI.js.map} +0 -0
  739. /package/dist/{chunk-LY7GD74F.js.map → chunk-42Q53PXE.js.map} +0 -0
  740. /package/dist/{chunk-5SMOOFRW.js.map → chunk-46ASPS5Y.js.map} +0 -0
  741. /package/dist/{chunk-RA4RQYXQ.js.map → chunk-4KPI7PB5.js.map} +0 -0
  742. /package/dist/{chunk-XZ6MGJQ3.js.map → chunk-4MDNMCGZ.js.map} +0 -0
  743. /package/dist/{chunk-4Y444IRJ.js.map → chunk-5IG3E4DT.js.map} +0 -0
  744. /package/dist/{chunk-UVPAZM3G.js.map → chunk-5MIR7IHI.js.map} +0 -0
  745. /package/dist/{chunk-BQJVLXEL.js.map → chunk-5MZVXJVA.js.map} +0 -0
  746. /package/dist/{chunk-SDLRTORS.js.map → chunk-66D5GRS5.js.map} +0 -0
  747. /package/dist/{chunk-IABWKPRK.js.map → chunk-6ATE2TRC.js.map} +0 -0
  748. /package/dist/{chunk-JPKYHLNI.js.map → chunk-6BFR6MK3.js.map} +0 -0
  749. /package/dist/{chunk-C62CSWMV.js.map → chunk-6NJMCO4X.js.map} +0 -0
  750. /package/dist/{chunk-IPDH4FHY.js.map → chunk-6ON5KAMO.js.map} +0 -0
  751. /package/dist/{chunk-ZYBM24FU.js.map → chunk-76GPYMHZ.js.map} +0 -0
  752. /package/dist/{chunk-PSGQWZN4.js.map → chunk-7AAFBFOH.js.map} +0 -0
  753. /package/dist/{chunk-LGUE54VX.js.map → chunk-7OOZHEUC.js.map} +0 -0
  754. /package/dist/{chunk-I7JDV4ZC.js.map → chunk-A4VLWLYF.js.map} +0 -0
  755. /package/dist/{chunk-W6XQR5UL.js.map → chunk-A6EFWGWD.js.map} +0 -0
  756. /package/dist/{chunk-ANGDY7VC.js.map → chunk-ALW5XXVW.js.map} +0 -0
  757. /package/dist/{chunk-RQZJIBIH.js.map → chunk-ANCT2BGO.js.map} +0 -0
  758. /package/dist/{chunk-NYX4B5CO.js.map → chunk-AROMXWCY.js.map} +0 -0
  759. /package/dist/{chunk-UWYCEYML.js.map → chunk-AY4UBGLC.js.map} +0 -0
  760. /package/dist/{chunk-32TTOWY6.js.map → chunk-BMVLR3TM.js.map} +0 -0
  761. /package/dist/{chunk-PL2CM7RY.js.map → chunk-BR7JA2EO.js.map} +0 -0
  762. /package/dist/{chunk-7FKIAQ4K.js.map → chunk-D3HJXMTH.js.map} +0 -0
  763. /package/dist/{chunk-XSA3VIEQ.js.map → chunk-DKUEZ4XD.js.map} +0 -0
  764. /package/dist/{chunk-LSV4Z473.js.map → chunk-DT3MMC5U.js.map} +0 -0
  765. /package/dist/{chunk-UPPBAFUK.js.map → chunk-DYVKN7EE.js.map} +0 -0
  766. /package/dist/{chunk-VB3SRNBK.js.map → chunk-EF37UZY6.js.map} +0 -0
  767. /package/dist/{chunk-ZD47FENE.js.map → chunk-ESXMS7FW.js.map} +0 -0
  768. /package/dist/{chunk-2QULGYVE.js.map → chunk-FUSVXQ6C.js.map} +0 -0
  769. /package/dist/{chunk-GTBL7UHX.js.map → chunk-GXKVAPGP.js.map} +0 -0
  770. /package/dist/{chunk-AQ4OP4GR.js.map → chunk-H4JIENLQ.js.map} +0 -0
  771. /package/dist/{chunk-FA44G3GZ.js.map → chunk-H7YJG4YM.js.map} +0 -0
  772. /package/dist/{chunk-GD7FKXOA.js.map → chunk-I24KPIDD.js.map} +0 -0
  773. /package/dist/{chunk-GQOBT2W7.js.map → chunk-IENFDUWD.js.map} +0 -0
  774. /package/dist/{chunk-43PMSEMV.js.map → chunk-J7BISJTL.js.map} +0 -0
  775. /package/dist/{chunk-XBBUQW52.js.map → chunk-J7KYOSEK.js.map} +0 -0
  776. /package/dist/{chunk-PZLYNNST.js.map → chunk-JGPZ5254.js.map} +0 -0
  777. /package/dist/{chunk-4KSU6NBP.js.map → chunk-JUIPCWAM.js.map} +0 -0
  778. /package/dist/{chunk-5RE3J6HK.js.map → chunk-LO4NMQ7W.js.map} +0 -0
  779. /package/dist/{chunk-RAJZYWFN.js.map → chunk-LSSLS5HV.js.map} +0 -0
  780. /package/dist/{chunk-7NOKTEHK.js.map → chunk-MDLRB3MR.js.map} +0 -0
  781. /package/dist/{chunk-OPPNZXYG.js.map → chunk-MJLKGZ27.js.map} +0 -0
  782. /package/dist/{chunk-KTCW3JA6.js.map → chunk-NL5T3SBK.js.map} +0 -0
  783. /package/dist/{chunk-RSE2FOKW.js.map → chunk-ONAYJVN2.js.map} +0 -0
  784. /package/dist/{chunk-64Z22QAH.js.map → chunk-PSMFOARZ.js.map} +0 -0
  785. /package/dist/{chunk-LTSR7SLO.js.map → chunk-QX3GF2IA.js.map} +0 -0
  786. /package/dist/{chunk-JNOOLCYB.js.map → chunk-QZ2U4BOS.js.map} +0 -0
  787. /package/dist/{chunk-YEMIL6QU.js.map → chunk-RBZBBNLL.js.map} +0 -0
  788. /package/dist/{chunk-P6TPXUMP.js.map → chunk-RZTFQXWV.js.map} +0 -0
  789. /package/dist/{chunk-AQVOYTLS.js.map → chunk-SJC2C77V.js.map} +0 -0
  790. /package/dist/{chunk-2VLGHVOL.js.map → chunk-TVXVP4M6.js.map} +0 -0
  791. /package/dist/{chunk-HE7CD7BD.js.map → chunk-UTDPKDIY.js.map} +0 -0
  792. /package/dist/{chunk-BT4OOYPT.js.map → chunk-UVIUB7QI.js.map} +0 -0
  793. /package/dist/{chunk-CAWDQURD.js.map → chunk-VAUSRBL5.js.map} +0 -0
  794. /package/dist/{chunk-6NMH6WPB.js.map → chunk-WP22GYZ2.js.map} +0 -0
  795. /package/dist/{chunk-4SFX42S7.js.map → chunk-WUNX3VST.js.map} +0 -0
  796. /package/dist/{chunk-BRMASRRS.js.map → chunk-XD4TBJK2.js.map} +0 -0
  797. /package/dist/{chunk-2O6JF76T.js.map → chunk-Y6DSXMPB.js.map} +0 -0
  798. /package/dist/{chunk-ROLVOPVR.js.map → chunk-YBIZRASR.js.map} +0 -0
  799. /package/dist/{chunk-TF4EDNQO.js.map → chunk-YI2YH7ZK.js.map} +0 -0
  800. /package/dist/{chunk-KMQ6GQ3I.js.map → chunk-YLDE3PVC.js.map} +0 -0
  801. /package/dist/{chunk-MHCTLVGE.js.map → chunk-Z736NYXL.js.map} +0 -0
  802. /package/dist/{chunk-LJ4AUJXC.js.map → chunk-ZEJB7CPC.js.map} +0 -0
  803. /package/dist/{chunk-5HOR6JQ2.js.map → chunk-ZGWEBKZ4.js.map} +0 -0
  804. /package/dist/{condition-ARCN26MF.js.map → condition-FSF6ROJV.js.map} +0 -0
  805. /package/dist/{controls-PKWN2JGN.js.map → controls-OPSBFDFZ.js.map} +0 -0
  806. /package/dist/{controls.config-NFRPXFUJ.js.map → controls.config-3QRV5363.js.map} +0 -0
  807. /package/dist/{correlation-DPT6XL2U.js.map → correlation-WLOI7Z35.js.map} +0 -0
  808. /package/dist/{cuminc-M4U7LQD5.js.map → cuminc-G2UGJUUA.js.map} +0 -0
  809. /package/dist/{cuminc.integration.spec-MH4OFYDJ.js.map → cuminc.integration.spec-X5NEZ6S5.js.map} +0 -0
  810. /package/dist/{customdata.inputui-6TAHAMSV.js.map → customdata.inputui-RNW3AO3Z.js.map} +0 -0
  811. /package/dist/{dataDownload-7GZEYSUT.js.map → dataDownload-4U3TGDMH.js.map} +0 -0
  812. /package/dist/{dataDownload.integration.spec-NAIJRFTV.js.map → dataDownload.integration.spec-6FUI2SJ4.js.map} +0 -0
  813. /package/dist/{databrowser.ui-LLXHZ5O6.js.map → databrowser.ui-4GVJVJWG.js.map} +0 -0
  814. /package/dist/{dictionary-MUAURMYE.js.map → dictionary-NSDS7Z4K.js.map} +0 -0
  815. /package/dist/{dnaMethylation-AU5D3U3E.js.map → dnaMethylation-OYQB75LD.js.map} +0 -0
  816. /package/dist/{dnaMethylation.integration.spec-JIDBRA6P.js.map → dnaMethylation.integration.spec-6TTLV34N.js.map} +0 -0
  817. /package/dist/{dofetch-WSYK5OTB.js.map → dofetch-4TO3QMT6.js.map} +0 -0
  818. /package/dist/{e2pca-ICG35YR5.js.map → e2pca-NYBVR6PL.js.map} +0 -0
  819. /package/dist/{ep-CSSSQOUP.js.map → ep-RTDVEA4D.js.map} +0 -0
  820. /package/dist/{expclust.gdc.spec-4WPQUXH4.js.map → expclust.gdc.spec-JVIRESTP.js.map} +0 -0
  821. /package/dist/{facet-JAGILNY6.js.map → facet-OVBF2QMO.js.map} +0 -0
  822. /package/dist/{forms2-IMVDB6AT.js.map → forms2-HTLS54CX.js.map} +0 -0
  823. /package/dist/{gb-36LTYICV.js.map → gb-Y3546HMZ.js.map} +0 -0
  824. /package/dist/{geneExpClustering-CGMENTHI.js.map → geneExpClustering-PH3PWH3K.js.map} +0 -0
  825. /package/dist/{geneExpression-AD2L46J4.js.map → geneExpression-2Z2EV3XM.js.map} +0 -0
  826. /package/dist/{geneExpression-G2FHBDUQ.js.map → geneExpression-6CFXOCGW.js.map} +0 -0
  827. /package/dist/{geneExpression.unit.spec-XWCB7K5L.js.map → geneExpression.unit.spec-WKUTHRHC.js.map} +0 -0
  828. /package/dist/{geneORA-GVHQF7DF.js.map → geneORA-SHLZESLB.js.map} +0 -0
  829. /package/dist/{geneVariant-HE22CH76.js.map → geneVariant-FHZUIFPM.js.map} +0 -0
  830. /package/dist/{geneVariant-SQD5QUFH.js.map → geneVariant-Y7ZUBEOX.js.map} +0 -0
  831. /package/dist/{geneVariant.integration.spec-66XFLDNN.js.map → geneVariant.integration.spec-N7TZUOY3.js.map} +0 -0
  832. /package/dist/{genefusion.ui-TD32NWD4.js.map → genefusion.ui-7PDVZPZ2.js.map} +0 -0
  833. /package/dist/{geneset-NSYPDXS3.js.map → geneset-HLVOGYUI.js.map} +0 -0
  834. /package/dist/{genomeBrowser.spec-CYFONLNQ.js.map → genomeBrowser.spec-7IVIMUR5.js.map} +0 -0
  835. /package/dist/{grin2-3QB57OPH.js.map → grin2-Z5O7254R.js.map} +0 -0
  836. /package/dist/{gsea-RMTU5I3U.js.map → gsea-TFC3MBRW.js.map} +0 -0
  837. /package/dist/{hierCluster-LSQL6PGC.js.map → hierCluster-ERSE5I4I.js.map} +0 -0
  838. /package/dist/{hierCluster-XTEBDEVO.js.map → hierCluster-QQZQU5ZG.js.map} +0 -0
  839. /package/dist/{hierCluster.config-SHXFSPOH.js.map → hierCluster.config-WPINWW37.js.map} +0 -0
  840. /package/dist/{hierCluster.integration.spec-KNMIYWV3.js.map → hierCluster.integration.spec-Y6OHSKPW.js.map} +0 -0
  841. /package/dist/{hierCluster.interactivity-6NAKTUR5.js.map → hierCluster.interactivity-HS3G5QC5.js.map} +0 -0
  842. /package/dist/{hierCluster.renderers-FWOV4Q47.js.map → hierCluster.renderers-W63ZKZTT.js.map} +0 -0
  843. /package/dist/{imagePlot-3IVG4SFN.js.map → imagePlot-QFVN25PM.js.map} +0 -0
  844. /package/dist/{importPlot-HEMDRIVF.js.map → importPlot-MIDM5APH.js.map} +0 -0
  845. /package/dist/{isoformExpression-FJ3GEU6D.js.map → isoformExpression-L4TRNT4A.js.map} +0 -0
  846. /package/dist/{isoformExpression.unit.spec-L7D22UDB.js.map → isoformExpression.unit.spec-QQG323LA.js.map} +0 -0
  847. /package/dist/{launch.adhoc-PDGQF2UP.js.map → launch.adhoc-4NQ6GGGL.js.map} +0 -0
  848. /package/dist/{leftlabel.sample-ZBI4NHCV.js.map → leftlabel.sample-JU7AIPZL.js.map} +0 -0
  849. /package/dist/{legacyDataset-PBCPC5I7.js.map → legacyDataset-TT4CHF23.js.map} +0 -0
  850. /package/dist/{lollipop-K7S6ASFE.js.map → lollipop-JG74M6PJ.js.map} +0 -0
  851. /package/dist/{maf-JEW6PPJB.js.map → maf-PDL2EGHI.js.map} +0 -0
  852. /package/dist/{maftimeline-7URL27MC.js.map → maftimeline-V43NQEEE.js.map} +0 -0
  853. /package/dist/{matrix-6EK5WGIG.js.map → matrix-EB2EFP4S.js.map} +0 -0
  854. /package/dist/{matrix-DKBD5RIL.js.map → matrix-Q57FU5FE.js.map} +0 -0
  855. /package/dist/{matrix.cells-KEIOXJQ7.js.map → matrix.cells-NJIMPD32.js.map} +0 -0
  856. /package/dist/{matrix.config-FGJB4VVM.js.map → matrix.config-GLDEQD3H.js.map} +0 -0
  857. /package/dist/{matrix.data-QGCGFLD7.js.map → matrix.data-6SHAKOQU.js.map} +0 -0
  858. /package/dist/{matrix.groups-HBPLZ2QX.js.map → matrix.groups-MTDEANQA.js.map} +0 -0
  859. /package/dist/{matrix.integration.spec-R4PF67KF.js.map → matrix.integration.spec-JCZ5VQJU.js.map} +0 -0
  860. /package/dist/{matrix.interactivity-M3SY33ET.js.map → matrix.interactivity-SVRNWL6V.js.map} +0 -0
  861. /package/dist/{matrix.layout-H6WQ3ZMW.js.map → matrix.layout-2HREO42N.js.map} +0 -0
  862. /package/dist/{matrix.legend-UCL7HM26.js.map → matrix.legend-QHVKT3MP.js.map} +0 -0
  863. /package/dist/{matrix.renderers-3PPFSS7Z.js.map → matrix.renderers-IYR3ZY6V.js.map} +0 -0
  864. /package/dist/{matrix.serieses-S2TJ3E6P.js.map → matrix.serieses-2VMTQXL2.js.map} +0 -0
  865. /package/dist/{matrix.sort-CFA4UWBJ.js.map → matrix.sort-PWA2RQQR.js.map} +0 -0
  866. /package/dist/{matrix.sort.unit.spec-562VIWDS.js.map → matrix.sort.unit.spec-3OYIPTFY.js.map} +0 -0
  867. /package/dist/{matrix.sorterUi-FT7K5664.js.map → matrix.sorterUi-Y5QLO75X.js.map} +0 -0
  868. /package/dist/{matrix.sorterUi.unit.spec-GAHHUN3K.js.map → matrix.sorterUi.unit.spec-BNEXQHLP.js.map} +0 -0
  869. /package/dist/{mavb-HPW5X55U.js.map → mavb-IZDDU4KK.js.map} +0 -0
  870. /package/dist/{mds.fimo-HSBKLIOX.js.map → mds.fimo-FWBL7JE6.js.map} +0 -0
  871. /package/dist/{mds.samplescatterplot-DE27OMJE.js.map → mds.samplescatterplot-T47C7DJB.js.map} +0 -0
  872. /package/dist/{mds.survivalplot-IW22UGCE.js.map → mds.survivalplot-MFZJCGS6.js.map} +0 -0
  873. /package/dist/{numericDictTermCluster-DOD66G3A.js.map → numericDictTermCluster-I2W67RGA.js.map} +0 -0
  874. /package/dist/{oncomatrix-BZCVCPR4.js.map → oncomatrix-6W7IBAED.js.map} +0 -0
  875. /package/dist/{oncomatrix.spec-IHYCIAP4.js.map → oncomatrix.spec-CEFH5IGH.js.map} +0 -0
  876. /package/dist/{plot.2dvaf-QLOZ54VC.js.map → plot.2dvaf-BN6CFLNU.js.map} +0 -0
  877. /package/dist/{plot.app-XDVDR23J.js.map → plot.app-7EYWUCZV.js.map} +0 -0
  878. /package/dist/{plot.barplot-XOESF7OQ.js.map → plot.barplot-MDIARSQD.js.map} +0 -0
  879. /package/dist/{plot.boxplot-VNOC2CHT.js.map → plot.boxplot-RUHGXC54.js.map} +0 -0
  880. /package/dist/{plot.brainImaging-7ZEOY4UR.js.map → plot.brainImaging-JEE32ZBV.js.map} +0 -0
  881. /package/dist/{plot.disco-6GVDYK7A.js.map → plot.disco-2RPNPX6E.js.map} +0 -0
  882. /package/dist/{plot.dzi-TEFPPPL6.js.map → plot.dzi-7VTYYGGW.js.map} +0 -0
  883. /package/dist/{plot.ssgq-OG4TODLO.js.map → plot.ssgq-FHE5KU5C.js.map} +0 -0
  884. /package/dist/{plot.vaf2cov-VMZRJULA.js.map → plot.vaf2cov-WDJJM5Q4.js.map} +0 -0
  885. /package/dist/{plot.wsi-2CHZZ7AC.js.map → plot.wsi-FQZWHNSF.js.map} +0 -0
  886. /package/dist/{polar-QUYQRQOQ.js.map → polar-M7EGINN4.js.map} +0 -0
  887. /package/dist/{polar2-OXXLAXJC.js.map → polar2-JFYY43K2.js.map} +0 -0
  888. /package/dist/{profile.spec-TI6PRHNJ.js.map → profile.spec-SIOHASOX.js.map} +0 -0
  889. /package/dist/{profileBarchart-GEK77XEB.js.map → profileBarchart-6JLEKVJV.js.map} +0 -0
  890. /package/dist/{profileForms-NR3VNHKM.js.map → profileForms-G6CH73RV.js.map} +0 -0
  891. /package/dist/{profilePlot-GGKO3IW5.js.map → profilePlot-NQYJOBVV.js.map} +0 -0
  892. /package/dist/{profileRadar-MN3LX5ER.js.map → profileRadar-4TNWIXDB.js.map} +0 -0
  893. /package/dist/{profileRadarFacility-3G2HWB2L.js.map → profileRadarFacility-XPH3LCBQ.js.map} +0 -0
  894. /package/dist/{proteomeAbundance-O4BB55O3.js.map → proteomeAbundance-NQ4635NL.js.map} +0 -0
  895. /package/dist/{qualitative-Q3TT73O7.js.map → qualitative-DL4WJG3O.js.map} +0 -0
  896. /package/dist/{radar2-LSD3VPZT.js.map → radar2-YNOQWHBT.js.map} +0 -0
  897. /package/dist/{radarFacility2-LZGIXY7A.js.map → radarFacility2-24UPSI7S.js.map} +0 -0
  898. /package/dist/{regression-J3XDAPAZ.js.map → regression-URAUTLTD.js.map} +0 -0
  899. /package/dist/{regression.inputs-BBZYI5OI.js.map → regression.inputs-UDVOU7FB.js.map} +0 -0
  900. /package/dist/{regression.inputs.term-7BW6XGLG.js.map → regression.inputs.term-BWW6W34R.js.map} +0 -0
  901. /package/dist/{regression.inputs.values.table-DYX2YU4H.js.map → regression.inputs.values.table-UKGIZTXG.js.map} +0 -0
  902. /package/dist/{regression.integration.spec-WLXZYKWW.js.map → regression.integration.spec-EBHQTNA3.js.map} +0 -0
  903. /package/dist/{regression.results-K5Q2N2KW.js.map → regression.results-XTOSWIP6.js.map} +0 -0
  904. /package/dist/{regression.spec-VT7T6KBY.js.map → regression.spec-KG2I53VR.js.map} +0 -0
  905. /package/dist/{report-3D3L573D.js.map → report-KH7SNPVF.js.map} +0 -0
  906. /package/dist/{sampleScatter.spec-6IPJQLM2.js.map → sampleScatter.spec-PIXGS3LG.js.map} +0 -0
  907. /package/dist/{sampleView-5JMFI4HF.js.map → sampleView-TWS6VT55.js.map} +0 -0
  908. /package/dist/{samplelst-SUCB5WOZ.js.map → samplelst-6AB5Y4WR.js.map} +0 -0
  909. /package/dist/{samplematrix-A5SZBKO6.js.map → samplematrix-AJAF555E.js.map} +0 -0
  910. /package/dist/{sc-NAA6ESO6.js.map → sc-PMNYZKXA.js.map} +0 -0
  911. /package/dist/{scatter-EQCN2HYE.js.map → scatter-Q2GH3ZJD.js.map} +0 -0
  912. /package/dist/{scatter.integration.spec-7NXIYS67.js.map → scatter.integration.spec-SMMYKWH3.js.map} +0 -0
  913. /package/dist/{selectGenomeWithTklst-KXODNCY6.js.map → selectGenomeWithTklst-VE4SDYY7.js.map} +0 -0
  914. /package/dist/{singleCellCellType-HMIW76YB.js.map → singleCellCellType-S324GCKW.js.map} +0 -0
  915. /package/dist/{singleCellCellType.unit.spec-ZCZET56X.js.map → singleCellCellType.unit.spec-NXC2GELH.js.map} +0 -0
  916. /package/dist/{singleCellGeneExpression-IUCUHF6R.js.map → singleCellGeneExpression-6H4HRKIA.js.map} +0 -0
  917. /package/dist/{singleCellGeneExpression.unit.spec-J4D6F2N3.js.map → singleCellGeneExpression.unit.spec-HIJXVUWJ.js.map} +0 -0
  918. /package/dist/{singleCellPlot-L6W3MDGG.js.map → singleCellPlot-H7PCZ2DP.js.map} +0 -0
  919. /package/dist/{singlecell-A6ECAAPI.js.map → singlecell-4LH3MQVL.js.map} +0 -0
  920. /package/dist/{singlecell-KBABNXC5.js.map → singlecell-MOSYT3RI.js.map} +0 -0
  921. /package/dist/{snp-RO7ATG6E.js.map → snp-IKLGTD4Q.js.map} +0 -0
  922. /package/dist/{snp.unit.spec-ZJLRGJD4.js.map → snp.unit.spec-GC74MUVM.js.map} +0 -0
  923. /package/dist/{snplocus-N3CU6NRP.js.map → snplocus-RIABFSBQ.js.map} +0 -0
  924. /package/dist/{spliceevent.a53ss.diagram-7PHT4COB.js.map → spliceevent.a53ss.diagram-4E2IYYHL.js.map} +0 -0
  925. /package/dist/{spliceevent.exonskip.diagram-3CZTY6QD.js.map → spliceevent.exonskip.diagram-C56R6XLQ.js.map} +0 -0
  926. /package/dist/{spliceevent.noeventdiagram-GQE256DT.js.map → spliceevent.noeventdiagram-SIPMAKXI.js.map} +0 -0
  927. /package/dist/{ssGSEA-4I3L5MX2.js.map → ssGSEA-5QNHLSOI.js.map} +0 -0
  928. /package/dist/{ssGSEA.unit.spec-PZCC5YU7.js.map → ssGSEA.unit.spec-KVPN553B.js.map} +0 -0
  929. /package/dist/{summarizeCnvGeneexp-ASXUQW56.js.map → summarizeCnvGeneexp-K4VGJSW6.js.map} +0 -0
  930. /package/dist/{summarizeGeneexpSurvival-ULGUOW5V.js.map → summarizeGeneexpSurvival-HGHX65FN.js.map} +0 -0
  931. /package/dist/{summarizeMutationCnv-VDUCIUGM.js.map → summarizeMutationCnv-3K4Z6R2X.js.map} +0 -0
  932. /package/dist/{summarizeMutationDiagnosis-FMAAMCZC.js.map → summarizeMutationDiagnosis-M2MHUPRT.js.map} +0 -0
  933. /package/dist/{summarizeMutationSurvival-GZ4NGDJT.js.map → summarizeMutationSurvival-WVBUP3GA.js.map} +0 -0
  934. /package/dist/{summary-2WNZ6JSB.js.map → summary-RZHZXCU5.js.map} +0 -0
  935. /package/dist/{summary.integration.spec-XPMYB6GM.js.map → summary.integration.spec-FGZP7DY7.js.map} +0 -0
  936. /package/dist/{summaryInput-2UGXEA5C.js.map → summaryInput-UGM7MMCR.js.map} +0 -0
  937. /package/dist/{sunburst-76WCQLTT.js.map → sunburst-L27U7LV7.js.map} +0 -0
  938. /package/dist/{survival-3EAMPHSX.js.map → survival-5ZMEBV6O.js.map} +0 -0
  939. /package/dist/{survival-23IZM4ML.js.map → survival-JWRRGTJT.js.map} +0 -0
  940. /package/dist/{survival.integration.spec-YNVAKBV3.js.map → survival.integration.spec-Z5542I4V.js.map} +0 -0
  941. /package/dist/{svgraph-G2M5LXEP.js.map → svgraph-O6ZVLNNN.js.map} +0 -0
  942. /package/dist/{svmr-BUDBVU34.js.map → svmr-ULFV7OSH.js.map} +0 -0
  943. /package/dist/{table-QJSZ6YFK.js.map → table-CHRQH2GH.js.map} +0 -0
  944. /package/dist/{termCollection-2YAY3RLZ.js.map → termCollection-FAO6ZA6F.js.map} +0 -0
  945. /package/dist/{termCollection-MAMDMEDD.js.map → termCollection-GBXS3GOY.js.map} +0 -0
  946. /package/dist/{termCollection.unit.spec-UY7G2BHG.js.map → termCollection.unit.spec-4WRTOV6E.js.map} +0 -0
  947. /package/dist/{tk-GFGP3F76.js.map → tk-KNUBWRNK.js.map} +0 -0
  948. /package/dist/{tp.ui-OQ757UIE.js.map → tp.ui-2PPYOQYL.js.map} +0 -0
  949. /package/dist/{tvs.density-BJK23JYJ.js.map → tvs.density-BZ5SKDQS.js.map} +0 -0
  950. /package/dist/{tvs.dt-TOYEFKNT.js.map → tvs.dt-TDNSTGQR.js.map} +0 -0
  951. /package/dist/{tvs.dtcnv.categorical-EO2VLFL2.js.map → tvs.dtcnv.categorical-P2IGIE4I.js.map} +0 -0
  952. /package/dist/{tvs.dtcnv.continuous-ZAHTKZ4Y.js.map → tvs.dtcnv.continuous-2XUCRBDR.js.map} +0 -0
  953. /package/dist/{tvs.dtfusion-BY3AHBL3.js.map → tvs.dtfusion-PRHZVMOG.js.map} +0 -0
  954. /package/dist/{tvs.dtsnvindel-UM5LQ4FR.js.map → tvs.dtsnvindel-KGKBW5JS.js.map} +0 -0
  955. /package/dist/{tvs.dtsv-H7ZVHLS5.js.map → tvs.dtsv-M3CY5TZF.js.map} +0 -0
  956. /package/dist/{tvs.numeric-66FP6RRH.js.map → tvs.numeric-W74JCC5P.js.map} +0 -0
  957. /package/dist/{tvs.samplelst-Q5ECTZOY.js.map → tvs.samplelst-BTWFBBAN.js.map} +0 -0
  958. /package/dist/{tvs.termCollection-FYNMKZTR.js.map → tvs.termCollection-Y64QIKOA.js.map} +0 -0
  959. /package/dist/{violin-EGWLAJVM.js.map → violin-3LLHHV3L.js.map} +0 -0
  960. /package/dist/{violin.integration.spec-3P4TYHBR.js.map → violin.integration.spec-6NF5FDLQ.js.map} +0 -0
  961. /package/dist/{violin.interactivity-VWDR4LYB.js.map → violin.interactivity-W2AKZ24D.js.map} +0 -0
  962. /package/dist/{violin.renderer-WWTU6J7X.js.map → violin.renderer-CRFYYZRI.js.map} +0 -0
  963. /package/dist/{vocabulary-JG4ZITOH.js.map → vocabulary-AUJOAVYS.js.map} +0 -0
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../mass/search.js", "../mass/sessionBtn.js", "../mass/about.ts", "../mass/chat.ts", "../mass/nav.js"],
4
- "sourcesContent": ["import { getCompInit } from '../rx'\nimport { select, selectAll } from 'd3-selection'\nimport { Menu } from '../dom/menu'\nimport { debounce } from 'debounce'\nimport { sayerror } from '../dom/sayerror.ts'\n//import { graphable } from '../../common/termutils'\n\n/*\nsteps:\nuser input at <input> will call doSearch()\ndoSearch() lets app dispatch an action, type: search_\nbut the action will NOT update app state\napp notifies all components with the action\nonly main() of the \"search component\" will responds to the action to perform querying and display result\n\nopts{}\n.holder\n.click_term()\n.disable_terms[]\n\nTODO\nallow to search categories, e.g. hodgkin lymphoma from diaggrp, how to act upon clicking?\n\n */\n\nclass MassSearch {\n\tstatic type = 'search'\n\n\tconstructor(opts) {\n\t\tthis.type = MassSearch.type\n\t\tsetRenderers(this)\n\t\tsetInteractivity(this)\n\t}\n\n\tasync init(appState) {\n\t\tthis.dom = {\n\t\t\tholder: this.opts.holder,\n\t\t\tholderNode: this.opts.holder.node(),\n\t\t\ttip: new Menu({ padding: '5px' })\n\t\t}\n\t\tthis.initUI()\n\t}\n\n\treactsTo(action) {\n\t\treturn action.type.startsWith('search') || action.type.startsWith('cohort')\n\t}\n\n\tgetState(appState) {\n\t\treturn {\n\t\t\tcohortStr:\n\t\t\t\tappState.activeCohort == -1 || !appState.termdbConfig.selectCohort\n\t\t\t\t\t? ''\n\t\t\t\t\t: appState.termdbConfig.selectCohort.values[appState.activeCohort].keys.slice().sort().join(','),\n\t\t\tsearch: appState.search,\n\t\t\tnav: appState.nav\n\t\t}\n\t}\n\n\tasync main() {\n\t\t// show/hide search input from the tree\n\t\tthis.dom.holder.style('display', this.state.search.isVisible ? 'inline-block' : 'none')\n\t}\n\n\tasync doSearch(str) {\n\t\tif (!str) {\n\t\t\tthis.clear({ hide: true })\n\t\t\tthis.bus.emit('postSearch', [])\n\t\t\treturn\n\t\t}\n\t\tconst data = await this.app.vocabApi.findTerm(str, this.state.cohortStr, this.opts.usecase, this.opts.targetType)\n\t\tif (!data.lst || data.lst.length == 0) {\n\t\t\tthis.noResult()\n\t\t} else {\n\t\t\t// found terms\n\t\t\tthis.showTerms(data)\n\t\t}\n\t\tthis.bus.emit('postSearch', data)\n\t}\n}\n\nexport const searchInit = getCompInit(MassSearch)\n\nfunction setRenderers(self) {\n\tself.initUI = () => {\n\t\tself.dom.holder.style('display', self.search && self.search.isVisible == false ? 'none' : 'inline-block')\n\t\tself.dom.input = self.dom.holder\n\t\t\t.style('text-align', 'center')\n\t\t\t.append('input')\n\t\t\t.attr('type', 'search')\n\t\t\t.attr('class', 'tree_search')\n\t\t\t.attr('placeholder', 'Search')\n\t\t\t.style('width', '180px')\n\t\t\t.style('display', 'block')\n\t\t\t.on('input', debounce(self.onInput, 300))\n\n\t\tself.dom.resultDiv = self.dom.tip.d\n\t\t\t.style('border-left', self.opts.resultsHolder ? '' : 'solid 1px rgb(133,182,225)')\n\t\t\t.style('padding-left', '5px')\n\t}\n\tself.noResult = () => {\n\t\tself.clear()\n\t\tself.dom.resultDiv.append('div').text('No match').style('padding', '3px 3px 3px 0px').style('opacity', 0.5)\n\t}\n\tself.showTerms = data => {\n\t\t// add disabled terms to opts.disable_terms\n\t\tif (self.opts.disable_terms)\n\t\t\tdata.lst.forEach(t => {\n\t\t\t\tif (t.disabled) self.opts.disable_terms.push(t)\n\t\t\t})\n\t\tself.clear({ hide: !data.lst.length })\n\t\tif (data.lst.length) {\n\t\t\tself.dom.resultDiv.append('table').selectAll().data(data.lst).enter().append('tr').each(self.showTerm)\n\t\t}\n\t}\n\tself.showTerm = function (term) {\n\t\tconst tr = select(this)\n\t\tconst button = tr.append('td').text(term.name)\n\n\t\tif (term.type) {\n\t\t\t// has term type, show button for clicking\n\t\t\tbutton\n\t\t\t\t.style('cursor', 'pointer')\n\t\t\t\t.attr('class', 'sja_menuoption')\n\t\t\t\t.attr('data-testid', `sjpp-mass-search-term-${term.id}`)\n\t\t\t\t.on('click', async () => {\n\t\t\t\t\tif (self.state.nav?.activeTab == 0) {\n\t\t\t\t\t\t// see notes in about.ts line 340\n\t\t\t\t\t\tawait self.app.dispatch({\n\t\t\t\t\t\t\ttype: 'tab_set',\n\t\t\t\t\t\t\tactiveTab: 1\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\tself.app.dispatch({\n\t\t\t\t\t\ttype: 'plot_create',\n\t\t\t\t\t\tconfig: {\n\t\t\t\t\t\t\tchartType: term.type == 'survival' ? 'survival' : 'summary',\n\t\t\t\t\t\t\tterm: { term }\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\tself.clear({ hide: true })\n\t\t\t\t})\n\t\t} else {\n\t\t\t// no term type, not clickable\n\t\t\tbutton.style('padding', '5px 10px').style('opacity', 0.5)\n\t\t}\n\n\t\ttr.append('td')\n\t\t\t.text((term.__ancestorNames || []).join(' > '))\n\t\t\t.style('opacity', 0.5)\n\t\t\t.style('font-size', '.7em')\n\t}\n\tself.clear = (opts = {}) => {\n\t\tself.dom.tip.clear()\n\t\tif (opts.hide) self.dom.tip.hide()\n\t\telse self.dom.tip.showunder(self.dom.holderNode)\n\t}\n}\n\nfunction setInteractivity(self) {\n\tself.onInput = async () => {\n\t\tconst str = self.dom.input.property('value')\n\t\t// do not trim space from input so that 'age ' will not match with 'agent'\n\t\ttry {\n\t\t\t//await self.main({ str })\n\t\t\tawait self.doSearch(str)\n\t\t} catch (e) {\n\t\t\tself.clear()\n\t\t\tsayerror(self.dom.resultDiv, 'Error: ' + (e.message || e))\n\t\t\tif (e.stack) console.log(e.stack)\n\t\t}\n\t}\n}\n", "import { getCompInit } from '#rx'\nimport { Menu } from '#dom/menu'\nimport { to_textfile } from '#dom/downloadTextfile'\nimport { dofetch3 } from '#common/dofetch'\nimport { parentCorsMessage } from '#common/embedder-helpers'\nimport { select } from 'd3-selection'\nimport { importPlot } from '#plots/importPlot.js'\n\nclass MassSessionBtn {\n\tstatic type = 'sessionBtn'\n\n\tconstructor() {\n\t\tthis.type = MassSessionBtn.type\n\t\tthis.route = 'termdb'\n\t\tthis.embedderOrigin = window.location.origin\n\t\tthis.hostURL = sessionStorage.getItem('hostURL') || this.embedderOrigin\n\t}\n\n\tasync init(appState) {\n\t\tconst tip = new Menu({ padding: '0px' })\n\t\tconst copytip = new Menu({ padding: '5px' })\n\t\tthis.dom = {\n\t\t\tbutton: this.opts.button,\n\t\t\ttip,\n\t\t\tcopytip\n\t\t}\n\n\t\tthis.dom.button.on('click', event => {\n\t\t\tevent.stopPropagation()\n\t\t\tthis.dom.tip.clear()\n\t\t\tthis.showMenu()\n\t\t})\n\n\t\tthis.dslabel = appState.vocab.dslabel\n\t\tthis.savedSessions = JSON.parse(localStorage.getItem('savedMassSessions') || `{}`)\n\t\tthis.requiredAuth = appState.termdbConfig?.requiredAuth?.find(a => a.route == this.route && a.type == 'jwt')\n\t}\n\n\tasync showMenu() {\n\t\tthis.dom.tip.clear().d.style('padding', 0)\n\t\tthis.dom.tip.d.attr('id', 'sjpp-session-menu')\n\t\tconst gt = `<span style='margin-left: 24px; float: right'>&gt;</span>`\n\t\tconst options = [\n\t\t\t{ label: `Open`, title: 'Recover a saved session', callback: this.open },\n\t\t\t{ label: `Save`, title: 'Save the current view', callback: this.save },\n\t\t\t{ label: `Share`, title: 'Share the current view', callback: this.getSessionUrl }\n\t\t]\n\n\t\tif (!this.serverCachedSessions) await this.setServerCachedSessions()\n\t\tif (Object.keys(this.savedSessions).length || Object.keys(this.serverCachedSessions).length) {\n\t\t\toptions.push({ label: `Delete`, title: 'Delete a saved session', callback: this.delete })\n\t\t}\n\n\t\tthis.dom.tip\n\t\t\t.clear()\n\t\t\t.d.selectAll('.sja_menuoption sja_sharp_border')\n\t\t\t.data(options)\n\t\t\t.enter()\n\t\t\t.append('div')\n\t\t\t.attr('class', 'sja_menuoption sja_sharp_border')\n\t\t\t.attr('data-testid', d => `sjpp-session-btn-${d.label.toLowerCase().replace(/\\s/g, '-')}`)\n\t\t\t.attr('aria-label', d => d.title)\n\t\t\t.html(d => d.label)\n\t\t\t.on('click', (event, d) => {\n\t\t\t\tthis.dom.tip.clear().d.style('padding', '10px')\n\t\t\t\tevent.stopPropagation()\n\t\t\t\tthis.showBackBtn()\n\t\t\t\td.callback.call(this)\n\t\t\t})\n\n\t\tthis.dom.tip.showunder(this.dom.button.node())\n\t}\n\n\tasync open() {\n\t\tconst radioName = `sjpp-session-open-radio-` + Math.random().toString().slice(-6)\n\t\t// always open in the current tab for now, to avoid the tricky part of the code\n\t\t// that involves parent-child window messaging\n\t\t// TODO: re-enable when the new tab option works reliably\n\t\tthis.dom.tip.d.append('div').style('display', 'none').style('padding', '3px 9px').html(`\n\t\t\t<b>Open in</b>\n\t\t\t<label>\n\t\t\t\t<input type='radio' name='${radioName}' value='new' style='margin-right: 0; vertical-align: bottom'/>\n\t\t\t\t<span>a new tab</span>\n\t\t\t</label>\n\t\t\t<label style='margin-left: 5px'>\n\t\t\t\t<input type='radio' name='${radioName}' value='current' checked=checked style='margin-right: 0; vertical-align: bottom'/>\n\t\t\t\t<span>current tab</span>\n\t\t\t</label>\n\t\t`)\n\n\t\tconst t = await this.listSessions({\n\t\t\ttrClickHandler: async (event, d) => {\n\t\t\t\tconst { loc, id } = d\n\t\t\t\tif (!id) return\n\t\t\t\tif (loc.includes('browser')) {\n\t\t\t\t\tthis.sessionName = id\n\t\t\t\t\tconst state = structuredClone(this.savedSessions[id])\n\t\t\t\t\tawait preprocessState(state, this.app)\n\t\t\t\t\tconst targetWindow = this.dom.tip.d.node().querySelector(`[name=\"${radioName}\"]:checked`).value\n\t\t\t\t\tif (targetWindow == 'current') {\n\t\t\t\t\t\tthis.app.dispatch({ type: 'app_refresh', state })\n\t\t\t\t\t} else if (window.location.origin == this.hostURL) {\n\t\t\t\t\t\twindow.open(`/?mass-session-id=${id}&src=browser`)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (state.embedder) parentCorsMessage({ state })\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconst { protocol, host, search, origin, href } = window.location\n\t\t\t\t\t\t\tconst embedder = { protocol, host, search, origin, href }\n\t\t\t\t\t\t\tparentCorsMessage({ state: Object.assign({ embedder }, state) })\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tthis.dom.tip.hide()\n\t\t\t\t} else if (loc == 'server') {\n\t\t\t\t\tconst headers = await this.app.vocabApi.mayGetAuthHeaders(this.route)\n\t\t\t\t\tconst body = { id, route: this.route, dslabel: this.dslabel, embedder: window.location.hostname }\n\t\t\t\t\tconst res = await dofetch3(`/massSession?`, { headers, body })\n\t\t\t\t\tif (!res.state) throw res.error || 'unable to get the cached session from the server'\n\t\t\t\t\tawait preprocessState(res.state, this.app)\n\t\t\t\t\tthis.savedSessions[id] = res.state\n\n\t\t\t\t\tconst targetWindow = this.dom.tip.d.node().querySelector(`[name=\"${radioName}\"]:checked`).value\n\t\t\t\t\tif (targetWindow == 'current') {\n\t\t\t\t\t\tthis.app.dispatch({ type: 'app_refresh', state: res.state })\n\t\t\t\t\t} else if (window.location.origin == this.hostURL) {\n\t\t\t\t\t\twindow.open(`/?mass-session-id=${id}&src=cred&dslabel=${this.dslabel}&route=${this.route}`)\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// server-cached sessions should have an state.embedder object, no need to check\n\t\t\t\t\t\tparentCorsMessage(res)\n\t\t\t\t\t}\n\t\t\t\t\tthis.dom.tip.hide()\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tt.headtr.select('th').html('Open from')\n\n\t\t// open session from a local file\n\t\tconst tr1 = t.tbody.insert('tr', 'tr')\n\t\ttr1.append('td').style('text-align', 'center').style('padding', '3px 9px').html('Local file')\n\t\tconst label = tr1.append('td').style('text-align', 'left').append('label')\n\t\tlabel\n\t\t\t.append('span')\n\t\t\t.style('padding', '3px 9px')\n\t\t\t.style('text-decoration', 'underline')\n\t\t\t.style('cursor', 'pointer')\n\t\t\t.html('Choose File')\n\t\tlabel\n\t\t\t.append('input')\n\t\t\t.attr('type', 'file')\n\t\t\t.attr('placeholder', 'file name')\n\t\t\t.style('opacity', 0)\n\t\t\t.style('width', '0.1px')\n\t\t\t.style('height', '0.1px')\n\t\t\t.style('position', 'absolute')\n\t\t\t.on('change', async () => {\n\t\t\t\tconst file = event.target.files.item(0)\n\t\t\t\tconst json = await file.text()\n\t\t\t\tlet sessionName = file.name\n\t\t\t\tif (this.savedSessions[sessionName]) {\n\t\t\t\t\tsessionName = prompt(\n\t\t\t\t\t\t`Leave as-is to overwrite a session with the same name, or enter a different session name.`,\n\t\t\t\t\t\tsessionName\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tthis.sessionName = sessionName\n\t\t\t\tconst state = JSON.parse(json)\n\t\t\t\tawait preprocessState(state, this.app)\n\t\t\t\tthis.savedSessions[sessionName] = state\n\t\t\t\tlocalStorage.setItem('savedMassSessions', JSON.stringify(this.savedSessions))\n\t\t\t\tconst targetWindow = this.dom.tip.d.node().querySelector(`[name=\"${radioName}\"]:checked`).value\n\t\t\t\tif (targetWindow == 'current') {\n\t\t\t\t\tthis.app.dispatch({ type: 'app_refresh', state })\n\t\t\t\t} else if (window.location.origin == this.hostURL) {\n\t\t\t\t\twindow.open(`/?mass-session-id=${sessionName}&src=browser`)\n\t\t\t\t} else {\n\t\t\t\t\tif (state.embedder) parentCorsMessage({ state })\n\t\t\t\t\telse {\n\t\t\t\t\t\tconst { protocol, host, search, origin, href } = window.location\n\t\t\t\t\t\tconst embedder = { protocol, host, search, origin, href }\n\t\t\t\t\t\tparentCorsMessage({ state: Object.assign({ embedder }, state) })\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.dom.tip.hide()\n\t\t\t})\n\t}\n\n\tasync listSessions(opts = {}) {\n\t\tconst table = this.dom.tip.d.append('table').attr('class', 'sjpp-controls-table')\n\n\t\tconst headtr = table.append('thead').append('tr')\n\t\theadtr\n\t\t\t.selectAll('th')\n\t\t\t.data(['Cache Location', 'Session ID'])\n\t\t\t.enter()\n\t\t\t.append('th')\n\t\t\t.style('text-align', (d, i) => (i === 0 ? 'center' : 'left'))\n\t\t\t.style('padding', '3px 9px')\n\t\t\t.html(d => d)\n\n\t\tconst sessionIds = Object.keys(this.savedSessions).map(id => ({ loc: 'browser', id }))\n\t\tif (!this.serverCachedSessions) await this.setServerCachedSessions()\n\t\tsessionIds.push(...this.serverCachedSessions.map(id => ({ loc: 'server', id })))\n\n\t\tconst tbody = table.append('tbody')\n\t\tconst trs = tbody\n\t\t\t.selectAll('tr')\n\t\t\t.data(sessionIds)\n\t\t\t.enter()\n\t\t\t.append('tr')\n\t\t\t.on('click', opts.trClickHandler || null)\n\n\t\ttrs\n\t\t\t.selectAll('td')\n\t\t\t.data(d => [d, d])\n\t\t\t.enter()\n\t\t\t.append('td')\n\t\t\t.style('text-align', (d, i) => (i === 0 ? 'center' : 'left'))\n\t\t\t.style('padding', '3px 9px')\n\t\t\t.style('cursor', 'pointer')\n\t\t\t.html((d, i) => (i === 0 ? d.loc : d.id))\n\n\t\tif (!this.serverCachedSessions.length && this.requiredAuth && !this.app.vocabApi.hasVerifiedToken()) {\n\t\t\tconst tbody2 = table\n\t\t\t\t.append('tbody')\n\t\t\t\t.append('tr')\n\t\t\t\t.selectAll('td')\n\t\t\t\t.data(['server', 'requires sign-in'])\n\t\t\t\t.enter()\n\t\t\t\t.append('td')\n\t\t\t\t.style('text-align', (d, i) => (i === 0 ? 'center' : 'left'))\n\t\t\t\t.style('padding', '3px 9px')\n\t\t\t\t.html(d => d)\n\t\t}\n\t\treturn { table, headtr, tbody, trs }\n\t}\n\n\tasync setServerCachedSessions() {\n\t\tconst state = this.app.getState()\n\t\tthis.requiredAuth = state.termdbConfig?.requiredAuth?.find(a => a.route == this.route && a.type == 'jwt')\n\t\tif (!this.requiredAuth) {\n\t\t\tthis.serverCachedSessions = []\n\t\t\treturn\n\t\t}\n\t\tconst headers = this.app.vocabApi.mayGetAuthHeaders(this.route)\n\t\tconst body = { route: this.route, dslabel: this.dslabel, embedder: window.location.hostname }\n\t\tconst res = await dofetch3('/sessionIds', { headers, body })\n\t\tthis.serverCachedSessions = res.sessionIds || []\n\t}\n\n\tasync save(d) {\n\t\tconst div = this.dom.tip.d\n\t\tconst inputDiv = div.append('div')\n\t\tinputDiv.append('span').html('Save as')\n\t\tconst sessionNames = Object.keys(this.savedSessions)\n\t\tif (!this.serverCachedSessions) await this.setServerCachedSessions()\n\t\tsessionNames.push(...this.serverCachedSessions.filter(d => !sessionNames.includes(d)))\n\t\tconst placeholder = this.sessionName || 'unnamed-session'\n\t\tconst input = inputDiv\n\t\t\t.append('input')\n\t\t\t.attr('type', 'text')\n\t\t\t.attr('placeholder', placeholder)\n\t\t\t.style('width', '220px')\n\t\t\t.on('input', () => {\n\t\t\t\tsearchResultDiv.selectAll('*').remove()\n\t\t\t\tconst value = input.property('value')\n\t\t\t\tconst exactMatch = sessionNames.filter(s => s === value)\n\t\t\t\tconst startsWith = sessionNames.filter(s => s.startsWith(value))\n\t\t\t\tconst includes = sessionNames.filter(s => s.includes(value) && s !== value && !startsWith.includes(s))\n\t\t\t\tsearchResultDiv\n\t\t\t\t\t.selectAll('div')\n\t\t\t\t\t.data([...exactMatch, ...startsWith, ...includes])\n\t\t\t\t\t.enter()\n\t\t\t\t\t.append('div')\n\t\t\t\t\t.attr('class', 'sja_menuoption')\n\t\t\t\t\t.attr('data-testid', `sjpp-save-session-option`)\n\t\t\t\t\t.html(d => d)\n\t\t\t\t\t.on('click', (event, d) => {\n\t\t\t\t\t\tinput.property('value', d)\n\t\t\t\t\t\tsearchResultDiv.selectAll('*').remove()\n\t\t\t\t\t})\n\t\t\t})\n\n\t\tconst searchResultDiv = div.append('div')\n\t\tconst submitDiv = div.append('div')\n\t\tsubmitDiv.append('span').html('Save to&nbsp;')\n\t\tsubmitDiv\n\t\t\t.append('button')\n\t\t\t.style('min-width', '80px')\n\t\t\t.html('Browser')\n\t\t\t.attr(\n\t\t\t\t'title',\n\t\t\t\t`Save the session in your current browser's cache. The session can be easily recovered, but not shared among your other devices`\n\t\t\t)\n\t\t\t.on('click', () => {\n\t\t\t\tthis.sessionName = input.property('value') || placeholder\n\t\t\t\tthis.savedSessions[this.sessionName] = this.app.getState()\n\t\t\t\tlocalStorage.setItem('savedMassSessions', JSON.stringify(this.savedSessions))\n\t\t\t\tthis.confirmAction(`Cached '<b>${this.sessionName}</b>' in browser`)\n\t\t\t})\n\n\t\tsubmitDiv\n\t\t\t.append('button')\n\t\t\t.style('min-width', '80px')\n\t\t\t.html('File')\n\t\t\t.attr(\n\t\t\t\t'title',\n\t\t\t\t`Save the session into a local file. The session can be easily recoved using the 'Open from local file' option.`\n\t\t\t)\n\t\t\t.on('click', () => {\n\t\t\t\tconst name = input.property('value') || placeholder\n\t\t\t\tthis.savedSessions[name] = this.app.getState()\n\t\t\t\tthis.download(name)\n\t\t\t\tthis.confirmAction(`Downloaded '<b>${name}</b>'`)\n\t\t\t})\n\n\t\t// assume that a jwt-type credential will include the user email in the jwt payload,\n\t\t// which could be trusted for saving sessions under cachedir/termdbSessions/[embedderHostName]/[email]\n\t\tif (this.requiredAuth) {\n\t\t\tconst requiresSignIn = this.app.vocabApi.hasVerifiedToken() ? '' : 'Requires sign-in. '\n\t\t\tsubmitDiv\n\t\t\t\t.append('button')\n\t\t\t\t.style('min-width', '80px')\n\t\t\t\t.html('Server')\n\t\t\t\t.attr(\n\t\t\t\t\t'title',\n\t\t\t\t\t`${requiresSignIn}Save the session into a remote server. The session can be easily shared across your different devices and recovered using the 'Open from server' option.`\n\t\t\t\t)\n\t\t\t\t.property('disabled', !this.app.vocabApi.hasVerifiedToken())\n\t\t\t\t.on('click', async () => {\n\t\t\t\t\tif (!this.app.vocabApi.hasVerifiedToken()) {\n\t\t\t\t\t\talert('Requires sign-in')\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tconst name = input.property('value') || placeholder\n\t\t\t\t\tthis.savedSessions[name] = this.app.getState()\n\t\t\t\t\tconst res = await this.getSessionUrl(name)\n\t\t\t\t\tif (res.id != name) throw `error saving ${name}`\n\t\t\t\t\t// this.download(name)\n\t\t\t\t\tthis.confirmAction(`Saved '<b>${name}</b>' on the server`)\n\t\t\t\t})\n\t\t}\n\t}\n\n\tdownload(name = '') {\n\t\tconst sessionName = name || this.sessionName\n\t\tconst ext = sessionName?.endsWith('.txt') ? '' : '.txt'\n\t\tconst filename = `${sessionName}${ext}`\n\t\tto_textfile(filename, JSON.stringify(this.savedSessions[sessionName]))\n\t}\n\n\tasync getSessionUrl(filename = '') {\n\t\tconst headers = await this.app.vocabApi.mayGetAuthHeaders('termdb')\n\t\tconst state = structuredClone(this.app.getState())\n\t\tconst { protocol, host, search, origin, href } = window.location\n\t\tstate.embedder = { protocol, host, search, origin, href }\n\t\tif (filename) {\n\t\t\t// a non-empty filename value implies saving by email and having auth session,\n\t\t\t// since it's easy for different users to use the same non-random filename\n\t\t\tstate.__sessionFor__ = {\n\t\t\t\troute: this.route,\n\t\t\t\tfilename,\n\t\t\t\tdslabel: this.dslabel,\n\t\t\t\tembedder: window.location.hostname\n\t\t\t}\n\t\t}\n\t\tconst res = await dofetch3('/massSession', {\n\t\t\theaders,\n\t\t\tmethod: 'POST',\n\t\t\tbody: JSON.stringify(state)\n\t\t})\n\n\t\tif (filename) {\n\t\t\treturn res\n\t\t} else {\n\t\t\tconst url = `${this.hostURL}/?mass-session-id=${res.id}&noheader=1`\n\t\t\tthis.dom.tip.showunder(this.dom.button.node())\n\t\t\tconst linkDiv = this.dom.tip.d.append('div').style('margin', '10px')\n\t\t\tlinkDiv\n\t\t\t\t.append('div')\n\t\t\t\t.style('display', 'flex')\n\t\t\t\t.style('margin-bottom', '12px')\n\t\t\t\t.html(`Open or copy the session link.`)\n\n\t\t\tconst a = linkDiv.append('a').style('display', 'none').attr('href', url).attr('target', '_blank').html(res.id)\n\n\t\t\t// open button\n\t\t\tlinkDiv\n\t\t\t\t.append('button')\n\t\t\t\t.style('cursor', 'pointer')\n\t\t\t\t.text('Open link')\n\t\t\t\t.on('click', () => {\n\t\t\t\t\ta.node().click()\n\t\t\t\t})\n\n\t\t\t// copy button\n\t\t\tlinkDiv\n\t\t\t\t.append('button')\n\t\t\t\t.style('cursor', 'pointer')\n\t\t\t\t.style('margin-left', '10px')\n\t\t\t\t.text('Copy link')\n\t\t\t\t.on('click', async event => {\n\t\t\t\t\tawait navigator.clipboard.writeText(url)\n\t\t\t\t\tthis.dom.copytip.clear().showunder(event.target)\n\t\t\t\t\tthis.dom.copytip.d.append('div').html('&#10003;')\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tthis.dom.copytip.hide()\n\t\t\t\t\t}, 1000)\n\t\t\t\t})\n\n\t\t\tif (this.hostURL != window.location.origin) {\n\t\t\t\t// Avoid the multi-window/tab sequence to recover the session:\n\t\t\t\t// intercept the click on the URL link, so that the embedder URL is opened\n\t\t\t\t// instead of the hostURL with mass session id, and this window will post\n\t\t\t\t// a message to the child window with the link data instead\n\t\t\t\t//\n\t\t\t\t// NOTE: the multi-window/tab sequence is only necessary when the URL link\n\t\t\t\t// was not opened by the embedder window\n\t\t\t\t//\n\t\t\t\ta.on('click', event => {\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\tparentCorsMessage({ state }, 'noredirect')\n\t\t\t\t\treturn false\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tlinkDiv.append('div').html(`\n\t\t\t\t\t<br>\n\t\t\t\t\t<div style=\"max-width: 400px; font-size: 1em; opacity:.6\">\n\t\t\t\t\t<span>NOTES</span>\n\t\t\t\t\t<ul>\n\t\t\t\t\t<li>A recovered session may hide data or views to users that are not authorized to access the saved datasets or features.</li>\n\t\t\t\t\t<li>This session will be saved for ${this.opts.massSessionDuration} days.</li>\n\t\t\t\t\t</ul>\n\t\t\t\t\t</div>`)\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.dom.button.property('disabled', false)\n\t\t\t}, 1000)\n\t\t}\n\t}\n\n\tasync delete() {\n\t\tconst t = await this.listSessions({\n\t\t\ttrClickHandler: function (event) {\n\t\t\t\tconst input = this.lastChild.querySelector('input')\n\t\t\t\tconst checked = event.target == input ? input.checked : !input.checked\n\t\t\t\tselect(this).style('text-decoration', checked ? 'line-through' : '')\n\t\t\t\tif (event.target != input) input.checked = checked\n\t\t\t\tconst checkedRows = t.table.node().querySelectorAll('input:checked')\n\t\t\t\tsubmitBtn.property('disabled', checkedRows.length ? false : true)\n\t\t\t}\n\t\t})\n\n\t\t// add a 3rd column for the checkboxes\n\t\tt.headtr.append('th').html('Delete')\n\t\tt.trs.each(function (d) {\n\t\t\tselect(this)\n\t\t\t\t.append('td')\n\t\t\t\t.style('text-align', 'center')\n\t\t\t\t.append('input')\n\t\t\t\t.attr('type', 'checkbox')\n\t\t\t\t.attr('value', d.id)\n\t\t})\n\n\t\tconst submitBtn = this.dom.tip.d\n\t\t\t.append('div')\n\t\t\t.style('text-align', 'center')\n\t\t\t.append('button')\n\t\t\t.html('Delete selected sessions')\n\t\t\t.property('disabled', true)\n\t\t\t.on('click', async () => {\n\t\t\t\tconst inputs = t.table.node().querySelectorAll('input')\n\t\t\t\tconst sessionIdsDeletedFromServer = []\n\t\t\t\tfor (const input of inputs) {\n\t\t\t\t\tif (select(input).property('checked')) {\n\t\t\t\t\t\tconst d = input.parentNode.parentNode.__data__\n\t\t\t\t\t\tif (d.loc == 'browser') {\n\t\t\t\t\t\t\tdelete this.savedSessions[input.value] //checkedIds.push(input.value)\n\t\t\t\t\t\t} else if (d.loc == 'server') {\n\t\t\t\t\t\t\tdelete this.serverCachedSessions[input.value]\n\t\t\t\t\t\t\tsessionIdsDeletedFromServer.push(input.value)\n\t\t\t\t\t\t} else throw `unknown cache location=${d.loc}`\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlocalStorage.setItem('savedMassSessions', JSON.stringify(this.savedSessions))\n\t\t\t\ttry {\n\t\t\t\t\tconst headers = await this.app.vocabApi.mayGetAuthHeaders('termdb')\n\t\t\t\t\tconst body = {\n\t\t\t\t\t\tids: sessionIdsDeletedFromServer,\n\t\t\t\t\t\troute: this.route,\n\t\t\t\t\t\tdslabel: this.dslabel,\n\t\t\t\t\t\tembedder: window.location.hostname\n\t\t\t\t\t}\n\t\t\t\t\tconst res = dofetch3(`/massSession?`, { method: 'DELETE', headers, body })\n\t\t\t\t} catch (e) {\n\t\t\t\t\tthrow e\n\t\t\t\t}\n\t\t\t\tthis.dom.tip.hide()\n\t\t\t})\n\t}\n\n\tshowBackBtn() {\n\t\tthis.dom.tip.d\n\t\t\t.append('div')\n\t\t\t.attr('class', 'sja_clbtext2')\n\t\t\t.style('margin-bottom', '10px')\n\t\t\t.style('cursor', 'pointer')\n\t\t\t.html(`&lt; Session Menu`)\n\t\t\t.on('click', () => this.showMenu())\n\t}\n\n\tconfirmAction(html) {\n\t\tthis.dom.tip.clear().d.append('div').html(html).transition().delay(3000).duration(1000).style('opacity', 0)\n\n\t\tsetTimeout(() => {\n\t\t\tthis.dom.tip.hide()\n\t\t}, 3500)\n\t}\n}\n\n// may need to edit state based on updated expectations,\n// such as new or deprecated plot settings keys/values\nasync function preprocessState(state, app) {\n\tdelete state.termdbConfig\n\tif (state.plots) {\n\t\tconst promises = []\n\t\tfor (const plot of state.plots) {\n\t\t\tpromises.push(\n\t\t\t\t(async () => {\n\t\t\t\t\tconst _ = await importPlot(plot.chartType)\n\t\t\t\t\treturn await _.getPlotConfig(plot, app)\n\t\t\t\t})()\n\t\t\t)\n\t\t}\n\t\ttry {\n\t\t\tawait Promise.all(promises)\n\t\t} catch (e) {\n\t\t\tconsole.log(e)\n\t\t\tapp.printError(e)\n\t\t}\n\t}\n}\n\nexport const sessionBtnInit = getCompInit(MassSessionBtn)\n", "import { getId } from './nav'\nimport { type AppApi, getCompInit } from '#rx'\nimport type { Elem, Div, H2 } from '../types/d3'\nimport type { SelectCohortEntry } from '#types'\nimport { renderTable, type TableRow } from '#dom'\nimport { select } from 'd3-selection'\n\n/* \n\"about\" tab will display following contents inside this.subheader:\n- if ds uses subcohorts:\n\t- <h2> for selectCohort.title\n\t- description\n\t- radio button options\n- custom html via massNav.about.html (todo images and cartoon)\n- active items to launch demo plots\n- server info\n*/\n\nconst cohortTableActiveColor = 'yellow'\n\n// this type is fully defined in MassNav def in dataset.ts but not in a form that can extract \"about\" config to share. thus need to repeat here to avoid tsc err\ntype AboutObj = {\n\thtml: string\n\tactiveItems?: { items: any }\n}\n\ntype MassAboutOpts = {\n\t/** Optional. Set in the dataset file under .massNav.tabs.about. Otherwise null. */\n\taboutOverrides: AboutObj | null\n\t/** Required. Provided from nav component */\n\tapp: AppApi\n\t/** Required. Provided from nav component */\n\tinstanceNum: number\n\t/** Optional. Set in the dataset file under .termdb.selectCohort. Otherwise null. */\n\tselectCohort: SelectCohortEntry | null\n\t/** Required. .dom.subheader.about in nav component, assigned to this.subheader */\n\tsubheader: Elem\n}\n\ntype MassAboutDom = {\n\t/** Fine print dom shown between the cohort specific content and the server info */\n\tcohortAsterisk?: Div\n\t/** Displays description */\n\tcohortDescription: Div\n\t/** Div for cohort radio buttons */\n\tcohortOpts?: Div\n\t/** Text above radio cohort options */\n\tcohortPrompt?: Div\n\t/** */\n\tcohortTable?: Div\n\t/** Title above the cohort introduction/content */\n\tcohortTitle?: H2\n}\n//TODO: Make a validate opts fn\nexport class MassAbout {\n\tstatic type = 'about'\n\n\taboutOverrides: AboutObj | null\n\tapp: AppApi\n\tdom: MassAboutDom\n\tinstanceNum: number\n\tselectCohort: SelectCohortEntry | null\n\tsubheader: Elem // where all contents are rendered\n\ttype: string\n\topts: MassAboutOpts\n\tstate: any\n\n\tconstructor(opts: MassAboutOpts) {\n\t\tthis.opts = opts\n\t\tthis.type = MassAbout.type\n\t\tthis.app = opts.app\n\t\tthis.subheader = opts.subheader\n\t\tthis.instanceNum = opts.instanceNum\n\t\tthis.aboutOverrides = opts.aboutOverrides\n\t\tthis.selectCohort = opts.selectCohort\n\t\tthis.dom = {\n\t\t\tcohortDescription: this.subheader\n\t\t\t\t.append('div')\n\t\t\t\t.attr('data-testid', 'sjpp-about-cohort-desc')\n\t\t\t\t.style('margin-left', '10px')\n\t\t}\n\n\t\tif (opts?.selectCohort?.title) {\n\t\t\tthis.dom.cohortTitle = opts.subheader\n\t\t\t\t.append('h2')\n\t\t\t\t.attr('data-testid', 'sjpp-about-cohort-title')\n\t\t\t\t.style('margin-left', '10px')\n\t\t\t\t.text(opts.selectCohort.title)\n\t\t}\n\n\t\tif (opts.selectCohort?.prompt) {\n\t\t\tthis.dom.cohortPrompt = this.subheader\n\t\t\t\t.append('div')\n\t\t\t\t.attr('data-testid', 'sjpp-about-cohort-prompt')\n\t\t\t\t.style('margin-left', '10px')\n\t\t\t\t.style('padding-top', '30px')\n\t\t\t\t.style('padding-bottom', '10px')\n\t\t\t\t.style('font-weight', 'bold')\n\t\t\t\t.style('font-size', '1.2em')\n\t\t\t\t.text(opts.selectCohort.prompt)\n\t\t}\n\n\t\tif (opts.selectCohort) {\n\t\t\tthis.dom.cohortOpts = this.subheader.append('div').style('margin-bottom', '30px').style('margin-left', '10px')\n\t\t}\n\t}\n\n\t/* render all contents into this.subheader\n\tdo it through init() means that contents are rendered just once on launching mass ui and won't be rerendered or updated\n\tsince there's no reason to update about tab contents while user is interacting with mass ui\n\t*/\n\tinit(appState) {\n\t\t/** If selectCohort available, options in the about html will not show */\n\t\tthis.initCohort(appState)\n\t\tthis.initCustomHtml()\n\t\tthis.initActiveItems()\n\t\t//Always show the release version and server launch date at the bottom\n\t\tthis.showServerInfo()\n\t}\n\n\tasync main() {\n\t\t// do not render unless the cohort tab is active\n\t\tif (this.state.nav.activeTab !== 0) return\n\t\tawait this.renderCohortsTable()\n\t\tif (this.opts.selectCohort) {\n\t\t\tif (this.opts.selectCohort.description) {\n\t\t\t\tthis.dom.cohortDescription.html(this.opts.selectCohort.description)\n\t\t\t} else if (this.opts.selectCohort.descriptionByCohort) {\n\t\t\t\tthis.dom.cohortDescription.html(\n\t\t\t\t\tthis.opts.selectCohort.descriptionByCohort[\n\t\t\t\t\t\tthis.state.termdbConfig.selectCohort.values[this.state.activeCohort].keys.join(',')\n\t\t\t\t\t]\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\tinitCohort = appState => {\n\t\tif (this.selectCohort == null) return\n\t\t//Move to validate opts fn\n\t\tif (!this.selectCohort.values) return\n\n\t\tconst instanceNum = this.instanceNum\n\t\tconst activeCohort = appState.activeCohort\n\t\tconst app = this.app\n\n\t\t//TODO: replace with make_radios\n\t\tthis.dom\n\t\t\t.cohortOpts!.append('table')\n\t\t\t.attr('data-testid', 'sjpp-about-cohort-options-table')\n\t\t\t.selectAll('tr')\n\t\t\t.data(this.selectCohort.values)\n\t\t\t.enter()\n\t\t\t.append('tr')\n\t\t\t.each(function (d, i, nodes) {\n\t\t\t\tconst tr = select(nodes[i])\n\t\t\t\tconst td0 = tr.append('td')\n\t\t\t\tconst radioName = 'sja-termdb-cohort-' + instanceNum\n\t\t\t\tconst radioId = radioName + '-' + i\n\t\t\t\ttd0\n\t\t\t\t\t.append('input')\n\t\t\t\t\t.style('scale', '1.2')\n\t\t\t\t\t.attr('type', 'radio')\n\t\t\t\t\t.attr('name', radioName)\n\t\t\t\t\t.attr('id', radioId)\n\t\t\t\t\t.attr('value', i)\n\t\t\t\t\t.property('checked', i === activeCohort)\n\t\t\t\t\t.style('margin-right', '5px')\n\t\t\t\t\t.style('margin-left', '0px')\n\t\t\t\t\t.on('click', async event => {\n\t\t\t\t\t\tconst state = app.getState()\n\t\t\t\t\t\tconst clearOnChange = state.termdbConfig.selectCohort.clearOnChange\n\t\t\t\t\t\tif (clearOnChange) {\n\t\t\t\t\t\t\tconst subactions: any[] = []\n\t\t\t\t\t\t\tconst toBeCleared: string[] = []\n\t\t\t\t\t\t\tconst plots = state.plots\n\t\t\t\t\t\t\tconst filter = state.termfilter.filter.lst.find(f => f.tag == 'filterUiRoot')?.lst\n\t\t\t\t\t\t\tconst groups = state.groups\n\n\t\t\t\t\t\t\tif (clearOnChange.plots && plots?.length) toBeCleared.push('plots')\n\t\t\t\t\t\t\tfor (const plot of plots) {\n\t\t\t\t\t\t\t\tsubactions.push({\n\t\t\t\t\t\t\t\t\ttype: 'plot_delete',\n\t\t\t\t\t\t\t\t\tid: plot.id\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (clearOnChange.filter && filter?.length) toBeCleared.push('filters')\n\t\t\t\t\t\t\tsubactions.push({\n\t\t\t\t\t\t\t\ttype: 'filter_replace',\n\t\t\t\t\t\t\t\tfilter: {\n\t\t\t\t\t\t\t\t\ttype: 'tvslst',\n\t\t\t\t\t\t\t\t\tin: true,\n\t\t\t\t\t\t\t\t\tjoin: '',\n\t\t\t\t\t\t\t\t\ttag: 'filterUiRoot',\n\t\t\t\t\t\t\t\t\tlst: []\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\tif (clearOnChange.groups && groups?.length) {\n\t\t\t\t\t\t\t\ttoBeCleared.push('groups')\n\t\t\t\t\t\t\t\tfor (const group of groups) {\n\t\t\t\t\t\t\t\t\tsubactions.push({\n\t\t\t\t\t\t\t\t\t\ttype: 'delete_group',\n\t\t\t\t\t\t\t\t\t\tname: group.name\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tfor (const term of state.customTerms) {\n\t\t\t\t\t\t\t\t\tsubactions.push({\n\t\t\t\t\t\t\t\t\t\ttype: 'delete_customTerm',\n\t\t\t\t\t\t\t\t\t\tname: term.name\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsubactions.push({ type: 'cohort_set', activeCohort: i })\n\t\t\t\t\t\t\tif (toBeCleared.length) {\n\t\t\t\t\t\t\t\tconst confirm = window.confirm(\n\t\t\t\t\t\t\t\t\t`Changing the cohort will clear all ${joinByComma(\n\t\t\t\t\t\t\t\t\t\ttoBeCleared\n\t\t\t\t\t\t\t\t\t)}. To proceed, click \"OK\". To save the session, click \"Cancel\" and then click the \"Session\" button at the top of the page.`\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\tif (!confirm) {\n\t\t\t\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tapp.dispatch({\n\t\t\t\t\t\t\t\ttype: 'app_refresh',\n\t\t\t\t\t\t\t\tsubactions\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t} else app.dispatch({ type: 'cohort_set', activeCohort: i })\n\t\t\t\t\t})\n\n\t\t\t\ttd0\n\t\t\t\t\t.append('label')\n\t\t\t\t\t.style('font-size', '1.4em')\n\t\t\t\t\t.attr('for', radioId)\n\t\t\t\t\t.attr('colspan', 2)\n\t\t\t\t\t.style('cursor', 'pointer')\n\t\t\t\t\t.html((d: any) => d.label)\n\n\t\t\t\ttr.selectAll('td')\n\t\t\t\t\t.style('max-width', '600px')\n\t\t\t\t\t.style('padding-bottom', '10px')\n\t\t\t\t\t.style('padding-right', '20px')\n\t\t\t\t\t.style('vertical-align', 'top')\n\t\t\t})\n\n\t\tthis.dom.cohortTable = this.subheader\n\t\t\t.append('div')\n\t\t\t.attr('data-testid', 'sjpp-about-cohort-table')\n\t\t\t.style('margin-left', '12px')\n\n\t\tif (this.selectCohort.asterisk) {\n\t\t\tthis.dom.cohortAsterisk = this.subheader\n\t\t\t\t.append('div')\n\t\t\t\t.attr('data-testid', 'sjpp-about-cohort-asterisk')\n\t\t\t\t.style('margin', '10px')\n\t\t\t\t.style('font-size', '.8em')\n\t\t\t\t.text(this.selectCohort.asterisk)\n\t\t}\n\t}\n\n\trenderCohortsTable = async () => {\n\t\tif (!this.dom.cohortTable) return\n\t\tthis.dom.cohortTable.selectAll('*').remove()\n\t\tconst columns = [{ label: 'Feature' }]\n\t\tconst rows: TableRow[] = []\n\t\tconst result = await this.app.vocabApi.getCohortsData()\n\t\tif ('error' in result) throw result.error\n\t\tif (this.selectCohort?.values) {\n\t\t\t// selectCohort.values[] contains ordered set of cohorts\n\t\t\t// ensure cohorts in cohorts table follow this order\n\t\t\tconst values = this.selectCohort.values\n\t\t\tresult.cohorts.sort((a, b) => {\n\t\t\t\tconst aIndex = values.findIndex(v => v.keys.toString() == a.cohort)\n\t\t\t\tconst bIndex = values.findIndex(v => v.keys.toString() == b.cohort)\n\t\t\t\tif (aIndex < bIndex) return -1\n\t\t\t\tif (aIndex > bIndex) return 1\n\t\t\t\treturn 0\n\t\t\t})\n\t\t}\n\t\tif (!result.cfeatures.length) return\n\t\tfor (const feature of result.features) rows.push([{ value: feature.name }])\n\t\tfor (const cohort of result.cohorts) {\n\t\t\tif (cohort.subcohorts?.length) continue\n\t\t\tcolumns.push({ label: cohort.name })\n\t\t\tfor (const [i, feature] of result.features.entries()) {\n\t\t\t\tconst cf = result.cfeatures.find(cf => cf.idfeature === feature.idfeature && cf.cohort === cohort.cohort)\n\t\t\t\tif (cf) rows[i].push({ value: cf.value })\n\t\t\t}\n\t\t}\n\n\t\trenderTable({\n\t\t\trows,\n\t\t\tcolumns,\n\t\t\tdiv: this.dom.cohortTable,\n\t\t\tshowLines: false,\n\t\t\tmaxHeight: '60vh',\n\t\t\theader: { style: { 'font-size': '1.2em', 'font-weight': 'bold' } }\n\t\t})\n\n\t\tthis.dom.cohortTable.select('table').style('border-collapse', 'collapse')\n\t\tthis.dom.cohortTable.selectAll(`tbody > tr > td`).style('background-color', 'transparent').style('padding', '6px')\n\t\tconst state = this.app.getState()\n\t\tconst selectCohort = state.termdbConfig.selectCohort\n\t\tconst activeCohort = state.activeCohort\n\t\tconst keys = selectCohort.values[activeCohort].keys\n\t\tlet selector = `tbody > tr > td:nth-child(${activeCohort + 2})`\n\t\tconst combined = keys.length > 1\n\t\tif (combined) {\n\t\t\tselector = ''\n\t\t\tfor (const key of keys) {\n\t\t\t\tconst i = result.cohorts.map(c => c.cohort).indexOf(key)\n\t\t\t\tif (selector !== '') selector += ','\n\t\t\t\tselector += `tbody > tr > td:nth-child(${i + 2})`\n\t\t\t}\n\t\t}\n\t\tconst activeColumns = this.dom.cohortTable.selectAll(selector)\n\t\tconst color = state.termdbConfig.massNav?.activeColor || cohortTableActiveColor\n\t\tactiveColumns.style('background-color', color)\n\t}\n\n\tinitCustomHtml = () => {\n\t\tif (this.selectCohort != null) return\n\t\tif (!this.aboutOverrides?.html) return\n\t\tthis.subheader\n\t\t\t.append('div')\n\t\t\t.attr('data-testid', 'sjpp-custom-about-content')\n\t\t\t.style('padding', '10px')\n\t\t\t.html(this.aboutOverrides.html)\n\t}\n\n\tinitActiveItems = () => {\n\t\tif (!this.aboutOverrides?.activeItems) return\n\n\t\t// todo: customize general holder by activeItems.holderStyle{}\n\t\tconst div = this.subheader\n\t\t\t.append('div')\n\t\t\t.attr('data-testid', 'sjpp-custom-about-activeItems')\n\t\t\t.style('padding', '0px 0px 20px 20px')\n\n\t\tfor (const item of this.aboutOverrides.activeItems.items) {\n\t\t\t// todo: by item.type, item.divStyle{}\n\t\t\tdiv\n\t\t\t\t.append('div')\n\t\t\t\t.style('display', 'inline-block')\n\t\t\t\t.style('margin', '5px')\n\t\t\t\t.attr('class', 'sja_menuoption')\n\t\t\t\t.attr('data-testid', 'sjpp-custom-active-item-btn')\n\t\t\t\t.html(item.title)\n\t\t\t\t.on('click', async () => {\n\t\t\t\t\t/* First, set the active tab to toggle to the plots tab and wait for the tab to be set,\n\t\t\t\t\totherwise the plotDiv is hidden when rendering and\n\t\t\t\t\tmay cause issues. A known issue is that getMaxLabelWidth getBBox on a hidden div returns width=0\n\t\t\t\t\tthis affects the legend rendering in plots like the scatter resulting in overlapping texts\n\t\t\t\t\t*/\n\t\t\t\t\tawait this.app.dispatch({\n\t\t\t\t\t\ttype: 'tab_set',\n\t\t\t\t\t\tactiveTab: 1\n\t\t\t\t\t})\n\t\t\t\t\t// after switching tab so plot div is shown, dispatch to create the plot\n\t\t\t\t\tthis.app.dispatch({\n\t\t\t\t\t\ttype: 'plot_create',\n\t\t\t\t\t\tid: getId(),\n\t\t\t\t\t\tconfig: structuredClone(item.plot)\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t}\n\t}\n\n\tshowServerInfo = () => {\n\t\tconst state = this.app.getState()\n\t\tconst about = state.termdbConfig.massNav?.tabs?.about\n\t\tif (!about && !this.app.opts.pkgver && !this.app.opts.launchDate) return\n\t\tconst dataRelease = about?.dataRelease\n\t\tconst additionalInfo = about?.additionalInfo\n\t\tconst div = this.subheader\n\t\t\t.append('div')\n\t\t\t.attr('data-testid', 'sjpp-about-server-info')\n\t\t\t.style('margin', '10px')\n\t\t\t.style('font-size', '.8em')\n\n\t\tconst htmlArr: string[] = []\n\t\tif (dataRelease) {\n\t\t\thtmlArr.push(`Data Release: <a href=${dataRelease.link} target=_blank>${dataRelease.version}</a>`)\n\t\t}\n\t\tif (this.app.opts.pkgver) {\n\t\t\thtmlArr.push(\n\t\t\t\t`Software Release: <a href=https://github.com/stjude/proteinpaint/pkgs/container/ppfull target=_blank>${this.app.opts.pkgver}</a>`\n\t\t\t)\n\t\t}\n\t\tif (this.app.opts.launchDate) {\n\t\t\thtmlArr.push(`Server Launched: ${this.app.opts.launchDate}`)\n\t\t}\n\t\tif (additionalInfo) {\n\t\t\thtmlArr.push(additionalInfo)\n\t\t}\n\t\tdiv.append('div').html(htmlArr.join('; '))\n\t}\n}\n\nexport const aboutInit = getCompInit(MassAbout)\n\nfunction joinByComma(arr) {\n\tif (!arr.length) return ''\n\telse if (arr.length == 1) return arr[0]\n\telse if (arr.length == 2) return arr.join(' and ')\n\telse return `${arr.slice(0, -1).join(', ')}, and ${arr.slice(-1)}`\n}\n", "import { getCompInit, type RxComponent } from '#rx'\nimport type { MassAppApi } from './types/mass'\nimport { Menu } from '#dom'\nimport { keyupEnter } from '#src/client'\nimport { dofetch3 } from '#common/dofetch'\nimport type { ChatRequest, ChatResponse } from '#types'\n\nclass MassAiChatBot implements RxComponent {\n\tstatic type = 'chat'\n\n\ttype: string\n\topts: any\n\tapp: MassAppApi\n\tdom!: any\n\tstate: any\n\tid!: string\n\n\tconstructor(opts: any) {\n\t\tthis.type = MassAiChatBot.type\n\t\tthis.opts = opts\n\t\tthis.app = opts.app\n\t}\n\n\tasync init() {\n\t\tthis.initDom()\n\t}\n\n\tinitDom() {\n\t\tthis.dom = {\n\t\t\ttip: new Menu({ padding: '' }),\n\t\t\tdiv: this.opts.subheader,\n\t\t\t// error div on top\n\t\t\terror: this.opts.subheader.append('div').attr('id', 'sjpp-corrVolcano-error').style('opacity', 0.75),\n\t\t\t// div with bubbles to show chat history\n\t\t\tbubbleDiv: this.opts.subheader\n\t\t\t\t.append('div')\n\t\t\t\t.attr('class', 'sjpp_show_scrollbar')\n\t\t\t\t.style('margin', '5px 20px 0px 20px')\n\t\t\t\t.style('height', '200px')\n\t\t\t\t.style('overflow', 'auto')\n\t\t\t\t.style('scroll-behavior', 'smooth')\n\t\t}\n\n\t\tthis.dom.div\n\t\t\t.append('input')\n\t\t\t.style('margin', '15px')\n\t\t\t.style('padding', '17px')\n\t\t\t.style('border-radius', '34px')\n\t\t\t.attr('size', 70)\n\t\t\t.attr('placeholder', 'What are you looking for?')\n\t\t\t.on('keyup', async event => {\n\t\t\t\tif (!keyupEnter(event)) return\n\t\t\t\tconst prompt = event.target.value.trim()\n\t\t\t\tif (!prompt) return // blank\n\t\t\t\tif (prompt.length < 5) return // do not compute on short string\n\t\t\t\tthis.addBubble({ msg: prompt, me: 1 })\n\t\t\t\tconst body: ChatRequest = {\n\t\t\t\t\tgenome: this.app.vocabApi.vocab.genome,\n\t\t\t\t\tdslabel: this.app.vocabApi.vocab.dslabel,\n\t\t\t\t\tfilter: this.app.vocabApi.state.termfilter?.filter,\n\t\t\t\t\tprompt\n\t\t\t\t}\n\t\t\t\tevent.target.value = '' // clear input\n\t\t\t\tconst serverBubble = this.addBubble({ msg: '...' })\n\n\t\t\t\ttry {\n\t\t\t\t\tconst data = await dofetch3('termdb/chat3', { body })\n\t\t\t\t\tif (data.error) throw data.error\n\n\t\t\t\t\tconst result: ChatResponse = data\n\t\t\t\t\tif (result.type == 'text') {\n\t\t\t\t\t\tserverBubble.text(result.text)\n\t\t\t\t\t} else if (result.type == 'html') {\n\t\t\t\t\t\tserverBubble.html(result.html)\n\t\t\t\t\t} else if (result.type == 'plot') {\n\t\t\t\t\t\tthis.app.dispatch({\n\t\t\t\t\t\t\ttype: 'plot_create',\n\t\t\t\t\t\t\tconfig: result.plot\n\t\t\t\t\t\t})\n\t\t\t\t\t\tserverBubble.html('Please refer to the plot generated above')\n\t\t\t\t\t}\n\t\t\t\t\t/** may switch by data.type\n\t\t\t\t\t * type=chat: server returns a chat msg\n\t\t\t\t\t * type=plot: server returns a plot obj */\n\t\t\t\t} catch (e: any) {\n\t\t\t\t\tif (e.stack) console.log(e.stack)\n\t\t\t\t\tserverBubble.html(`Error: ${e.message || e}`)\n\t\t\t\t}\n\t\t\t})\n\t\t\t.node()\n\t\t\t.focus()\n\t}\n\n\taddBubble(arg: { msg: string; me?: number }) {\n\t\t/** {\n msg: add a chat bubble for this msg; msg is html as it might contain hyperlinks\n me: if 1, is me; otherwise is ai\n }\n return the created bubble and allow to be modified\n */\n\t\tconst bubble = this.dom.bubbleDiv\n\t\t\t.append('div')\n\t\t\t.style('padding', '10px')\n\t\t\t.html(`${arg.me ? '<span style=\"font-size:.7em\">[ME]</span> ' : ''}${arg.msg}`)\n\t\tif (arg.me) bubble.style('background', '#f1f1f1')\n\t\t// set this to scroll to bottom\n\t\tconst n = this.dom.bubbleDiv.node()\n\t\tn.scrollTop = n.scrollHeight\n\t\treturn bubble\n\t}\n\n\tmain() {\n\t\t/** Comment because main() is required for RxComponent\n\t\t * but chat does not have any main logic for now. May add in the future.*/\n\t}\n}\n\nexport const chatInit = getCompInit(MassAiChatBot)\n", "import { getCompInit, multiInit } from '#rx'\nimport { recoverInit } from '../rx/src/recover'\nimport { searchInit } from './search'\nimport { chartsInit } from './charts'\nimport { groupsInit } from './groups'\nimport { sessionBtnInit } from './sessionBtn'\nimport { aboutInit } from './about.ts'\nimport { chatInit } from './chat.ts'\nimport { dofetch3 } from '#common/dofetch'\nimport { Menu, icons as icon_functions } from '#dom'\nimport { getFilterItemByTag, filterRxCompInit } from '#filter/filter'\n\n/*\ntodo: steps to add a new tab\n*/\n\nconst activeTabBgColor = '#ececec', // default bg color of active tab; inactive tab is transparent\n\tactiveTabBgColorHover = '#e0e0e0',\n\tactiveTabTextColor = 'black',\n\tinactiveTabBgColorHover = '#fcfced',\n\tinactiveTabTextColor = 'gray'\n\n// to be used for assigning unique\n// radio button names by object instance\n// otherwise termdp app popups\nlet instanceNum = 0\n\n// to distinguish from IDs assigned by other code or users\nconst idPrefix = '_MASS_AUTOID_' + Math.random().toString().slice(-6)\nlet id = (+new Date()).toString().slice(-8)\n\nconst headtip = new Menu({ padding: '0px', offsetX: 0, offsetY: 0 })\nheadtip.d.style('z-index', 5555)\n// headtip must get a crazy high z-index so it can stay on top of all, no matter if server config has base_zindex or not\n\n// data elements for navigation header tabs\nconst aboutTab = { top: 'ABOUT', mid: '', btm: '', subheader: 'about' }\nconst chartTab = { top: 'CHARTS', mid: 'NONE', btm: '', subheader: 'charts' }\nconst groupsTab = { top: 'GROUPS', mid: 'NONE', btm: '', subheader: 'groups' }\nconst filterTab = { top: 'FILTER', mid: 'NONE', btm: '', subheader: 'filter' }\nconst chatTab = { top: 'CHAT', mid: '', btm: '', subheader: 'chat' }\nconst cartTab = { top: 'CART', mid: 'NONE', btm: '', subheader: 'cart' }\n\nexport function getId() {\n\treturn idPrefix + '_' + id++\n}\n\nclass TdbNav {\n\tstatic type = 'nav'\n\n\tconstructor(opts) {\n\t\tthis.type = TdbNav.type\n\t\tthis.instanceNum = instanceNum++\n\t\tthis.tabs = [] // array of tab objects corresponding to what's shown on header, based on ds customization. hidden tabs are not in this array. filled in initUI()\n\t\tthis.activeTab = 0 // array index for .tabs[]; -1 for no active tabs and all closed\n\t\tthis.activeCohort = 0 // -1 = unselected, 0,1,2... = selected\n\t\tthis.samplecounts = {} // tracks sample count by .activeCohort value and stringified filter json\n\t\tthis.searching = false\n\t\tthis.massSessionDuration = opts.massSessionDuration\n\t\tthis.sessionDaysLeft = opts.app.opts.sessionDaysLeft || null\n\t\tthis.sessionId = opts.app.opts.sessionId || null\n\t\tthis.pkgver = opts.pkgver || null //Release version\n\t\tsetInteractivity(this)\n\t\tsetRenderers(this)\n\t}\n\n\tasync init(appState) {\n\t\ttry {\n\t\t\tthis.cohortFilter = getFilterItemByTag(appState.termfilter.filter, 'cohortFilter')\n\t\t\tthis.initUI(appState)\n\t\t\tif (appState?.termdbConfig?.selectCohort) {\n\t\t\t\tthis.dom.tds.filter(d => d.colNum === 0).style('display', '')\n\t\t\t\tthis.cohortNames = appState.termdbConfig.selectCohort.values.map(d => d.keys.slice().sort().join(','))\n\t\t\t}\n\n\t\t\tthis.components = await multiInit({\n\t\t\t\tsearch: searchInit({\n\t\t\t\t\tapp: this.app,\n\t\t\t\t\tholder: this.dom.searchDiv,\n\t\t\t\t\tusecase: { target: 'summary', detail: 'term' },\n\t\t\t\t\ttargetType: 'Dictionary Variables'\n\t\t\t\t}),\n\t\t\t\tfilter: filterRxCompInit({\n\t\t\t\t\tapp: this.app,\n\t\t\t\t\tvocabApi: this.app.vocabApi,\n\t\t\t\t\tholder: this.dom.subheader.filter.append('div').style('margin', '5px'),\n\t\t\t\t\thideLabel: this.opts.header_mode === 'with_tabs',\n\t\t\t\t\temptyLabel: '+Add new filter',\n\t\t\t\t\tcallback: filter => {\n\t\t\t\t\t\tthis.app.dispatch({\n\t\t\t\t\t\t\ttype: 'filter_replace',\n\t\t\t\t\t\t\tfilter\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tcharts: chartsInit({\n\t\t\t\t\tapp: this.app,\n\t\t\t\t\tholder: this.dom.subheader.charts,\n\t\t\t\t\tvocab: this.opts.vocab\n\t\t\t\t}),\n\t\t\t\tgroups: groupsInit({\n\t\t\t\t\tapp: this.app,\n\t\t\t\t\tholder: this.dom.subheader.groups,\n\t\t\t\t\tvocab: this.opts.vocab\n\t\t\t\t}),\n\t\t\t\trecover: recoverInit({\n\t\t\t\t\tapp: this.app,\n\t\t\t\t\tholder: this.dom.recoverDiv,\n\t\t\t\t\t// TODO: ???? may limit the tracked state to only the filter, activeCohort ???\n\t\t\t\t\tgetState: appState => appState,\n\t\t\t\t\treactsTo: action => action.type != 'plot_edit',\n\t\t\t\t\tmaxHistoryLen: 5\n\t\t\t\t}),\n\t\t\t\tsessionBtn: sessionBtnInit({\n\t\t\t\t\tapp: this.app,\n\t\t\t\t\tbutton: this.dom.saveBtn,\n\t\t\t\t\tmassSessionDuration: this.opts.massSessionDuration,\n\t\t\t\t\tsessionDaysLeft: this.app.opts.sessionDaysLeft || null\n\t\t\t\t}),\n\t\t\t\tabout: aboutInit({\n\t\t\t\t\tapp: this.app,\n\t\t\t\t\tsubheader: this.dom.subheader.about,\n\t\t\t\t\tinstanceNum: this.instanceNum,\n\t\t\t\t\taboutOverrides: appState?.termdbConfig?.massNav?.tabs?.about || null,\n\t\t\t\t\tselectCohort: appState?.termdbConfig?.selectCohort || null\n\t\t\t\t}),\n\t\t\t\tchat: chatInit({\n\t\t\t\t\tapp: this.app,\n\t\t\t\t\tsubheader: this.dom.subheader.chat\n\t\t\t\t})\n\t\t\t})\n\t\t\tthis.mayShowMessage_sessionDaysLeft()\n\t\t} catch (e) {\n\t\t\tthrow e\n\t\t}\n\t}\n\n\treactsTo(action) {\n\t\tif (action.type.includes('cache_termq')) return true\n\t\tif (action.type.startsWith('filter')) return true\n\t\tif (action.type.startsWith('cohort')) return true\n\t\tif (action.type.startsWith('tab')) return true\n\n\t\t// do not use startsWith('plot_') to exclude 'plot_edit' as no need for nav to react to that\n\t\tif (action.type == 'plot_prep') return true\n\t\tif (action.type == 'plot_create') return true\n\t\tif (action.type == 'plot_delete') return true\n\n\t\tif (action.type == 'app_refresh') return true\n\t\tif (action.type.endsWith('_customTerm')) return true\n\t\tif (action.type.endsWith('_group')) return true\n\t}\n\n\tgetState(appState) {\n\t\treturn {\n\t\t\tsearching: this.searching, // for detection of internal state change\n\t\t\tnav: appState.nav,\n\t\t\tactiveCohort: appState.activeCohort,\n\t\t\ttermdbConfig: appState.termdbConfig,\n\t\t\tfilter: appState.termfilter.filter,\n\t\t\tplots: appState.plots,\n\t\t\tgroups: appState.groups\n\t\t}\n\t}\n\n\tasync main() {\n\t\tthis.dom.tabDiv.style('display', this.state.nav.header_mode === 'with_tabs' ? 'inline-block' : 'none')\n\t\tthis.dom.tip.hide()\n\t\tthis.activeTab = this.state.nav.activeTab\n\t\tthis.prevCohort = this.activeCohort\n\t\tthis.activeCohort = +this.state.activeCohort\n\t\tthis.filterUiRoot = getFilterItemByTag(this.state.filter, 'filterUiRoot')\n\t\tthis.cohortFilter = getFilterItemByTag(this.state.filter, 'cohortFilter')\n\t\tif (this.cohortNames) {\n\t\t\tthis.activeCohortName = this.cohortNames[this.activeCohort]\n\t\t\tif (this.activeCohort !== -1)\n\t\t\t\tthis.activeCohortLabel = this.state.termdbConfig.selectCohort.values[this.activeCohort].shortLabel\n\t\t}\n\t\tthis.filterJSON = JSON.stringify(this.state.filter)\n\n\t\tthis.cohortsData = await this.app.vocabApi.getCohortsData()\n\n\t\tif (this.state.nav.header_mode === 'with_tabs') {\n\t\t\tif (!(this.activeCohort in this.samplecounts)) {\n\t\t\t\tthis.samplecounts[this.activeCohort] = await this.app.vocabApi.getCohortSampleCount(this.activeCohortName)\n\t\t\t}\n\t\t\tif (!(this.filterJSON in this.samplecounts)) {\n\t\t\t\tif (!this.filterUiRoot || !this.filterUiRoot.lst.length) {\n\t\t\t\t\tthis.samplecounts[this.filterJSON] = this.samplecounts[this.activeCohort]\n\t\t\t\t} else {\n\t\t\t\t\tconst n = await this.app.vocabApi.getFilteredSampleCount(this.filterJSON)\n\t\t\t\t\tthis.samplecounts[this.filterJSON] = n\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.updateUI()\n\t}\n}\n\nexport const navInit = getCompInit(TdbNav)\n\nfunction setRenderers(self) {\n\tself.initUI = appState => {\n\t\tconst verifiedToken = self.app.vocabApi.verifiedToken\n\t\tconst invalidTokenErrorHandling = appState.termdbConfig.invalidTokenErrorHandling\n\t\t//Show error message if login failed and all charts require login. If the dataset does not require login verifiedToken is true\n\t\t//Currently only the profile and carereg always require a token.\n\t\t// Note that if the user did not login the public token was used. So only if the user did login and the token passed was invalid this error is shown\n\t\tif (!verifiedToken && invalidTokenErrorHandling?.affectedCharts?.includes('*'))\n\t\t\tthrow new Error(appState.termdbConfig.invalidTokenErrorHandling.errorMessage)\n\t\tconst header = self.opts.holder.append('div').style('white-space', 'nowrap')\n\t\tconst massNav = appState.termdbConfig?.massNav || {}\n\t\tlet titleDiv = header\n\t\t\t.append('div')\n\t\t\t.style('display', 'inline-block')\n\t\t\t.style('float', 'right')\n\t\t\t.style('font-size', '1.1em')\n\t\t\t.style('margin', '50px 10px 0 0')\n\t\t\t.text(massNav?.title?.text) //this line will be executed in update UI to reflect cohort changes\n\n\t\tconst tabDiv = header.append('div').style('display', 'none').style('vertical-align', 'bottom')\n\t\tconst controlsDiv = header\n\t\t\t//Fix for adding message underneath the search bar and buttons\n\t\t\t.append('div')\n\t\t\t.style('vertical-align', 'top')\n\t\t\t.style('margin', '10px')\n\t\t\t.style('display', 'inline-block')\n\t\t\t.style('float', 'right')\n\n\t\tif (self.opts.header_mode === 'only_buttons') {\n\t\t\t// if header_mode is only_buttons, show only buttons\n\t\t\ttabDiv.style('display', 'none')\n\t\t\ttitleDiv.style('display', 'none')\n\t\t\tcontrolsDiv.style('display', 'none')\n\t\t}\n\t\tself.opts.holder.attr('class', 'sjpp-nav')\n\t\tself.dom = {\n\t\t\tholder: self.opts.holder,\n\t\t\theader,\n\t\t\ttabDiv,\n\t\t\tcontrolsDiv,\n\t\t\tsearchDiv: controlsDiv.append('div').style('margin', '10px'),\n\t\t\tsessionDiv: controlsDiv.append('div').style('display', 'inline-block'),\n\t\t\trecoverDiv: controlsDiv.append('div').style('display', 'inline-block'),\n\t\t\tpdfDiv: controlsDiv\n\t\t\t\t.append('div')\n\t\t\t\t.style('display', 'inline-block')\n\t\t\t\t.style('padding', '4px')\n\t\t\t\t.style('vertical-align', 'middle'),\n\t\t\tdeleteAllDiv: controlsDiv\n\t\t\t\t.append('div')\n\t\t\t\t.style('display', 'inline-block')\n\t\t\t\t.style('padding', '4px')\n\t\t\t\t.style('vertical-align', 'middle'),\n\n\t\t\thelpDiv: controlsDiv.append('div').style('display', 'none'),\n\t\t\tsessionElapsedMessageDiv: controlsDiv.append('div').style('display', 'none'),\n\t\t\tsubheaderDiv: self.opts.holder.append('div').style('display', 'block').style('border-bottom', '1px solid #000'),\n\t\t\tmessageDiv: self.opts.holder.append('div').style('margin', '30px').style('display', 'none'),\n\t\t\ttitleDiv,\n\t\t\ttip: new Menu({ padding: '5px' })\n\t\t}\n\t\ticon_functions['trash'](self.dom.deleteAllDiv, {\n\t\t\thandler: self.deletePlots,\n\t\t\ttitle: 'Delete all plots. To revert, click Undo button'\n\t\t})\n\n\t\ticon_functions['pdf'](self.dom.pdfDiv, {\n\t\t\thandler: self.opts.downloadPlots,\n\t\t\ttitle: 'Generate a PDF of all the plots opened'\n\t\t})\n\n\t\tif (self.opts.header_mode === 'with_cohortHtmlSelect') {\n\t\t\t// not part of filter div\n\t\t\tself.dom.cohortStandaloneDiv = header\n\t\t\t\t.append('div')\n\t\t\t\t.style('display', 'inline-block')\n\t\t\t\t.style('margin', '10px')\n\t\t\t\t.style('vertical-align', 'top')\n\n\t\t\tself.dom.cohortStandaloneDiv.append('label').html('Cohort: ')\n\t\t\tself.dom.cohortSelect = self.dom.cohortStandaloneDiv.append('select').on('change', async function () {\n\t\t\t\tself.app.dispatch({ type: 'cohort_set', activeCohort: +this.value })\n\t\t\t})\n\n\t\t\tself.dom.cohortSelect\n\t\t\t\t.selectAll('option')\n\t\t\t\t.data(appState.termdbConfig.selectCohort.values)\n\t\t\t\t.enter()\n\t\t\t\t.append('option')\n\t\t\t\t.attr('value', (d, i) => i)\n\t\t\t\t.property('selected', (d, i) => i === appState.activeCohort)\n\t\t\t\t.html(d => d.shortLabel)\n\t\t}\n\n\t\tself.dom.subheader = Object.freeze({\n\t\t\t// For either the COHORT or ABOUT tab\n\t\t\tabout: self.dom.subheaderDiv\n\t\t\t\t.append('div')\n\t\t\t\t.attr('data-testid', 'sjpp-mass-nav-subheader-about')\n\t\t\t\t.style('display', 'none'),\n\t\t\tsearch: self.dom.subheaderDiv\n\t\t\t\t.append('div')\n\t\t\t\t.attr('data-testid', 'sjpp-mass-nav-subheader-search')\n\t\t\t\t.style('display', 'none'),\n\t\t\tgroups: self.dom.subheaderDiv\n\t\t\t\t.append('div')\n\t\t\t\t.attr('data-testid', 'sjpp-mass-nav-subheader-groups')\n\t\t\t\t.style('display', 'none'),\n\t\t\tcharts: self.dom.subheaderDiv\n\t\t\t\t.append('div')\n\t\t\t\t.attr('data-testid', 'sjpp-mass-nav-subheader-charts')\n\t\t\t\t.style('display', 'none'),\n\t\t\tfilter: self.dom.subheaderDiv\n\t\t\t\t.append('div')\n\t\t\t\t.attr('data-testid', 'sjpp-mass-nav-subheader-filter')\n\t\t\t\t.style('display', 'none'),\n\t\t\tchat: self.dom.subheaderDiv\n\t\t\t\t.append('div')\n\t\t\t\t.attr('data-testid', 'sjpp-mass-nav-subheader-chat')\n\t\t\t\t.style('display', 'none')\n\t\t\t// cart: self.dom.subheaderDiv.append('div').style('display', 'none').html('<br/>Cart feature under construction - work in progress<br/>&nbsp;<br/>'),\n\t\t})\n\n\t\tif (!massNav.tabs?.about?.hide) {\n\t\t\t// about tab is not hidden\n\t\t\tself.tabs.push(aboutTab)\n\t\t\t// about tab contents are conditionally determined by 1) override 2) ds using or not using cohort.\n\t\t\t// furbish an override object with default properties based on conditions if those properties are missing\n\t\t\tconst override = Object.assign({}, massNav.tabs?.about)\n\t\t\tif (appState.termdbConfig?.selectCohort) {\n\t\t\t\t// ds has cohort selection and no customization to about tab\n\t\t\t\tif (!override.top) override.top = 'COHORT'\n\t\t\t\t// do not assign \"mid\" here as it will be dynamically assigned with active cohort name\n\t\t\t} else {\n\t\t\t\t// ds doesn't use cohort selection. if mid is missing, use dslabel\n\t\t\t\tif (!override.mid) override.mid = self.pickDatasetLabel(appState)\n\t\t\t}\n\t\t\tObject.assign(aboutTab, override) // apply ds customizations\n\t\t}\n\t\tif (!massNav.tabs?.charts?.hide) {\n\t\t\t// charts tab is not hidden\n\t\t\tself.tabs.push(chartTab)\n\t\t\tObject.assign(chartTab, massNav.tabs?.charts)\n\t\t}\n\t\tif (!massNav.tabs?.groups?.hide) {\n\t\t\t// group tab is not hidden\n\t\t\tself.tabs.push(groupsTab)\n\t\t\tObject.assign(groupsTab, massNav.tabs?.groups)\n\t\t}\n\t\tif (!massNav.tabs?.filter?.hide) {\n\t\t\t// filter tab is not hidden\n\t\t\tself.tabs.push(filterTab)\n\t\t\tObject.assign(filterTab, massNav.tabs?.filter)\n\t\t}\n\t\t/** For now, limit to only datasets with chat enabled.\n\t\t * In the future, may show search instead of chat but use\n\t\t * the same component. */\n\t\tif (appState.termdbConfig?.queries?.chat && !massNav.tabs?.chat?.hide) {\n\t\t\tself.tabs.push(chatTab)\n\t\t\tObject.assign(chatTab, massNav.tabs?.chat)\n\t\t}\n\n\t\tconst table = self.dom.tabDiv\n\t\t\t.append('table')\n\t\t\t.attr('data-testid', 'sjpp-nav-tabs-table')\n\t\t\t.style('border-collapse', 'collapse')\n\n\t\t// using a table layout for tabs, iterate through each tab\n\t\t// once for each of [top, mid, btm] row\n\t\ttable\n\t\t\t.selectAll('tr')\n\t\t\t.data(['top', 'mid', 'btm'])\n\t\t\t.enter()\n\t\t\t.append('tr')\n\t\t\t.attr('class', (d, i) => `sjpp-nav-tabs-row-${i}`)\n\t\t\t.style('font-size', (d, i) => (i == 1 ? '20px' : '12px'))\n\t\t\t.selectAll('td')\n\t\t\t.data((key, i) =>\n\t\t\t\tself.tabs.map((row, colNum) => {\n\t\t\t\t\treturn { rowNum: i, key, colNum, label: row[key], subheader: row.subheader }\n\t\t\t\t})\n\t\t\t)\n\t\t\t.enter()\n\t\t\t.append('td')\n\t\t\t.attr('class', d => `sjpp-nav-tab-col-${d.colNum}`)\n\t\t\t// hide the about (e.g. cohort tab) until there is termdbConfig.selectCohort or termdbCongfig.massNav.tabs.about\n\t\t\t.style('display', 'none') // d => (d.colNum === 0 || self.activeCohort !== -1 ? '' : 'none'))\n\t\t\t.style('width', '100px')\n\t\t\t.style('padding', d => (d.rowNum === 0 ? '12px 12px 3px 12px' : '3px 12px'))\n\t\t\t.style('text-align', 'center')\n\t\t\t.style('border-left', '1px solid #ccc')\n\t\t\t.style('border-right', '1px solid #ccc')\n\t\t\t.style('color', '#aaa')\n\t\t\t.style('cursor', 'pointer')\n\t\t\t.html(d => d.label)\n\t\t\t.on('click', (event, d) => {\n\t\t\t\tself.setTab(event, d)\n\t\t\t})\n\t\t\t.on('mouseover', (event, d) => {\n\t\t\t\tself.mouseover(event, d)\n\t\t\t})\n\t\t\t.on('mouseout', () => {\n\t\t\t\tself.mouseout()\n\t\t\t})\n\n\t\tself.dom.trs = table.selectAll('tr')\n\t\tself.dom.tds = table.selectAll('td')\n\t\tself.subheaderKeys = self.tabs.map(d => d.subheader)\n\n\t\tself.dom.saveBtn = self.dom.sessionDiv\n\t\t\t.append('button')\n\t\t\t.attr('data-testid', 'sjpp-nav-session-btn')\n\t\t\t.style('margin', '10px')\n\t\t\t.text('Session \u25BC')\n\n\t\t//.on('click', self.getSessionUrl)\n\n\t\tif (self.sessionDaysLeft != null) {\n\t\t\t//Only show if called from `mass-session-id` URL\n\t\t\tself.dom.fileBtn = self.dom.sessionDiv\n\t\t\t\t.append('button')\n\t\t\t\t.attr('data-testid', 'sjpp-nav-file-btn')\n\t\t\t\t.style('margin', '10px')\n\t\t\t\t.text('Export Session')\n\t\t\t\t.on('click', event => {\n\t\t\t\t\tself.getSessionFile(event)\n\t\t\t\t})\n\t\t}\n\t}\n\n\tself.deletePlots = () => {\n\t\tconst state = self.app.getState()\n\t\tconst subactions = []\n\t\tfor (const plot of state.plots) subactions.push({ type: 'plot_delete', id: plot.id })\n\n\t\tself.app.dispatch({ type: 'app_refresh', subactions })\n\t}\n\n\tself.mayShowMessage_sessionDaysLeft = () => {\n\t\tif (!Number.isFinite(self.sessionDaysLeft)) {\n\t\t\t// info not available, do not show msg\n\t\t\treturn\n\t\t}\n\t\tself.dom.sessionElapsedMessageDiv.style('display', 'block')\n\t\tself.dom.remainingDaysMessage = self.dom.sessionElapsedMessageDiv\n\t\t\t.append('div')\n\t\t\t.style('display', 'block')\n\t\t\t.style('opacity', '0.65')\n\t\t\t.html(\n\t\t\t\t`<u>${self.sessionDaysLeft} days</u> left until this session is removed. Click the \"Session \u25BC\" button and select \"Save\" option to create a new one.`\n\t\t\t)\n\t}\n\n\tself.updateUI = async () => {\n\t\tif (!self.dom.subheaderDiv) return\n\t\tif (self.activeTab && self.state.termdbConfig.selectCohort && self.activeCohort == -1) {\n\t\t\t// showing charts or filter tab; cohort selection is enabled but no cohort is selected\n\t\t\tself.dom.subheaderDiv.style('display', 'none')\n\t\t\tself.dom.messageDiv.selectAll('text').remove()\n\t\t\tself.dom.messageDiv.style('display', '').text('No cohort selected. Please select a cohort in the \"COHORT\" tab.')\n\t\t} else {\n\t\t\tif (self.dom.subheaderDiv) self.dom.subheaderDiv.style('display', self.activeTab != -1 ? 'block' : 'none')\n\t\t\tif (self.dom.messageDiv) self.dom.messageDiv.style('display', 'none')\n\t\t}\n\t\tconst selectCohort = self.state.termdbConfig.selectCohort\n\t\tconst massNav = self.state.termdbConfig.massNav\n\t\tself.dom.searchDiv.style('display', selectCohort && self.activeCohort == -1 ? 'none' : 'inline-block')\n\t\t//self.dom.holder.style('margin-bottom', self.state.nav.header_mode === 'with_tabs' ? '20px' : '')//To be checked why it was needed\n\t\tself.dom.header.style('border-bottom', self.state.nav.header_mode === 'with_tabs' ? '1px solid #000' : '')\n\t\tself.dom.tds\n\t\t\t.style('display', '')\n\t\t\t//Only show black text when the tab is active and the subheader is displayed\n\t\t\t.style('color', d => (d.colNum == self.activeTab ? activeTabTextColor : inactiveTabTextColor))\n\t\t\t.style('background-color', d =>\n\t\t\t\td.colNum == self.activeTab && self.dom.subheaderDiv.style('display') != 'none'\n\t\t\t\t\t? self.state.termdbConfig.massNav?.activeColor || activeTabBgColor\n\t\t\t\t\t: 'transparent'\n\t\t\t)\n\t\t\t.html(function (d, i) {\n\t\t\t\tif (d.key == 'top') return this.innerHTML\n\n\t\t\t\tif (d.subheader == 'groups') {\n\t\t\t\t\tif (d.key == 'mid') return self.state.groups.length || 'NONE'\n\t\t\t\t\treturn ''\n\t\t\t\t}\n\n\t\t\t\tif (d.subheader === 'charts') {\n\t\t\t\t\t// only a plot in it's own sandbox will be counted; do not separately count child plots in the same sandbox\n\t\t\t\t\tconst n = self.state.plots.filter(p => !p.parentId).length\n\t\t\t\t\tif (d.key == 'mid') return !n ? 'NONE' : n\n\t\t\t\t\telse return ''\n\t\t\t\t} else if (d.subheader === 'about') {\n\t\t\t\t\tif (self.activeCohort != -1 && self.activeCohort in self.samplecounts) {\n\t\t\t\t\t\tconst aboutMap = {\n\t\t\t\t\t\t\ttop: this.innerHTML,\n\t\t\t\t\t\t\tmid: self.activeCohortLabel,\n\t\t\t\t\t\t\tbtm: self.samplecounts[self.activeCohort]\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn aboutMap[d.key] || ''\n\t\t\t\t\t} else if (!selectCohort) {\n\t\t\t\t\t\tconst aboutMap = {\n\t\t\t\t\t\t\ttop: massNav?.tabs?.about?.top || 'ABOUT',\n\t\t\t\t\t\t\tmid: massNav?.tabs?.about?.mid || this.innerHTML,\n\t\t\t\t\t\t\tbtm: massNav?.tabs?.about?.btm || self.samplecounts[self.activeCohort]\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn aboutMap[d.key] || ''\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn d.key === 'mid' ? 'NONE' : this.innerHTML\n\t\t\t\t\t}\n\t\t\t\t} else if (d.subheader === 'filter') {\n\t\t\t\t\tconst filter = self.filterUiRoot ? self.filterUiRoot : { lst: [] }\n\t\t\t\t\tif (filter.lst.length === 0) {\n\t\t\t\t\t\t// Do not show number of samples at bottom of FILTER tab when no filter applied\n\t\t\t\t\t\treturn d.key === 'mid' ? 'NONE' : ''\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst n = self.samplecounts[self.filterJSON] != undefined ? '' + self.samplecounts[self.filterJSON] : ''\n\t\t\t\t\t\treturn d.key === 'mid' ? filter.lst.length : n\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn d.key === 'mid' ? this.innerHTML : '&nbsp;'\n\t\t\t\t}\n\t\t\t})\n\n\t\t// const visibleSubheaders = []\n\t\tfor (const key in self.dom.subheader) {\n\t\t\tself.dom.subheader[key].style(\n\t\t\t\t'display',\n\t\t\t\tself.activeTab == -1 ? 'none' : self.tabs[self.activeTab].subheader === key ? 'block' : 'none'\n\t\t\t)\n\t\t}\n\n\t\tif (self.opts.header_mode === 'with_cohortHtmlSelect') {\n\t\t\tself.dom.cohortSelect.selectAll('option').property('value', self.activeCohort)\n\t\t}\n\t}\n}\n\nfunction setInteractivity(self) {\n\tself.setTab = async (event, d) => {\n\t\t//Reset the activeTab to the current tab if no tab is selected\n\t\tif (self.activeTab == -1) self.activeTab == d.colNum\n\t\tif (d.colNum === self.activeTab && !self.searching) {\n\t\t\t// The about tab should not be hidden on double click with or without plots\n\t\t\tif (self.activeTab == 0) return\n\t\t\tself.prevCohort = self.activeCohort\n\t\t\tawait self.updateUI()\n\n\t\t\t// if the user double-clicks on the same tab, hide the subheader\n\t\t\tself.app.dispatch({ type: 'tab_set', activeTab: -1 })\n\t\t\treturn\n\t\t}\n\t\tself.activeTab = d.colNum\n\t\tself.searching = false\n\t\tself.app.dispatch({ type: 'tab_set', activeTab: self.activeTab })\n\t\tconst chartsIdx = self.subheaderKeys.indexOf('charts')\n\t\tif (self.activeTab == chartsIdx && self.activeCohort != -1 && !self.state.plots.length) {\n\t\t\t// show dictionary or default plot in charts tab if no other\n\t\t\t// plots have been created\n\t\t\tconst defaultChartType = self.state.termdbConfig.defaultChartType || 'dictionary'\n\t\t\tself.app.dispatch({\n\t\t\t\ttype: 'plot_create',\n\t\t\t\tid: getId(),\n\t\t\t\tconfig: { chartType: defaultChartType }\n\t\t\t})\n\t\t}\n\t}\n\n\tself.mouseover = (event, d) => {\n\t\tconst defaultActiveColor = self.state.termdbConfig.massNav?.activeColor || activeTabBgColor\n\t\tself.dom.tds.style('background-color', t => {\n\t\t\t//light yellow for inactive tabs and grey-yellow for this active tab\n\t\t\tif (t.colNum === d.colNum)\n\t\t\t\treturn self.activeTab == t.colNum\n\t\t\t\t\t? self.state.termdbConfig.massNav?.activeColorHover || activeTabBgColorHover\n\t\t\t\t\t: inactiveTabBgColorHover\n\t\t\treturn self.activeTab == t.colNum ? defaultActiveColor : 'transparent'\n\t\t})\n\t}\n\n\tself.mouseout = () => {\n\t\tconst defaultActiveColor = self.state.termdbConfig.massNav?.activeColor || activeTabBgColor\n\t\tself.dom.tds.style('background-color', t => (self.activeTab == t.colNum ? defaultActiveColor : 'transparent'))\n\t}\n\n\tself.getSessionFile = async event => {\n\t\t//Download mass-session-id file\n\t\tconst res = await dofetch3(`/massSession?id=${self.sessionId}`)\n\t\tconst a = document.createElement('a')\n\t\tconst dataStr = 'data:application/json;charset=utf-8,' + encodeURIComponent(JSON.stringify(res.state))\n\t\ta.setAttribute('href', dataStr)\n\t\ta.download = `${self.sessionId}.json`\n\t\ta.click()\n\t\ta.remove()\n\t}\n\n\tself.pickDatasetLabel = appState => {\n\t\tconst dslabel = appState.vocab.dslabel.toUpperCase()\n\t\treturn dslabel.length > 10 ? `${dslabel.slice(0, 10)}...` : dslabel\n\t}\n}\n"],
5
- "mappings": "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",
6
- "names": ["event", "id", "d", "instanceNum", "event", "d", "cf", "event", "prompt", "setInteractivity", "setRenderers", "appState", "event"]
7
- }
@@ -1,264 +0,0 @@
1
- import {
2
- TermTypeGroups,
3
- dtTerms,
4
- dtdnamethylation,
5
- dtgeneexpression,
6
- dtmetaboliteintensity,
7
- dtproteomeabundance,
8
- dtssgsea
9
- } from "./chunk-AMYSEKPF.js";
10
-
11
- // ../shared/utils/src/terms.js
12
- var ROOT_SAMPLE_TYPE = 1;
13
- var DEFAULT_SAMPLE_TYPE = 2;
14
- var NumericModes = {
15
- continuous: "continuous",
16
- discrete: "discrete"
17
- };
18
- var CATEGORICAL = "categorical";
19
- var CONDITION = "condition";
20
- var DATE = "date";
21
- var DNA_METHYLATION = "dnaMethylation";
22
- var FLOAT = "float";
23
- var GENE_VARIANT = "geneVariant";
24
- var GENE_EXPRESSION = "geneExpression";
25
- var ISOFORM_EXPRESSION = "isoformExpression";
26
- var INTEGER = "integer";
27
- var METABOLITE_INTENSITY = "metaboliteIntensity";
28
- var MULTIVALUE = "multivalue";
29
- var SAMPLELST = "samplelst";
30
- var SINGLECELL_CELLTYPE = "singleCellCellType";
31
- var SINGLECELL_GENE_EXPRESSION = "singleCellGeneExpression";
32
- var SNP = "snp";
33
- var SNP_LIST = "snplst";
34
- var SNP_LOCUS = "snplocus";
35
- var SSGSEA = "ssGSEA";
36
- var SURVIVAL = "survival";
37
- var TERM_COLLECTION = "termCollection";
38
- var PROTEOME_ABUNDANCE = "proteomeAbundance";
39
- var TermTypes = {
40
- GENE_VARIANT,
41
- GENE_EXPRESSION,
42
- ISOFORM_EXPRESSION,
43
- SSGSEA,
44
- DNA_METHYLATION,
45
- CATEGORICAL,
46
- INTEGER,
47
- FLOAT,
48
- SNP,
49
- SNP_LIST,
50
- SNP_LOCUS,
51
- CONDITION,
52
- SURVIVAL,
53
- SAMPLELST,
54
- METABOLITE_INTENSITY,
55
- PROTEOME_ABUNDANCE,
56
- SINGLECELL_CELLTYPE,
57
- SINGLECELL_GENE_EXPRESSION,
58
- MULTIVALUE,
59
- DATE,
60
- TERM_COLLECTION
61
- };
62
- var dtTermTypes = new Set(dtTerms.map((t) => t.type));
63
- for (const dtTermType of dtTermTypes) {
64
- TermTypes[dtTermType.toUpperCase()] = dtTermType;
65
- }
66
- var NUMERIC_DICTIONARY_TERM = "numericDictTerm";
67
- var TermTypes2Dt = {
68
- [GENE_EXPRESSION]: dtgeneexpression,
69
- [SSGSEA]: dtssgsea,
70
- [DNA_METHYLATION]: dtdnamethylation,
71
- [METABOLITE_INTENSITY]: dtmetaboliteintensity,
72
- [PROTEOME_ABUNDANCE]: dtproteomeabundance
73
- };
74
- var typeGroup = {
75
- [CATEGORICAL]: TermTypeGroups.DICTIONARY_VARIABLES,
76
- [CONDITION]: TermTypeGroups.DICTIONARY_VARIABLES,
77
- [FLOAT]: TermTypeGroups.DICTIONARY_VARIABLES,
78
- [INTEGER]: TermTypeGroups.DICTIONARY_VARIABLES,
79
- [SAMPLELST]: TermTypeGroups.DICTIONARY_VARIABLES,
80
- [SURVIVAL]: TermTypeGroups.DICTIONARY_VARIABLES,
81
- [DATE]: TermTypeGroups.DICTIONARY_VARIABLES,
82
- [MULTIVALUE]: TermTypeGroups.DICTIONARY_VARIABLES,
83
- [GENE_VARIANT]: TermTypeGroups.MUTATION_CNV_FUSION,
84
- [SNP]: TermTypeGroups.SNP,
85
- [SNP_LIST]: TermTypeGroups.SNP_LIST,
86
- [SNP_LOCUS]: TermTypeGroups.SNP_LOCUS,
87
- [GENE_EXPRESSION]: TermTypeGroups.GENE_EXPRESSION,
88
- [ISOFORM_EXPRESSION]: TermTypeGroups.ISOFORM_EXPRESSION,
89
- [SSGSEA]: TermTypeGroups.SSGSEA,
90
- [DNA_METHYLATION]: TermTypeGroups.DNA_METHYLATION,
91
- [METABOLITE_INTENSITY]: TermTypeGroups.METABOLITE_INTENSITY,
92
- [PROTEOME_ABUNDANCE]: TermTypeGroups.PROTEOME_ABUNDANCE,
93
- [TERM_COLLECTION]: TermTypeGroups.TERM_COLLECTION,
94
- [SINGLECELL_CELLTYPE]: TermTypeGroups.SINGLECELL_CELLTYPE,
95
- [SINGLECELL_GENE_EXPRESSION]: TermTypeGroups.SINGLECELL_GENE_EXPRESSION
96
- };
97
- var nonDictTypes = /* @__PURE__ */ new Set([
98
- SNP,
99
- SNP_LIST,
100
- SNP_LOCUS,
101
- GENE_EXPRESSION,
102
- ISOFORM_EXPRESSION,
103
- SSGSEA,
104
- DNA_METHYLATION,
105
- GENE_VARIANT,
106
- METABOLITE_INTENSITY,
107
- PROTEOME_ABUNDANCE,
108
- SINGLECELL_CELLTYPE,
109
- SINGLECELL_GENE_EXPRESSION
110
- ]);
111
- for (const dtTermType of dtTermTypes) {
112
- nonDictTypes.add(TermTypes[dtTermType.toUpperCase()]);
113
- }
114
- var numericTypes = /* @__PURE__ */ new Set([
115
- INTEGER,
116
- FLOAT,
117
- GENE_EXPRESSION,
118
- ISOFORM_EXPRESSION,
119
- SSGSEA,
120
- DNA_METHYLATION,
121
- METABOLITE_INTENSITY,
122
- PROTEOME_ABUNDANCE,
123
- SINGLECELL_GENE_EXPRESSION,
124
- DATE
125
- ]);
126
- var categoricalTypes = /* @__PURE__ */ new Set([CATEGORICAL, SNP]);
127
- var singleCellTerms = /* @__PURE__ */ new Set([
128
- SINGLECELL_CELLTYPE,
129
- SINGLECELL_GENE_EXPRESSION
130
- ]);
131
- function isSingleCellTerm(term) {
132
- if (!term) return false;
133
- return singleCellTerms.has(term.type);
134
- }
135
- function isNumericTerm(term) {
136
- if (!term) return false;
137
- return numericTypes.has(term.type);
138
- }
139
- function isCategoricalTerm(term) {
140
- if (!term) return false;
141
- return categoricalTypes.has(term.type);
142
- }
143
- function isDictionaryType(type) {
144
- return !isNonDictionaryType(type);
145
- }
146
- function isNonDictionaryType(type) {
147
- if (!type) throw new Error("Type is not defined");
148
- return nonDictTypes.has(type);
149
- }
150
- function isNumTermCollection(term) {
151
- if (!term || !term.type) throw new Error("Term or term type is not defined");
152
- return term.type === TERM_COLLECTION;
153
- }
154
- function equals(t1, t2) {
155
- if (!t1) throw new Error("First term is not defined ");
156
- if (!t2) throw new Error("Second term is not defined ");
157
- if (t1.type !== t2.type) return false;
158
- if (isDictionaryType(t1.type) && isDictionaryType(t2.type) && t1.type != SAMPLELST)
159
- return t1.id === t2.id;
160
- switch (t1.type) {
161
- case GENE_EXPRESSION:
162
- return t1.gene == t2.gene;
163
- case ISOFORM_EXPRESSION:
164
- return t1.isoform == t2.isoform;
165
- case SSGSEA:
166
- return t1.id == t2.id;
167
- case DNA_METHYLATION:
168
- return t1.chr == t2.chr && t1.start == t2.start && t1.stop == t2.stop;
169
- case METABOLITE_INTENSITY:
170
- case PROTEOME_ABUNDANCE:
171
- return t1.name == t2.name;
172
- case GENE_VARIANT:
173
- return t1.gene == t2.gene || t1.chr == t2.chr && t1.start == t2.start && t1.stop == t2.stop;
174
- // TO DO: Add more cases
175
- // case SNP_LIST:
176
- // case SNP_LOCUS:
177
- // case SAMPLELST:
178
- default:
179
- return false;
180
- }
181
- }
182
- var typeMap = {
183
- categorical: "Categorical",
184
- condition: "Condition",
185
- float: "Numerical",
186
- integer: "Numerical",
187
- geneExpression: "Gene Expression",
188
- isoformExpression: "Isoform Expression",
189
- ssGSEA: "Geneset Expression",
190
- dnaMethylation: "DNA Methylation",
191
- geneVariant: "Gene Variant",
192
- metaboliteIntensity: "Metabolite Intensity",
193
- proteomeAbundance: "Proteome Abundance",
194
- multivalue: "Multi Value",
195
- singleCellGeneExpression: "Single Cell, Gene Expression",
196
- singleCellCellType: "Single Cell, Cell Type",
197
- snplocus: "SNP Locus",
198
- snp: "SNP",
199
- snplst: "SNP List",
200
- numericDictTerm: "Numeric Dictionary Term",
201
- termCollection: "Term Collection"
202
- };
203
- function termType2label(type) {
204
- return typeMap[type] || "Unknown term type";
205
- }
206
- function getDateFromNumber(value) {
207
- const year = Math.floor(value);
208
- const january1st = new Date(year, 0, 1);
209
- const totalDays = getDaysInYear(year);
210
- const time = Math.round((value - year) * totalDays) * oneDayTime;
211
- const date = new Date(january1st.getTime() + time);
212
- return date;
213
- }
214
- var oneDayTime = 24 * 60 * 60 * 1e3;
215
- function getDateStrFromNumber(value) {
216
- const date = getDateFromNumber(value);
217
- return date.toLocaleDateString("en-US", {
218
- year: "numeric",
219
- month: "long"
220
- });
221
- }
222
- function getDaysInYear(year) {
223
- const isLeap = new Date(year, 1, 29).getMonth() === 1;
224
- const days = isLeap ? 366 : 365;
225
- return days;
226
- }
227
-
228
- export {
229
- ROOT_SAMPLE_TYPE,
230
- DEFAULT_SAMPLE_TYPE,
231
- NumericModes,
232
- CATEGORICAL,
233
- DATE,
234
- DNA_METHYLATION,
235
- FLOAT,
236
- GENE_VARIANT,
237
- GENE_EXPRESSION,
238
- ISOFORM_EXPRESSION,
239
- INTEGER,
240
- METABOLITE_INTENSITY,
241
- SINGLECELL_CELLTYPE,
242
- SINGLECELL_GENE_EXPRESSION,
243
- SNP,
244
- SSGSEA,
245
- TERM_COLLECTION,
246
- PROTEOME_ABUNDANCE,
247
- TermTypes,
248
- dtTermTypes,
249
- NUMERIC_DICTIONARY_TERM,
250
- TermTypes2Dt,
251
- typeGroup,
252
- numericTypes,
253
- isSingleCellTerm,
254
- isNumericTerm,
255
- isCategoricalTerm,
256
- isDictionaryType,
257
- isNonDictionaryType,
258
- isNumTermCollection,
259
- equals,
260
- termType2label,
261
- getDateFromNumber,
262
- getDateStrFromNumber
263
- };
264
- //# sourceMappingURL=chunk-EGWVYY7K.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../shared/utils/src/terms.js"],
4
- "sourcesContent": ["import {\n\tdtgeneexpression,\n\tdtssgsea,\n\tdtdnamethylation,\n\tdtmetaboliteintensity,\n\tdtproteomeabundance,\n\tTermTypeGroups,\n\tdtTerms,\n} from \"./common.js\"\nimport { TermTypeGroups as TermTypeGroups2 } from \"./common.js\"\nconst ROOT_SAMPLE_TYPE = 1\nconst DEFAULT_SAMPLE_TYPE = 2\nconst NumericModes = {\n\tcontinuous: \"continuous\",\n\tdiscrete: \"discrete\",\n}\nconst CATEGORICAL = \"categorical\"\nconst CONDITION = \"condition\"\nconst DATE = \"date\"\nconst DNA_METHYLATION = \"dnaMethylation\"\nconst FLOAT = \"float\"\nconst GENE_VARIANT = \"geneVariant\"\nconst GENE_EXPRESSION = \"geneExpression\"\nconst ISOFORM_EXPRESSION = \"isoformExpression\"\nconst INTEGER = \"integer\"\nconst METABOLITE_INTENSITY = \"metaboliteIntensity\"\nconst MULTIVALUE = \"multivalue\"\nconst SAMPLELST = \"samplelst\"\nconst SINGLECELL_CELLTYPE = \"singleCellCellType\"\nconst SINGLECELL_GENE_EXPRESSION = \"singleCellGeneExpression\"\nconst SNP = \"snp\"\nconst SNP_LIST = \"snplst\"\nconst SNP_LOCUS = \"snplocus\"\nconst SSGSEA = \"ssGSEA\"\nconst SURVIVAL = \"survival\"\nconst TERM_COLLECTION = \"termCollection\"\nconst PROTEOME_ABUNDANCE = \"proteomeAbundance\"\nconst TermTypes = {\n\tGENE_VARIANT,\n\tGENE_EXPRESSION,\n\tISOFORM_EXPRESSION,\n\tSSGSEA,\n\tDNA_METHYLATION,\n\tCATEGORICAL,\n\tINTEGER,\n\tFLOAT,\n\tSNP,\n\tSNP_LIST,\n\tSNP_LOCUS,\n\tCONDITION,\n\tSURVIVAL,\n\tSAMPLELST,\n\tMETABOLITE_INTENSITY,\n\tPROTEOME_ABUNDANCE,\n\tSINGLECELL_CELLTYPE,\n\tSINGLECELL_GENE_EXPRESSION,\n\tMULTIVALUE,\n\tDATE,\n\tTERM_COLLECTION,\n}\nconst dtTermTypes = new Set(dtTerms.map((t) => t.type))\nfor (const dtTermType of dtTermTypes) {\n\tTermTypes[dtTermType.toUpperCase()] = dtTermType\n}\nconst NUMERIC_DICTIONARY_TERM = \"numericDictTerm\"\nconst TermTypes2Dt = {\n\t[GENE_EXPRESSION]: dtgeneexpression,\n\t[SSGSEA]: dtssgsea,\n\t[DNA_METHYLATION]: dtdnamethylation,\n\t[METABOLITE_INTENSITY]: dtmetaboliteintensity,\n\t[PROTEOME_ABUNDANCE]: dtproteomeabundance,\n}\nconst typeGroup = {\n\t[CATEGORICAL]: TermTypeGroups.DICTIONARY_VARIABLES,\n\t[CONDITION]: TermTypeGroups.DICTIONARY_VARIABLES,\n\t[FLOAT]: TermTypeGroups.DICTIONARY_VARIABLES,\n\t[INTEGER]: TermTypeGroups.DICTIONARY_VARIABLES,\n\t[SAMPLELST]: TermTypeGroups.DICTIONARY_VARIABLES,\n\t[SURVIVAL]: TermTypeGroups.DICTIONARY_VARIABLES,\n\t[DATE]: TermTypeGroups.DICTIONARY_VARIABLES,\n\t[MULTIVALUE]: TermTypeGroups.DICTIONARY_VARIABLES,\n\t[GENE_VARIANT]: TermTypeGroups.MUTATION_CNV_FUSION,\n\t[SNP]: TermTypeGroups.SNP,\n\t[SNP_LIST]: TermTypeGroups.SNP_LIST,\n\t[SNP_LOCUS]: TermTypeGroups.SNP_LOCUS,\n\t[GENE_EXPRESSION]: TermTypeGroups.GENE_EXPRESSION,\n\t[ISOFORM_EXPRESSION]: TermTypeGroups.ISOFORM_EXPRESSION,\n\t[SSGSEA]: TermTypeGroups.SSGSEA,\n\t[DNA_METHYLATION]: TermTypeGroups.DNA_METHYLATION,\n\t[METABOLITE_INTENSITY]: TermTypeGroups.METABOLITE_INTENSITY,\n\t[PROTEOME_ABUNDANCE]: TermTypeGroups.PROTEOME_ABUNDANCE,\n\t[TERM_COLLECTION]: TermTypeGroups.TERM_COLLECTION,\n\t[SINGLECELL_CELLTYPE]: TermTypeGroups.SINGLECELL_CELLTYPE,\n\t[SINGLECELL_GENE_EXPRESSION]: TermTypeGroups.SINGLECELL_GENE_EXPRESSION,\n}\nconst nonDictTypes = /* @__PURE__ */ new Set([\n\tSNP,\n\tSNP_LIST,\n\tSNP_LOCUS,\n\tGENE_EXPRESSION,\n\tISOFORM_EXPRESSION,\n\tSSGSEA,\n\tDNA_METHYLATION,\n\tGENE_VARIANT,\n\tMETABOLITE_INTENSITY,\n\tPROTEOME_ABUNDANCE,\n\tSINGLECELL_CELLTYPE,\n\tSINGLECELL_GENE_EXPRESSION,\n])\nfor (const dtTermType of dtTermTypes) {\n\tnonDictTypes.add(TermTypes[dtTermType.toUpperCase()])\n}\nconst numericTypes = /* @__PURE__ */ new Set([\n\tINTEGER,\n\tFLOAT,\n\tGENE_EXPRESSION,\n\tISOFORM_EXPRESSION,\n\tSSGSEA,\n\tDNA_METHYLATION,\n\tMETABOLITE_INTENSITY,\n\tPROTEOME_ABUNDANCE,\n\tSINGLECELL_GENE_EXPRESSION,\n\tDATE,\n])\nconst annoNumericTypes = /* @__PURE__ */ new Set([INTEGER, FLOAT, DATE])\nconst categoricalTypes = /* @__PURE__ */ new Set([CATEGORICAL, SNP])\nconst singleCellTerms = /* @__PURE__ */ new Set([\n\tSINGLECELL_CELLTYPE,\n\tSINGLECELL_GENE_EXPRESSION,\n])\nfunction isSingleCellTerm(term) {\n\tif (!term) return false\n\treturn singleCellTerms.has(term.type)\n}\nfunction isNumericTerm(term) {\n\tif (!term) return false\n\treturn numericTypes.has(term.type)\n}\nfunction isCategoricalTerm(term) {\n\tif (!term) return false\n\treturn categoricalTypes.has(term.type)\n}\nfunction isDictionaryType(type) {\n\treturn !isNonDictionaryType(type)\n}\nfunction isNonDictionaryType(type) {\n\tif (!type) throw new Error(\"Type is not defined\")\n\treturn nonDictTypes.has(type)\n}\nfunction isNumTermCollection(term) {\n\tif (!term || !term.type) throw new Error(\"Term or term type is not defined\")\n\treturn term.type === TERM_COLLECTION\n}\nfunction equals(t1, t2) {\n\tif (!t1) throw new Error(\"First term is not defined \")\n\tif (!t2) throw new Error(\"Second term is not defined \")\n\tif (t1.type !== t2.type) return false\n\tif (\n\t\tisDictionaryType(t1.type) &&\n\t\tisDictionaryType(t2.type) &&\n\t\tt1.type != SAMPLELST\n\t)\n\t\treturn t1.id === t2.id\n\tswitch (t1.type) {\n\t\tcase GENE_EXPRESSION:\n\t\t\treturn t1.gene == t2.gene\n\t\tcase ISOFORM_EXPRESSION:\n\t\t\treturn t1.isoform == t2.isoform\n\t\tcase SSGSEA:\n\t\t\treturn t1.id == t2.id\n\t\tcase DNA_METHYLATION:\n\t\t\treturn t1.chr == t2.chr && t1.start == t2.start && t1.stop == t2.stop\n\t\tcase METABOLITE_INTENSITY:\n\t\tcase PROTEOME_ABUNDANCE:\n\t\t\treturn t1.name == t2.name\n\t\tcase GENE_VARIANT:\n\t\t\treturn (\n\t\t\t\tt1.gene == t2.gene ||\n\t\t\t\t(t1.chr == t2.chr && t1.start == t2.start && t1.stop == t2.stop)\n\t\t\t)\n\t\t// TO DO: Add more cases\n\t\t// case SNP_LIST:\n\t\t// case SNP_LOCUS:\n\t\t// case SAMPLELST:\n\t\tdefault:\n\t\t\treturn false\n\t}\n}\nfunction getBin(lst, value) {\n\tlet bin = lst.findIndex(\n\t\t(b) =>\n\t\t\t(b.startunbounded && value < b.stop) ||\n\t\t\t(b.startunbounded && b.stopinclusive && value == b.stop)\n\t)\n\tif (bin == -1)\n\t\tbin = lst.findIndex(\n\t\t\t(b) =>\n\t\t\t\t(b.stopunbounded && value > b.start) ||\n\t\t\t\t(b.stopunbounded && b.startinclusive && value == b.start)\n\t\t)\n\tif (bin == -1)\n\t\tbin = lst.findIndex(\n\t\t\t(b) =>\n\t\t\t\t(value > b.start && value < b.stop) ||\n\t\t\t\t(b.startinclusive && value == b.start) ||\n\t\t\t\t(b.stopinclusive && value == b.stop)\n\t\t)\n\treturn bin\n}\nfunction getSampleType(term, ds) {\n\tif (!term) return null\n\tif (term.type && isNonDictionaryType(term.type)) return DEFAULT_SAMPLE_TYPE\n\tif (term.id) return ds.cohort.termdb.term2SampleType.get(term.id)\n\tif (term.type == \"samplelst\") {\n\t\tconst key = Object.keys(term.values)[0]\n\t\tconst sampleId = term.values[key].list[0]?.sampleId\n\t\tif (sampleId) return ds.sampleId2Type.get(Number(sampleId) || sampleId)\n\t\telse return DEFAULT_SAMPLE_TYPE\n\t}\n\treturn DEFAULT_SAMPLE_TYPE\n}\nfunction getParentType(types, ds) {\n\tif (Object.keys(ds.cohort.termdb.sampleTypes).length == 0) return null\n\tconst ids = Array.from(types)\n\tif (!ids || ids.length == 0) return null\n\tfor (const id of ids) {\n\t\tconst typeObj = ds.cohort.termdb.sampleTypes[id]\n\t\tif (!typeObj) continue\n\t\tif (typeObj.parent_id == null) return id\n\t\tif (ids.includes(typeObj.parent_id)) continue\n\t\telse return typeObj.parent_id\n\t}\n\treturn null\n}\nconst typeMap = {\n\tcategorical: \"Categorical\",\n\tcondition: \"Condition\",\n\tfloat: \"Numerical\",\n\tinteger: \"Numerical\",\n\tgeneExpression: \"Gene Expression\",\n\tisoformExpression: \"Isoform Expression\",\n\tssGSEA: \"Geneset Expression\",\n\tdnaMethylation: \"DNA Methylation\",\n\tgeneVariant: \"Gene Variant\",\n\tmetaboliteIntensity: \"Metabolite Intensity\",\n\tproteomeAbundance: \"Proteome Abundance\",\n\tmultivalue: \"Multi Value\",\n\tsingleCellGeneExpression: \"Single Cell, Gene Expression\",\n\tsingleCellCellType: \"Single Cell, Cell Type\",\n\tsnplocus: \"SNP Locus\",\n\tsnp: \"SNP\",\n\tsnplst: \"SNP List\",\n\tnumericDictTerm: \"Numeric Dictionary Term\",\n\ttermCollection: \"Term Collection\",\n}\nfunction termType2label(type) {\n\treturn typeMap[type] || \"Unknown term type\"\n}\nfunction getDateFromNumber(value) {\n\tconst year = Math.floor(value)\n\tconst january1st = new Date(year, 0, 1)\n\tconst totalDays = getDaysInYear(year)\n\tconst time = Math.round((value - year) * totalDays) * oneDayTime\n\tconst date = new Date(january1st.getTime() + time)\n\treturn date\n}\nconst oneDayTime = 24 * 60 * 60 * 1e3\nfunction getDateStrFromNumber(value) {\n\tconst date = getDateFromNumber(value)\n\treturn date.toLocaleDateString(\"en-US\", {\n\t\tyear: \"numeric\",\n\t\tmonth: \"long\",\n\t})\n}\nfunction getNumberFromDateStr(str) {\n\tconst date = new Date(str)\n\treturn getNumberFromDate(date)\n}\nfunction getNumberFromDate(date) {\n\tconst year = date.getFullYear()\n\tconst january1st = new Date(year, 0, 1)\n\tconst diffDays = (date.getTime() - january1st.getTime()) / oneDayTime\n\tconst daysTotal = getDaysInYear(year)\n\tconst decimal = diffDays / daysTotal\n\treturn year + decimal\n}\nfunction getDaysInYear(year) {\n\tconst isLeap = new Date(year, 1, 29).getMonth() === 1\n\tconst days = isLeap ? 366 : 365\n\treturn days\n}\nexport {\n\tCATEGORICAL,\n\tCONDITION,\n\tDATE,\n\tDEFAULT_SAMPLE_TYPE,\n\tDNA_METHYLATION,\n\tFLOAT,\n\tGENE_EXPRESSION,\n\tGENE_VARIANT,\n\tINTEGER,\n\tISOFORM_EXPRESSION,\n\tMETABOLITE_INTENSITY,\n\tMULTIVALUE,\n\tNUMERIC_DICTIONARY_TERM,\n\tNumericModes,\n\tPROTEOME_ABUNDANCE,\n\tROOT_SAMPLE_TYPE,\n\tSAMPLELST,\n\tSINGLECELL_CELLTYPE,\n\tSINGLECELL_GENE_EXPRESSION,\n\tSNP,\n\tSNP_LIST,\n\tSNP_LOCUS,\n\tSSGSEA,\n\tSURVIVAL,\n\tTERM_COLLECTION,\n\tTermTypeGroups2 as TermTypeGroups,\n\tTermTypes,\n\tTermTypes2Dt,\n\tannoNumericTypes,\n\tdtTermTypes,\n\tequals,\n\tgetBin,\n\tgetDateFromNumber,\n\tgetDateStrFromNumber,\n\tgetDaysInYear,\n\tgetNumberFromDate,\n\tgetNumberFromDateStr,\n\tgetParentType,\n\tgetSampleType,\n\tisCategoricalTerm,\n\tisDictionaryType,\n\tisNonDictionaryType,\n\tisNumTermCollection,\n\tisNumericTerm,\n\tisSingleCellTerm,\n\tnumericTypes,\n\ttermType2label,\n\ttypeGroup,\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }