@sjcrh/proteinpaint-client 2.118.3-2 → 2.119.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.
- package/dist/{2dmaf-ZIZY2ZRZ.js → 2dmaf-OLRVSAMU.js} +12 -12
- package/dist/{AppHeader-OLAW63RC.js → AppHeader-424UQUH3.js} +37 -35
- package/dist/{AppHeader-OLAW63RC.js.map → AppHeader-424UQUH3.js.map} +2 -2
- package/dist/{Disco-IWW5RASQ.js → Disco-PMGJJ2HN.js} +26 -26
- package/dist/{Disco.UI-4A5MG5NJ.js → Disco.UI-OQBTW6G2.js} +21 -21
- package/dist/{HicApp-6F5CZ4JF.js → HicApp-RD3SPCWL.js} +26 -26
- package/dist/{Volcano-W55BEJL7.js → Volcano-IYWZM3PL.js} +21 -21
- package/dist/{WSISamplesPlot-MQYDFUUB.js → WSISamplesPlot-A2D7DZDG.js} +20 -20
- package/dist/{WSIViewer-SWARFBAR.js → WSIViewer-STCP34L4.js} +21480 -201
- package/dist/WSIViewer-STCP34L4.js.map +7 -0
- package/dist/{adSandbox-JIKVDQG5.js → adSandbox-BWQ2FFJK.js} +11 -11
- package/dist/app-5D6NIPRC.js +63 -0
- package/dist/{app-RU4G6RJL.js → app-BTVBJS2T.js} +18 -18
- package/dist/app.js +15 -15
- package/dist/{bam-BEJVXCD3.js → bam-UGAPGBAP.js} +25 -25
- package/dist/{barchart-7DXGOGDY.js → barchart-5C2B4IAP.js} +21 -21
- package/dist/{barchart.data-IZ47GMAQ.js → barchart.data-KX4TO4YE.js} +13 -13
- package/dist/{barchart.events-6D2QGQSE.js → barchart.events-I5ML6KOM.js} +21 -21
- package/dist/bars.renderer-XVMEUUR7.js +1 -1
- package/dist/{block-6PGUBUET.js → block-RI3XWF2E.js} +49 -49
- package/dist/{block.init-DR75BCPD.js → block.init-SKRMIKIG.js} +10 -10
- package/dist/{block.mds.cnv-VPB63Q3Z.js → block.mds.cnv-YGC5YBAV.js} +15 -15
- package/dist/{block.mds.expressionrank-FRQLBYDS.js → block.mds.expressionrank-ZUOZXURL.js} +11 -11
- package/dist/{block.mds.geneboxplot-AA4BHZUM.js → block.mds.geneboxplot-EJ3U6RHY.js} +12 -12
- package/dist/{block.mds.junction-FJH2OAF4.js → block.mds.junction-JR7RUZUV.js} +22 -22
- package/dist/{block.mds.svcnv-MKRNZQ6Z.js → block.mds.svcnv-UQNJI3V3.js} +28 -28
- package/dist/{block.mds2-SANVZHBP.js → block.mds2-FU24JY5G.js} +29 -29
- package/dist/{block.svg-2GJPFJJ5.js → block.svg-UFWM3ROM.js} +9 -9
- package/dist/{block.tk.aicheck-MR37R5IZ.js → block.tk.aicheck-FCMJUH73.js} +18 -18
- package/dist/{block.tk.ase-KLMMIDAR.js → block.tk.ase-JYJ4DVIP.js} +11 -11
- package/dist/{block.tk.bam-J7FKIMWE.js → block.tk.bam-V42ZUDXC.js} +23 -23
- package/dist/{block.tk.bedgraphdot-CLFD442A.js → block.tk.bedgraphdot-QLSNEDXQ.js} +9 -9
- package/dist/{block.tk.bigwig.ui-5Z5M4HXN.js → block.tk.bigwig.ui-DX2UDISS.js} +9 -9
- package/dist/{block.tk.hicstraw-2UL2NEFT.js → block.tk.hicstraw-PEMIIKXN.js} +20 -20
- package/dist/{block.tk.junction-PFNBL4P2.js → block.tk.junction-QBIZCDD3.js} +18 -18
- package/dist/{block.tk.junction.textmatrixui-NCBUMSO5.js → block.tk.junction.textmatrixui-H55IAWJA.js} +10 -10
- package/dist/{block.tk.ld-AFEIALQW.js → block.tk.ld-GOGSBHVR.js} +23 -23
- package/dist/{block.tk.menu-OJKL6KAS.js → block.tk.menu-OVV2EG4P.js} +12 -12
- package/dist/{block.tk.pgv-HN6FFIZI.js → block.tk.pgv-WU5VKBOX.js} +17 -17
- package/dist/{boxplot-TFPDGKBE.js → boxplot-5JJGY7PG.js} +21 -21
- package/dist/{brainImaging-RZ3UVF3U.js → brainImaging-7CASZTFY.js} +24 -24
- package/dist/{categorical-ODHLHKAV.js → categorical-XCFCD44E.js} +20 -20
- package/dist/{chunk-PZYRNI7A.js → chunk-2H6TWAZT.js} +122 -91
- package/dist/chunk-2H6TWAZT.js.map +7 -0
- package/dist/{chunk-JKBFWQXL.js → chunk-2HK3WTEB.js} +10 -10
- package/dist/{chunk-JLXENIK4.js → chunk-2PS46QKY.js} +3 -3
- package/dist/{chunk-7E3UIFWF.js → chunk-3LI5UUDY.js} +3 -3
- package/dist/{chunk-PQWFEDPP.js → chunk-3YTZ2C5I.js} +21 -21
- package/dist/{chunk-BPVDVBWL.js → chunk-4OPDJ7IB.js} +88 -89
- package/dist/chunk-4OPDJ7IB.js.map +7 -0
- package/dist/{chunk-RVM674Y3.js → chunk-5RGQ2I7Z.js} +18 -18
- package/dist/{chunk-RU6QR6EC.js → chunk-64NHIVRH.js} +2 -2
- package/dist/{chunk-RF24Y6FU.js → chunk-67NALKLR.js} +2 -2
- package/dist/{chunk-T4RWJVPO.js → chunk-6VD4MMRS.js} +4 -4
- package/dist/{chunk-AMSO624X.js → chunk-6VOTOFR2.js} +3 -3
- package/dist/{chunk-AQJJTZM2.js → chunk-7JBXOZM6.js} +9 -9
- package/dist/{chunk-ILMODPIP.js → chunk-A64GLQOF.js} +3 -3
- package/dist/{chunk-4HXQR7R2.js → chunk-AARUGC2Z.js} +10 -10
- package/dist/{chunk-QFFFWVBQ.js → chunk-BESJTF3M.js} +2 -2
- package/dist/{chunk-AC2KVMUK.js → chunk-C2NS4O5Y.js} +3 -3
- package/dist/{chunk-ILGDHPRE.js → chunk-C3OQKFGL.js} +4 -4
- package/dist/{chunk-QSNALKE3.js → chunk-CGXZMDMJ.js} +23 -23
- package/dist/chunk-CGXZMDMJ.js.map +7 -0
- package/dist/{chunk-55RANC4Y.js → chunk-D5BGW7JO.js} +2 -2
- package/dist/{chunk-LLYL3ZGG.js → chunk-DBWATZPQ.js} +3 -3
- package/dist/{chunk-H2ATFHNV.js → chunk-DIFPJGF4.js} +2 -2
- package/dist/{chunk-LU7V7QQA.js → chunk-EFZYLXSN.js} +16 -15
- package/dist/{chunk-LU7V7QQA.js.map → chunk-EFZYLXSN.js.map} +2 -2
- package/dist/{chunk-HP4UCPQY.js → chunk-EOFNHY7R.js} +6 -6
- package/dist/{chunk-OPGWGY2Q.js → chunk-FRHY2LUS.js} +16 -16
- package/dist/{chunk-4TK3QGYC.js → chunk-GDJSOS3O.js} +4 -4
- package/dist/{chunk-CENNOYLW.js → chunk-H4HSIJPQ.js} +243 -192
- package/dist/{chunk-CENNOYLW.js.map → chunk-H4HSIJPQ.js.map} +3 -3
- package/dist/{chunk-R64MTEOG.js → chunk-HFIHWFI3.js} +49 -49
- package/dist/chunk-HFIHWFI3.js.map +7 -0
- package/dist/{chunk-XGTXUMLH.js → chunk-HRRIM5UY.js} +3 -3
- package/dist/{chunk-NUI3U2P4.js → chunk-ICSOAMTB.js} +18 -18
- package/dist/{chunk-5KD6YZFT.js → chunk-ID3GDVPY.js} +3 -3
- package/dist/{chunk-SFMJ2FRS.js → chunk-IG4ZOPIV.js} +90 -90
- package/dist/{chunk-2SK7XSZL.js → chunk-IYIJOJCM.js} +2 -2
- package/dist/{chunk-XRRHABTH.js → chunk-J74GUO4C.js} +10 -10
- package/dist/{chunk-XIREXPUZ.js → chunk-JELWOABQ.js} +6 -6
- package/dist/{chunk-2BVIFUQQ.js → chunk-KCH4TGQM.js} +2 -2
- package/dist/{chunk-U6TEYC4N.js → chunk-KTFKKFSZ.js} +7 -7
- package/dist/{chunk-LFMQW2GW.js → chunk-LNB3AYLH.js} +2 -2
- package/dist/{chunk-J67S3DTY.js → chunk-LNMC6SV5.js} +2 -2
- package/dist/{chunk-AMX43Y6L.js → chunk-M4UOCZ3S.js} +9 -9
- package/dist/{chunk-4CUJT2QV.js → chunk-MITIJZ4Y.js} +2 -2
- package/dist/{chunk-ZDGUB2IV.js → chunk-MIW6L3BT.js} +7 -7
- package/dist/{chunk-TNW5ME5A.js → chunk-NBNJSOFE.js} +2 -2
- package/dist/{chunk-R2XF4DXZ.js → chunk-NV6H5GWN.js} +16 -16
- package/dist/chunk-NV6H5GWN.js.map +7 -0
- package/dist/{chunk-BA3LVIKU.js → chunk-NXFK6H54.js} +5 -5
- package/dist/{chunk-FF4ROLX2.js → chunk-NZ7OE7FT.js} +20 -20
- package/dist/{chunk-5CKM6VJC.js → chunk-OCGSEGIJ.js} +3 -3
- package/dist/{chunk-4I4JML74.js → chunk-OGG5DOZQ.js} +3 -3
- package/dist/{chunk-6N7AX5YL.js → chunk-OLLMWT7N.js} +2 -2
- package/dist/{chunk-MY4BXUDJ.js → chunk-OML6JD4H.js} +7 -7
- package/dist/{chunk-P5RCU3BF.js → chunk-ORTMVN37.js} +2 -2
- package/dist/{chunk-IFEF3MNU.js → chunk-OVW22PNS.js} +3 -3
- package/dist/{chunk-OAWBFRH5.js → chunk-OWWW575T.js} +7 -7
- package/dist/{chunk-CXUIUQ76.js → chunk-P4QJJSDN.js} +4 -4
- package/dist/{chunk-EIIJKRQE.js → chunk-PMUAK7AU.js} +3 -2
- package/dist/chunk-PMUAK7AU.js.map +7 -0
- package/dist/{chunk-CTPT6J4U.js → chunk-PW637PAN.js} +93 -93
- package/dist/{chunk-JOFO5OGK.js → chunk-QF5ZWPTJ.js} +4 -4
- package/dist/{chunk-ZQON5PKF.js → chunk-QOGD7KB4.js} +10 -10
- package/dist/{chunk-L67WTVR4.js → chunk-QWX4WDVI.js} +39 -19
- package/dist/chunk-QWX4WDVI.js.map +7 -0
- package/dist/{chunk-DGKO5A6M.js → chunk-RSOUDKZI.js} +2 -2
- package/dist/{chunk-HUTHRZET.js → chunk-S2K3PIOU.js} +3 -3
- package/dist/{chunk-O4YYTGHT.js → chunk-S3HZBM2W.js} +16 -16
- package/dist/{chunk-5TMYKJY2.js → chunk-S7GUS2SW.js} +5 -5
- package/dist/{chunk-UV6LHDLG.js → chunk-TIPW4WQT.js} +10 -10
- package/dist/{chunk-XSG3EGZD.js → chunk-TQ6WD7FB.js} +3 -3
- package/dist/{chunk-TOJ72OQT.js → chunk-TTLODFNX.js} +3 -3
- package/dist/{chunk-QG7HTC3Y.js → chunk-TXGHOJ5F.js} +14 -14
- package/dist/{chunk-QIBRVYKI.js → chunk-UE4QRX2Q.js} +4 -4
- package/dist/chunk-UMJOAEZG.js +31 -0
- package/dist/chunk-UMJOAEZG.js.map +7 -0
- package/dist/{chunk-BGUEQL3C.js → chunk-URZOYAUG.js} +3 -3
- package/dist/{chunk-5UWZOLOE.js → chunk-UVOCO2NX.js} +32 -30
- package/dist/{chunk-5UWZOLOE.js.map → chunk-UVOCO2NX.js.map} +2 -2
- package/dist/{chunk-MDQZZL3T.js → chunk-W67SGC3N.js} +9 -9
- package/dist/{chunk-XD4QN5LU.js → chunk-WB7A63R5.js} +7 -7
- package/dist/{chunk-6HIQNZWC.js → chunk-WG53KM6L.js} +2 -2
- package/dist/{chunk-646FSQGX.js → chunk-WMH7EFRJ.js} +8 -8
- package/dist/{chunk-BYCSIBZU.js → chunk-X4ELC4V6.js} +2 -2
- package/dist/{chunk-NMTXVB7L.js → chunk-X6CVCU3G.js} +2 -2
- package/dist/{chunk-UDMWOC44.js → chunk-XENW2QKK.js} +4 -4
- package/dist/{chunk-JBUIT7YB.js → chunk-XYES63RM.js} +20 -20
- package/dist/{chunk-EB3QMO4M.js → chunk-YDOGVE64.js} +6 -6
- package/dist/{geneVariant-H3OXPP7W.js → chunk-YIGAYUC3.js} +57 -72
- package/dist/chunk-YIGAYUC3.js.map +7 -0
- package/dist/{chunk-KXY7BPKZ.js → chunk-ZAXQ6ECN.js} +15 -15
- package/dist/{chunk-ILGSAMZ3.js → chunk-ZHP4RH6A.js} +3 -3
- package/dist/{chunk-V4ORW2OQ.js → chunk-ZMFGBTHM.js} +112 -113
- package/dist/{chunk-V4ORW2OQ.js.map → chunk-ZMFGBTHM.js.map} +2 -2
- package/dist/{chunk-DKG3YXCC.js → chunk-ZVIZAMPC.js} +2 -2
- package/dist/{condition-74MGSNVC.js → condition-AHD6F3JG.js} +19 -19
- package/dist/{controls-UV5VJBDG.js → controls-YDV4NOQV.js} +20 -20
- package/dist/{controls.config-PNI3ZTR7.js → controls.config-ILVCTQ4M.js} +19 -19
- package/dist/{correlationVolcano-22JZ5JOM.js → correlationVolcano-DX2NXTHF.js} +27 -27
- package/dist/{cuminc-LNZFBFHE.js → cuminc-TBWQEHST.js} +29 -29
- package/dist/{customdata.inputui-WAHJOQWS.js → customdata.inputui-NCJTO5KP.js} +9 -9
- package/dist/{dataDownload-3MJJ5YOM.js → dataDownload-3RRXXU5L.js} +21 -21
- package/dist/{databrowser.ui-KZTOWGJY.js → databrowser.ui-JXROV3IT.js} +36 -36
- package/dist/{density-RAH3CU23.js → density-DYA5FUGR.js} +7 -7
- package/dist/{dictionary-P3NRUDLC.js → dictionary-NRDJQHPR.js} +19 -19
- package/dist/{differentialAnalysis-VKTB4FX3.js → differentialAnalysis-XZU7YJMM.js} +30 -30
- package/dist/{differentialAnalysis-VKTB4FX3.js.map → differentialAnalysis-XZU7YJMM.js.map} +2 -2
- package/dist/{e2pca-PBLUKJ2V.js → e2pca-Y5LVAYMS.js} +14 -14
- package/dist/{ep-6ASUFY4U.js → ep-HTIPJE5X.js} +14 -14
- package/dist/{expclust.gdc.spec-VG6MRFZQ.js → expclust.gdc.spec-QWLUC4WN.js} +17 -17
- package/dist/{facet-WGSU4GBH.js → facet-BKHHQCKY.js} +25 -25
- package/dist/{geneExpClustering-N2HNZGLT.js → geneExpClustering-CR4ZFLTD.js} +24 -24
- package/dist/{geneExpression-UW4GLFKY.js → geneExpression-CZJK2QWG.js} +22 -22
- package/dist/{geneExpression-K64WM5JZ.js → geneExpression-G6UNEEE2.js} +6 -6
- package/dist/{geneExpression-VCPHCAN6.js → geneExpression-KVXPEIGD.js} +6 -6
- package/dist/{geneORA-MOJSZYHD.js → geneORA-MF6ZNXLJ.js} +25 -25
- package/dist/geneVariant-TF4DDVNA.js +44 -0
- package/dist/{geneVariant-SX6Z42UL.js → geneVariant-V7GUQHCI.js} +12 -12
- package/dist/{genefusion.ui-KZHDEJW3.js → genefusion.ui-CLKMP2LK.js} +9 -9
- package/dist/{geneset-YP4XOM7V.js → geneset-U7YOM6JH.js} +19 -19
- package/dist/{genomeBrowser-MMFF3FM6.js → genomeBrowser-WUN23XUH.js} +24 -24
- package/dist/{genomeBrowser.controls-JS5QZZFD.js → genomeBrowser.controls-OBMQ5SUE.js} +19 -19
- package/dist/{genomeBrowser.spec-BMFHD5JR.js → genomeBrowser.spec-RX4KA6XR.js} +17 -17
- package/dist/{groupsetting-ZPUQLKWA.js → groupsetting-4T2KW2PR.js} +19 -19
- package/dist/{gsea-WIBNO4Q7.js → gsea-57BRWTUV.js} +21 -21
- package/dist/hierCluster-73DSVMZN.js +66 -0
- package/dist/hierCluster-PPFCQISB.js +62 -0
- package/dist/{hierCluster.config-DUXIXFGD.js → hierCluster.config-BFGZSQUL.js} +21 -21
- package/dist/{hierCluster.integration.spec-IBJISDXF.js → hierCluster.integration.spec-XXYDVXMK.js} +33 -33
- package/dist/{hierCluster.interactivity-KSE4AGS6.js → hierCluster.interactivity-Q2HRFMBD.js} +19 -19
- package/dist/{hierCluster.renderers-VXM4BI3S.js → hierCluster.renderers-VMMWFAKC.js} +7 -7
- package/dist/{imagePlot-7A7S6LLB.js → imagePlot-SRNIKJZQ.js} +22 -22
- package/dist/{launch.adhoc-NN5OHC43.js → launch.adhoc-KJ42NAAD.js} +21 -21
- package/dist/{leftlabel.sample-7GCQVUW4.js → leftlabel.sample-IWOVBLNQ.js} +25 -25
- package/dist/{lollipop-7J5YTVUT.js → lollipop-PFZKVGEM.js} +15 -15
- package/dist/{maf-TCC7T5DI.js → maf-J5TOAPCW.js} +20 -20
- package/dist/{maftimeline-6D6DMU33.js → maftimeline-YLYLYYCS.js} +12 -12
- package/dist/matrix-2IJQVJWD.js +61 -0
- package/dist/{matrix-PQ6Q57AC.js → matrix-OI6IE56Q.js} +33 -33
- package/dist/{matrix.cells-OXUVWACV.js → matrix.cells-PSMYPTS6.js} +8 -8
- package/dist/{matrix.config-EUWFKESZ.js → matrix.config-OQY4SQRA.js} +20 -20
- package/dist/{matrix.controls-ZDV36QZ4.js → matrix.controls-T7S2UVP2.js} +21 -21
- package/dist/{matrix.data-FR4LF3EL.js → matrix.data-PS2BX4PX.js} +12 -12
- package/dist/{matrix.groups-LCMNQ7FR.js → matrix.groups-KL7I64XS.js} +8 -8
- package/dist/{matrix.interactivity-DC57U5K4.js → matrix.interactivity-53RWX37V.js} +19 -19
- package/dist/{matrix.layout-PUQ4CZCC.js → matrix.layout-GKP6KDHC.js} +19 -19
- package/dist/{matrix.legend-6QQ2ACZB.js → matrix.legend-WNDAP6G3.js} +7 -7
- package/dist/{matrix.renderers-YMBDVRIP.js → matrix.renderers-NSEWC2TP.js} +19 -19
- package/dist/{matrix.serieses-YZMBNA4B.js → matrix.serieses-K733SMN6.js} +9 -9
- package/dist/{matrix.sort-PQVYAXYW.js → matrix.sort-KH7SWIYX.js} +7 -7
- package/dist/{matrix.sort.unit.spec-CMNE56MA.js → matrix.sort.unit.spec-KJ6ECU5W.js} +20 -20
- package/dist/{matrix.sorterUi-6E3SAUGF.js → matrix.sorterUi-G7JZZ45T.js} +8 -8
- package/dist/{matrix.sorterUi.unit.spec-G6WQ5NPD.js → matrix.sorterUi.unit.spec-KW4GWG3W.js} +24 -24
- package/dist/{mavb-HWYBSC2W.js → mavb-7MNBAC3K.js} +13 -13
- package/dist/{mds.fimo-ITEREXV2.js → mds.fimo-URV4C2LR.js} +11 -11
- package/dist/{mds.samplescatterplot-HJX7WGPG.js → mds.samplescatterplot-HWST5GMI.js} +27 -27
- package/dist/{mds.survivalplot-TBXP7DK3.js → mds.survivalplot-LFMJJRO5.js} +12 -12
- package/dist/{metaboliteIntensity-AIDRCRFG.js → metaboliteIntensity-3OSAHAZA.js} +6 -6
- package/dist/{numeric-4BOMJFG7.js → numeric-HIIGHWQM.js} +6 -6
- package/dist/{numeric.binary-KDQUZP3J.js → numeric.binary-62JMINEJ.js} +25 -25
- package/dist/{numeric.continuous-IYMQFQZD.js → numeric.continuous-AVGTAP4W.js} +20 -20
- package/dist/{numeric.discrete-IS47SOZ4.js → numeric.discrete-U45FOSA2.js} +22 -22
- package/dist/{numeric.spline-IY245N32.js → numeric.spline-IJM5BIRM.js} +21 -21
- package/dist/{numeric.toggle-DVUGN4DL.js → numeric.toggle-IJDQK73D.js} +19 -19
- package/dist/{numericDictTermCluster-PGKZDKGV.js → numericDictTermCluster-SPAHON6F.js} +6 -6
- package/dist/{oncomatrix-PJMSEJG2.js → oncomatrix-VDN4RRIP.js} +22 -22
- package/dist/{oncomatrix.spec-CTFRKN36.js → oncomatrix.spec-PWY6LDTM.js} +17 -17
- package/dist/{plot.2dvaf-ZSKHIUQU.js → plot.2dvaf-J6Z3HSAA.js} +11 -11
- package/dist/{plot.app-FOANGEWK.js → plot.app-6XCNZM3H.js} +20 -20
- package/dist/{plot.barplot-TW2DVVS5.js → plot.barplot-4JF4SXW4.js} +9 -9
- package/dist/{plot.boxplot-QJ7UHWCM.js → plot.boxplot-YFMXTXRL.js} +10 -10
- package/dist/{plot.brainImaging-ARN4XT4I.js → plot.brainImaging-KYOURHGI.js} +2 -2
- package/dist/{plot.disco-AOPG66C2.js → plot.disco-7R3SW2WD.js} +8 -8
- package/dist/{plot.dzi-VPUCJN3X.js → plot.dzi-M3XXFJPU.js} +2 -2
- package/dist/{plot.ssgq-ASMT5UUQ.js → plot.ssgq-OCDEWIG7.js} +10 -10
- package/dist/{plot.vaf2cov-FRKYLCCS.js → plot.vaf2cov-OKL2MHRY.js} +10 -10
- package/dist/{plot.wsi-WZWXQBSW.js → plot.wsi-PXSZ3B25.js} +2 -2
- package/dist/{profile.spec-DRG7IH2E.js → profile.spec-SW43FV5L.js} +17 -17
- package/dist/{profileBarchart-JV5UON5S.js → profileBarchart-JCA62VHN.js} +23 -23
- package/dist/{profileForms-2LDFFTCT.js → profileForms-KSZJFRTK.js} +25 -25
- package/dist/{profilePlot-EKYLZESX.js → profilePlot-JTEAEIPD.js} +22 -22
- package/dist/{profilePolar-JNJLTEG2.js → profilePolar-ORZLDPCA.js} +24 -24
- package/dist/{profileRadar-VFW4HZJP.js → profileRadar-CRERKLWP.js} +24 -24
- package/dist/{profileRadarFacility-OSIVKALN.js → profileRadarFacility-PCUDRVTA.js} +24 -24
- package/dist/{regression-HZXWXQTO.js → regression-X4MA2XND.js} +28 -28
- package/dist/{regression.inputs-C7ZRBGKJ.js → regression.inputs-J53NNLTE.js} +28 -28
- package/dist/regression.inputs.term-W327LBEU.js +52 -0
- package/dist/{regression.inputs.values.table-WUGHKDL5.js → regression.inputs.values.table-IABHPFHS.js} +26 -26
- package/dist/{regression.results-CXIQJOPR.js → regression.results-5PXUMHKO.js} +19 -19
- package/dist/{runChart-L46GTLIU.js → runChart-ZYQ42SZP.js} +38 -38
- package/dist/{sampleScatter-VWML4FSB.js → sampleScatter-YPRYBFJ3.js} +27 -27
- package/dist/{sampleScatter.interactivity-AHQPXXNB.js → sampleScatter.interactivity-TIK4AZ2Z.js} +24 -24
- package/dist/{sampleScatter.renderer-QW7YYS6L.js → sampleScatter.renderer-NMBANUVL.js} +27 -27
- package/dist/{sampleScatter.rendererThree-TKALY7NZ.js → sampleScatter.rendererThree-T2COOBXO.js} +27 -27
- package/dist/{sampleView-47FQQDKN.js → sampleView-66AHN2C5.js} +21 -21
- package/dist/{samplelst-QJ2YLS3Z.js → samplelst-M4LHD4G7.js} +18 -18
- package/dist/{samplematrix-IY6R6ZWK.js → samplematrix-S2XBQRNH.js} +15 -15
- package/dist/{sc-5MTTQ2P2.js → sc-EOEA3G3T.js} +21 -21
- package/dist/{scatter-O5IJ7PHH.js → scatter-2ATRQY3N.js} +25 -25
- package/dist/{selectGenomeWithTklst-FDIADQFC.js → selectGenomeWithTklst-4EFDQ2Y5.js} +13 -13
- package/dist/{singleCellCellType-VHZ52IOL.js → singleCellCellType-YRINK7IM.js} +21 -21
- package/dist/{singleCellGeneExpression-ZZQONONU.js → singleCellGeneExpression-O7XELPN6.js} +6 -6
- package/dist/{singleCellPlot-CGDZTTPT.js → singleCellPlot-V5M2LIWK.js} +27 -27
- package/dist/{singlecell-CHWD63MS.js → singlecell-5TSF4FKJ.js} +16 -16
- package/dist/{singlecell-77WJ6NDL.js → singlecell-GVC7WS5P.js} +22 -22
- package/dist/{snp-3OCGSURG.js → snp-R4Q35SNK.js} +12 -12
- package/dist/{snp-OQQGESIY.js → snp-Z6HTJXYH.js} +21 -21
- package/dist/{snplocus-NTDRKSPU.js → snplocus-FW2BNEWK.js} +18 -18
- package/dist/{spliceevent.a53ss.diagram-S5MBQF44.js → spliceevent.a53ss.diagram-JB3JMIOR.js} +9 -9
- package/dist/{spliceevent.exonskip.diagram-NPAJPBRH.js → spliceevent.exonskip.diagram-YZOSM4ME.js} +10 -10
- package/dist/{spliceevent.noeventdiagram-53CA3HSO.js → spliceevent.noeventdiagram-CJ2YF4BL.js} +9 -9
- package/dist/{style.gdc-Q4SV2SX5.js → style.gdc-55MDBS67.js} +1 -1
- package/dist/style.gdc-55MDBS67.js.map +7 -0
- package/dist/{summary-HHGZERBU.js → summary-TAWMUNBI.js} +34 -34
- package/dist/{sunburst-B2Q7ZZKN.js → sunburst-VFV6AWG5.js} +12 -12
- package/dist/{survival-UO3XA2PU.js → survival-2MOV3O4F.js} +19 -19
- package/dist/{survival-ISVXD7JG.js → survival-SFPKYBKC.js} +30 -30
- package/dist/{svgraph-XF4LFSRJ.js → svgraph-AK7D2VCC.js} +14 -14
- package/dist/{svmr-QH76VAVC.js → svmr-JCEJ4TJO.js} +14 -14
- package/dist/{table-DBV2MV4U.js → table-ROKYOVKK.js} +22 -22
- package/dist/{testData-HUGJ3ZZJ.js → testData-LEJ53F2K.js} +21 -21
- package/dist/{testData-HUGJ3ZZJ.js.map → testData-LEJ53F2K.js.map} +2 -2
- package/dist/{tk-MIGY56TX.js → tk-CC5652UA.js} +24 -24
- package/dist/{tp.ui-2ROKDK6O.js → tp.ui-STSBBTCX.js} +21 -21
- package/dist/{tvs.density-QZOHE2KZ.js → tvs.density-3F5TI23V.js} +4 -4
- package/dist/tvs.dt-WW6UIG7R.js +40 -0
- package/dist/{tvs.dtcnv-2QNNH3DH.js → tvs.dtcnv-BBJZMFJR.js} +37 -7
- package/dist/tvs.dtcnv-BBJZMFJR.js.map +7 -0
- package/dist/tvs.dtfusion-O6EWSRZN.js +43 -0
- package/dist/tvs.dtfusion-O6EWSRZN.js.map +7 -0
- package/dist/tvs.dtsnvindel-USIDD75Y.js +43 -0
- package/dist/tvs.dtsnvindel-USIDD75Y.js.map +7 -0
- package/dist/tvs.dtsv-TEPYGVG3.js +43 -0
- package/dist/tvs.dtsv-TEPYGVG3.js.map +7 -0
- package/dist/tvs.geneVariant-QQ343TM4.js +100 -0
- package/dist/tvs.geneVariant-QQ343TM4.js.map +7 -0
- package/dist/{tvs.numeric-VIWNLOZF.js → tvs.numeric-5QWN6FDF.js} +7 -7
- package/dist/{tvs.samplelst-4H6XLODP.js → tvs.samplelst-BNMFOJ5A.js} +18 -18
- package/dist/{violin-7MZ36YEZ.js → violin-7ISPEC5F.js} +23 -23
- package/dist/{violin.interactivity-D5CPXRU5.js → violin.interactivity-3CT3L5M7.js} +19 -19
- package/dist/{violin.renderer-GMFQHIDA.js → violin.renderer-BFXIWYEG.js} +19 -19
- package/dist/{vocabulary-BF3COF7T.js → vocabulary-7CUWUOYF.js} +18 -18
- package/dist/vocabulary-7CUWUOYF.js.map +7 -0
- package/dist/{volcano-FNUBGQJ2.js → volcano-S75WHRVO.js} +21 -21
- package/dist/volcano-S75WHRVO.js.map +7 -0
- package/package.json +5 -3
- package/dist/WSIViewer-SWARFBAR.js.map +0 -7
- package/dist/app-PSDRUVKO.js +0 -63
- package/dist/chunk-BPVDVBWL.js.map +0 -7
- package/dist/chunk-EIIJKRQE.js.map +0 -7
- package/dist/chunk-L67WTVR4.js.map +0 -7
- package/dist/chunk-PZYRNI7A.js.map +0 -7
- package/dist/chunk-QSNALKE3.js.map +0 -7
- package/dist/chunk-R2XF4DXZ.js.map +0 -7
- package/dist/chunk-R64MTEOG.js.map +0 -7
- package/dist/geneVariant-H3OXPP7W.js.map +0 -7
- package/dist/hierCluster-FP56BHFP.js +0 -66
- package/dist/hierCluster-QXHZXSWE.js +0 -62
- package/dist/matrix-R4E4PMAB.js +0 -61
- package/dist/regression.inputs.term-CTLDQBRU.js +0 -52
- package/dist/style.gdc-Q4SV2SX5.js.map +0 -7
- package/dist/tvs.dtcnv-2QNNH3DH.js.map +0 -7
- package/dist/tvs.dtfusion-P5B4S44C.js +0 -11
- package/dist/tvs.dtfusion-P5B4S44C.js.map +0 -7
- package/dist/tvs.dtsnvindel-RXJLCTCW.js +0 -11
- package/dist/tvs.dtsnvindel-RXJLCTCW.js.map +0 -7
- package/dist/tvs.dtsv-U3RLF45O.js +0 -11
- package/dist/tvs.dtsv-U3RLF45O.js.map +0 -7
- package/dist/tvs.geneVariant-N4HZIEJD.js +0 -176
- package/dist/tvs.geneVariant-N4HZIEJD.js.map +0 -7
- /package/dist/{2dmaf-ZIZY2ZRZ.js.map → 2dmaf-OLRVSAMU.js.map} +0 -0
- /package/dist/{Disco-IWW5RASQ.js.map → Disco-PMGJJ2HN.js.map} +0 -0
- /package/dist/{Disco.UI-4A5MG5NJ.js.map → Disco.UI-OQBTW6G2.js.map} +0 -0
- /package/dist/{HicApp-6F5CZ4JF.js.map → HicApp-RD3SPCWL.js.map} +0 -0
- /package/dist/{Volcano-W55BEJL7.js.map → Volcano-IYWZM3PL.js.map} +0 -0
- /package/dist/{WSISamplesPlot-MQYDFUUB.js.map → WSISamplesPlot-A2D7DZDG.js.map} +0 -0
- /package/dist/{adSandbox-JIKVDQG5.js.map → adSandbox-BWQ2FFJK.js.map} +0 -0
- /package/dist/{app-PSDRUVKO.js.map → app-5D6NIPRC.js.map} +0 -0
- /package/dist/{app-RU4G6RJL.js.map → app-BTVBJS2T.js.map} +0 -0
- /package/dist/{bam-BEJVXCD3.js.map → bam-UGAPGBAP.js.map} +0 -0
- /package/dist/{barchart-7DXGOGDY.js.map → barchart-5C2B4IAP.js.map} +0 -0
- /package/dist/{barchart.data-IZ47GMAQ.js.map → barchart.data-KX4TO4YE.js.map} +0 -0
- /package/dist/{barchart.events-6D2QGQSE.js.map → barchart.events-I5ML6KOM.js.map} +0 -0
- /package/dist/{block-6PGUBUET.js.map → block-RI3XWF2E.js.map} +0 -0
- /package/dist/{block.init-DR75BCPD.js.map → block.init-SKRMIKIG.js.map} +0 -0
- /package/dist/{block.mds.cnv-VPB63Q3Z.js.map → block.mds.cnv-YGC5YBAV.js.map} +0 -0
- /package/dist/{block.mds.expressionrank-FRQLBYDS.js.map → block.mds.expressionrank-ZUOZXURL.js.map} +0 -0
- /package/dist/{block.mds.geneboxplot-AA4BHZUM.js.map → block.mds.geneboxplot-EJ3U6RHY.js.map} +0 -0
- /package/dist/{block.mds.junction-FJH2OAF4.js.map → block.mds.junction-JR7RUZUV.js.map} +0 -0
- /package/dist/{block.mds.svcnv-MKRNZQ6Z.js.map → block.mds.svcnv-UQNJI3V3.js.map} +0 -0
- /package/dist/{block.mds2-SANVZHBP.js.map → block.mds2-FU24JY5G.js.map} +0 -0
- /package/dist/{block.svg-2GJPFJJ5.js.map → block.svg-UFWM3ROM.js.map} +0 -0
- /package/dist/{block.tk.aicheck-MR37R5IZ.js.map → block.tk.aicheck-FCMJUH73.js.map} +0 -0
- /package/dist/{block.tk.ase-KLMMIDAR.js.map → block.tk.ase-JYJ4DVIP.js.map} +0 -0
- /package/dist/{block.tk.bam-J7FKIMWE.js.map → block.tk.bam-V42ZUDXC.js.map} +0 -0
- /package/dist/{block.tk.bedgraphdot-CLFD442A.js.map → block.tk.bedgraphdot-QLSNEDXQ.js.map} +0 -0
- /package/dist/{block.tk.bigwig.ui-5Z5M4HXN.js.map → block.tk.bigwig.ui-DX2UDISS.js.map} +0 -0
- /package/dist/{block.tk.hicstraw-2UL2NEFT.js.map → block.tk.hicstraw-PEMIIKXN.js.map} +0 -0
- /package/dist/{block.tk.junction-PFNBL4P2.js.map → block.tk.junction-QBIZCDD3.js.map} +0 -0
- /package/dist/{block.tk.junction.textmatrixui-NCBUMSO5.js.map → block.tk.junction.textmatrixui-H55IAWJA.js.map} +0 -0
- /package/dist/{block.tk.ld-AFEIALQW.js.map → block.tk.ld-GOGSBHVR.js.map} +0 -0
- /package/dist/{block.tk.menu-OJKL6KAS.js.map → block.tk.menu-OVV2EG4P.js.map} +0 -0
- /package/dist/{block.tk.pgv-HN6FFIZI.js.map → block.tk.pgv-WU5VKBOX.js.map} +0 -0
- /package/dist/{boxplot-TFPDGKBE.js.map → boxplot-5JJGY7PG.js.map} +0 -0
- /package/dist/{brainImaging-RZ3UVF3U.js.map → brainImaging-7CASZTFY.js.map} +0 -0
- /package/dist/{categorical-ODHLHKAV.js.map → categorical-XCFCD44E.js.map} +0 -0
- /package/dist/{chunk-JKBFWQXL.js.map → chunk-2HK3WTEB.js.map} +0 -0
- /package/dist/{chunk-JLXENIK4.js.map → chunk-2PS46QKY.js.map} +0 -0
- /package/dist/{chunk-7E3UIFWF.js.map → chunk-3LI5UUDY.js.map} +0 -0
- /package/dist/{chunk-PQWFEDPP.js.map → chunk-3YTZ2C5I.js.map} +0 -0
- /package/dist/{chunk-RVM674Y3.js.map → chunk-5RGQ2I7Z.js.map} +0 -0
- /package/dist/{chunk-RU6QR6EC.js.map → chunk-64NHIVRH.js.map} +0 -0
- /package/dist/{chunk-RF24Y6FU.js.map → chunk-67NALKLR.js.map} +0 -0
- /package/dist/{chunk-T4RWJVPO.js.map → chunk-6VD4MMRS.js.map} +0 -0
- /package/dist/{chunk-AMSO624X.js.map → chunk-6VOTOFR2.js.map} +0 -0
- /package/dist/{chunk-AQJJTZM2.js.map → chunk-7JBXOZM6.js.map} +0 -0
- /package/dist/{chunk-ILMODPIP.js.map → chunk-A64GLQOF.js.map} +0 -0
- /package/dist/{chunk-4HXQR7R2.js.map → chunk-AARUGC2Z.js.map} +0 -0
- /package/dist/{chunk-QFFFWVBQ.js.map → chunk-BESJTF3M.js.map} +0 -0
- /package/dist/{chunk-AC2KVMUK.js.map → chunk-C2NS4O5Y.js.map} +0 -0
- /package/dist/{chunk-ILGDHPRE.js.map → chunk-C3OQKFGL.js.map} +0 -0
- /package/dist/{chunk-55RANC4Y.js.map → chunk-D5BGW7JO.js.map} +0 -0
- /package/dist/{chunk-LLYL3ZGG.js.map → chunk-DBWATZPQ.js.map} +0 -0
- /package/dist/{chunk-H2ATFHNV.js.map → chunk-DIFPJGF4.js.map} +0 -0
- /package/dist/{chunk-HP4UCPQY.js.map → chunk-EOFNHY7R.js.map} +0 -0
- /package/dist/{chunk-OPGWGY2Q.js.map → chunk-FRHY2LUS.js.map} +0 -0
- /package/dist/{chunk-4TK3QGYC.js.map → chunk-GDJSOS3O.js.map} +0 -0
- /package/dist/{chunk-XGTXUMLH.js.map → chunk-HRRIM5UY.js.map} +0 -0
- /package/dist/{chunk-NUI3U2P4.js.map → chunk-ICSOAMTB.js.map} +0 -0
- /package/dist/{chunk-5KD6YZFT.js.map → chunk-ID3GDVPY.js.map} +0 -0
- /package/dist/{chunk-SFMJ2FRS.js.map → chunk-IG4ZOPIV.js.map} +0 -0
- /package/dist/{chunk-2SK7XSZL.js.map → chunk-IYIJOJCM.js.map} +0 -0
- /package/dist/{chunk-XRRHABTH.js.map → chunk-J74GUO4C.js.map} +0 -0
- /package/dist/{chunk-XIREXPUZ.js.map → chunk-JELWOABQ.js.map} +0 -0
- /package/dist/{chunk-2BVIFUQQ.js.map → chunk-KCH4TGQM.js.map} +0 -0
- /package/dist/{chunk-U6TEYC4N.js.map → chunk-KTFKKFSZ.js.map} +0 -0
- /package/dist/{chunk-LFMQW2GW.js.map → chunk-LNB3AYLH.js.map} +0 -0
- /package/dist/{chunk-J67S3DTY.js.map → chunk-LNMC6SV5.js.map} +0 -0
- /package/dist/{chunk-AMX43Y6L.js.map → chunk-M4UOCZ3S.js.map} +0 -0
- /package/dist/{chunk-4CUJT2QV.js.map → chunk-MITIJZ4Y.js.map} +0 -0
- /package/dist/{chunk-ZDGUB2IV.js.map → chunk-MIW6L3BT.js.map} +0 -0
- /package/dist/{chunk-TNW5ME5A.js.map → chunk-NBNJSOFE.js.map} +0 -0
- /package/dist/{chunk-BA3LVIKU.js.map → chunk-NXFK6H54.js.map} +0 -0
- /package/dist/{chunk-FF4ROLX2.js.map → chunk-NZ7OE7FT.js.map} +0 -0
- /package/dist/{chunk-5CKM6VJC.js.map → chunk-OCGSEGIJ.js.map} +0 -0
- /package/dist/{chunk-4I4JML74.js.map → chunk-OGG5DOZQ.js.map} +0 -0
- /package/dist/{chunk-6N7AX5YL.js.map → chunk-OLLMWT7N.js.map} +0 -0
- /package/dist/{chunk-MY4BXUDJ.js.map → chunk-OML6JD4H.js.map} +0 -0
- /package/dist/{chunk-P5RCU3BF.js.map → chunk-ORTMVN37.js.map} +0 -0
- /package/dist/{chunk-IFEF3MNU.js.map → chunk-OVW22PNS.js.map} +0 -0
- /package/dist/{chunk-OAWBFRH5.js.map → chunk-OWWW575T.js.map} +0 -0
- /package/dist/{chunk-CXUIUQ76.js.map → chunk-P4QJJSDN.js.map} +0 -0
- /package/dist/{chunk-CTPT6J4U.js.map → chunk-PW637PAN.js.map} +0 -0
- /package/dist/{chunk-JOFO5OGK.js.map → chunk-QF5ZWPTJ.js.map} +0 -0
- /package/dist/{chunk-ZQON5PKF.js.map → chunk-QOGD7KB4.js.map} +0 -0
- /package/dist/{chunk-DGKO5A6M.js.map → chunk-RSOUDKZI.js.map} +0 -0
- /package/dist/{chunk-HUTHRZET.js.map → chunk-S2K3PIOU.js.map} +0 -0
- /package/dist/{chunk-O4YYTGHT.js.map → chunk-S3HZBM2W.js.map} +0 -0
- /package/dist/{chunk-5TMYKJY2.js.map → chunk-S7GUS2SW.js.map} +0 -0
- /package/dist/{chunk-UV6LHDLG.js.map → chunk-TIPW4WQT.js.map} +0 -0
- /package/dist/{chunk-XSG3EGZD.js.map → chunk-TQ6WD7FB.js.map} +0 -0
- /package/dist/{chunk-TOJ72OQT.js.map → chunk-TTLODFNX.js.map} +0 -0
- /package/dist/{chunk-QG7HTC3Y.js.map → chunk-TXGHOJ5F.js.map} +0 -0
- /package/dist/{chunk-QIBRVYKI.js.map → chunk-UE4QRX2Q.js.map} +0 -0
- /package/dist/{chunk-BGUEQL3C.js.map → chunk-URZOYAUG.js.map} +0 -0
- /package/dist/{chunk-MDQZZL3T.js.map → chunk-W67SGC3N.js.map} +0 -0
- /package/dist/{chunk-XD4QN5LU.js.map → chunk-WB7A63R5.js.map} +0 -0
- /package/dist/{chunk-6HIQNZWC.js.map → chunk-WG53KM6L.js.map} +0 -0
- /package/dist/{chunk-646FSQGX.js.map → chunk-WMH7EFRJ.js.map} +0 -0
- /package/dist/{chunk-BYCSIBZU.js.map → chunk-X4ELC4V6.js.map} +0 -0
- /package/dist/{chunk-NMTXVB7L.js.map → chunk-X6CVCU3G.js.map} +0 -0
- /package/dist/{chunk-UDMWOC44.js.map → chunk-XENW2QKK.js.map} +0 -0
- /package/dist/{chunk-JBUIT7YB.js.map → chunk-XYES63RM.js.map} +0 -0
- /package/dist/{chunk-EB3QMO4M.js.map → chunk-YDOGVE64.js.map} +0 -0
- /package/dist/{chunk-KXY7BPKZ.js.map → chunk-ZAXQ6ECN.js.map} +0 -0
- /package/dist/{chunk-ILGSAMZ3.js.map → chunk-ZHP4RH6A.js.map} +0 -0
- /package/dist/{chunk-DKG3YXCC.js.map → chunk-ZVIZAMPC.js.map} +0 -0
- /package/dist/{condition-74MGSNVC.js.map → condition-AHD6F3JG.js.map} +0 -0
- /package/dist/{controls-UV5VJBDG.js.map → controls-YDV4NOQV.js.map} +0 -0
- /package/dist/{controls.config-PNI3ZTR7.js.map → controls.config-ILVCTQ4M.js.map} +0 -0
- /package/dist/{correlationVolcano-22JZ5JOM.js.map → correlationVolcano-DX2NXTHF.js.map} +0 -0
- /package/dist/{cuminc-LNZFBFHE.js.map → cuminc-TBWQEHST.js.map} +0 -0
- /package/dist/{customdata.inputui-WAHJOQWS.js.map → customdata.inputui-NCJTO5KP.js.map} +0 -0
- /package/dist/{dataDownload-3MJJ5YOM.js.map → dataDownload-3RRXXU5L.js.map} +0 -0
- /package/dist/{databrowser.ui-KZTOWGJY.js.map → databrowser.ui-JXROV3IT.js.map} +0 -0
- /package/dist/{density-RAH3CU23.js.map → density-DYA5FUGR.js.map} +0 -0
- /package/dist/{dictionary-P3NRUDLC.js.map → dictionary-NRDJQHPR.js.map} +0 -0
- /package/dist/{e2pca-PBLUKJ2V.js.map → e2pca-Y5LVAYMS.js.map} +0 -0
- /package/dist/{ep-6ASUFY4U.js.map → ep-HTIPJE5X.js.map} +0 -0
- /package/dist/{expclust.gdc.spec-VG6MRFZQ.js.map → expclust.gdc.spec-QWLUC4WN.js.map} +0 -0
- /package/dist/{facet-WGSU4GBH.js.map → facet-BKHHQCKY.js.map} +0 -0
- /package/dist/{geneExpClustering-N2HNZGLT.js.map → geneExpClustering-CR4ZFLTD.js.map} +0 -0
- /package/dist/{geneExpression-UW4GLFKY.js.map → geneExpression-CZJK2QWG.js.map} +0 -0
- /package/dist/{geneExpression-K64WM5JZ.js.map → geneExpression-G6UNEEE2.js.map} +0 -0
- /package/dist/{geneExpression-VCPHCAN6.js.map → geneExpression-KVXPEIGD.js.map} +0 -0
- /package/dist/{geneORA-MOJSZYHD.js.map → geneORA-MF6ZNXLJ.js.map} +0 -0
- /package/dist/{genomeBrowser.controls-JS5QZZFD.js.map → geneVariant-TF4DDVNA.js.map} +0 -0
- /package/dist/{geneVariant-SX6Z42UL.js.map → geneVariant-V7GUQHCI.js.map} +0 -0
- /package/dist/{genefusion.ui-KZHDEJW3.js.map → genefusion.ui-CLKMP2LK.js.map} +0 -0
- /package/dist/{geneset-YP4XOM7V.js.map → geneset-U7YOM6JH.js.map} +0 -0
- /package/dist/{genomeBrowser-MMFF3FM6.js.map → genomeBrowser-WUN23XUH.js.map} +0 -0
- /package/dist/{groupsetting-ZPUQLKWA.js.map → genomeBrowser.controls-OBMQ5SUE.js.map} +0 -0
- /package/dist/{genomeBrowser.spec-BMFHD5JR.js.map → genomeBrowser.spec-RX4KA6XR.js.map} +0 -0
- /package/dist/{gsea-WIBNO4Q7.js.map → groupsetting-4T2KW2PR.js.map} +0 -0
- /package/dist/{hierCluster-FP56BHFP.js.map → gsea-57BRWTUV.js.map} +0 -0
- /package/dist/{hierCluster-QXHZXSWE.js.map → hierCluster-73DSVMZN.js.map} +0 -0
- /package/dist/{hierCluster.config-DUXIXFGD.js.map → hierCluster-PPFCQISB.js.map} +0 -0
- /package/dist/{hierCluster.interactivity-KSE4AGS6.js.map → hierCluster.config-BFGZSQUL.js.map} +0 -0
- /package/dist/{hierCluster.integration.spec-IBJISDXF.js.map → hierCluster.integration.spec-XXYDVXMK.js.map} +0 -0
- /package/dist/{hierCluster.renderers-VXM4BI3S.js.map → hierCluster.interactivity-Q2HRFMBD.js.map} +0 -0
- /package/dist/{launch.adhoc-NN5OHC43.js.map → hierCluster.renderers-VMMWFAKC.js.map} +0 -0
- /package/dist/{imagePlot-7A7S6LLB.js.map → imagePlot-SRNIKJZQ.js.map} +0 -0
- /package/dist/{matrix-PQ6Q57AC.js.map → launch.adhoc-KJ42NAAD.js.map} +0 -0
- /package/dist/{leftlabel.sample-7GCQVUW4.js.map → leftlabel.sample-IWOVBLNQ.js.map} +0 -0
- /package/dist/{lollipop-7J5YTVUT.js.map → lollipop-PFZKVGEM.js.map} +0 -0
- /package/dist/{maf-TCC7T5DI.js.map → maf-J5TOAPCW.js.map} +0 -0
- /package/dist/{maftimeline-6D6DMU33.js.map → maftimeline-YLYLYYCS.js.map} +0 -0
- /package/dist/{matrix-R4E4PMAB.js.map → matrix-2IJQVJWD.js.map} +0 -0
- /package/dist/{matrix.cells-OXUVWACV.js.map → matrix-OI6IE56Q.js.map} +0 -0
- /package/dist/{matrix.config-EUWFKESZ.js.map → matrix.cells-PSMYPTS6.js.map} +0 -0
- /package/dist/{matrix.controls-ZDV36QZ4.js.map → matrix.config-OQY4SQRA.js.map} +0 -0
- /package/dist/{matrix.data-FR4LF3EL.js.map → matrix.controls-T7S2UVP2.js.map} +0 -0
- /package/dist/{matrix.groups-LCMNQ7FR.js.map → matrix.data-PS2BX4PX.js.map} +0 -0
- /package/dist/{matrix.interactivity-DC57U5K4.js.map → matrix.groups-KL7I64XS.js.map} +0 -0
- /package/dist/{matrix.layout-PUQ4CZCC.js.map → matrix.interactivity-53RWX37V.js.map} +0 -0
- /package/dist/{matrix.legend-6QQ2ACZB.js.map → matrix.layout-GKP6KDHC.js.map} +0 -0
- /package/dist/{matrix.renderers-YMBDVRIP.js.map → matrix.legend-WNDAP6G3.js.map} +0 -0
- /package/dist/{matrix.serieses-YZMBNA4B.js.map → matrix.renderers-NSEWC2TP.js.map} +0 -0
- /package/dist/{matrix.sort-PQVYAXYW.js.map → matrix.serieses-K733SMN6.js.map} +0 -0
- /package/dist/{matrix.sorterUi-6E3SAUGF.js.map → matrix.sort-KH7SWIYX.js.map} +0 -0
- /package/dist/{matrix.sort.unit.spec-CMNE56MA.js.map → matrix.sort.unit.spec-KJ6ECU5W.js.map} +0 -0
- /package/dist/{numeric.discrete-IS47SOZ4.js.map → matrix.sorterUi-G7JZZ45T.js.map} +0 -0
- /package/dist/{matrix.sorterUi.unit.spec-G6WQ5NPD.js.map → matrix.sorterUi.unit.spec-KW4GWG3W.js.map} +0 -0
- /package/dist/{mavb-HWYBSC2W.js.map → mavb-7MNBAC3K.js.map} +0 -0
- /package/dist/{mds.fimo-ITEREXV2.js.map → mds.fimo-URV4C2LR.js.map} +0 -0
- /package/dist/{mds.samplescatterplot-HJX7WGPG.js.map → mds.samplescatterplot-HWST5GMI.js.map} +0 -0
- /package/dist/{mds.survivalplot-TBXP7DK3.js.map → mds.survivalplot-LFMJJRO5.js.map} +0 -0
- /package/dist/{metaboliteIntensity-AIDRCRFG.js.map → metaboliteIntensity-3OSAHAZA.js.map} +0 -0
- /package/dist/{numeric-4BOMJFG7.js.map → numeric-HIIGHWQM.js.map} +0 -0
- /package/dist/{numeric.binary-KDQUZP3J.js.map → numeric.binary-62JMINEJ.js.map} +0 -0
- /package/dist/{numeric.continuous-IYMQFQZD.js.map → numeric.continuous-AVGTAP4W.js.map} +0 -0
- /package/dist/{numeric.toggle-DVUGN4DL.js.map → numeric.discrete-U45FOSA2.js.map} +0 -0
- /package/dist/{numeric.spline-IY245N32.js.map → numeric.spline-IJM5BIRM.js.map} +0 -0
- /package/dist/{plot.app-FOANGEWK.js.map → numeric.toggle-IJDQK73D.js.map} +0 -0
- /package/dist/{numericDictTermCluster-PGKZDKGV.js.map → numericDictTermCluster-SPAHON6F.js.map} +0 -0
- /package/dist/{oncomatrix-PJMSEJG2.js.map → oncomatrix-VDN4RRIP.js.map} +0 -0
- /package/dist/{oncomatrix.spec-CTFRKN36.js.map → oncomatrix.spec-PWY6LDTM.js.map} +0 -0
- /package/dist/{plot.2dvaf-ZSKHIUQU.js.map → plot.2dvaf-J6Z3HSAA.js.map} +0 -0
- /package/dist/{profilePlot-EKYLZESX.js.map → plot.app-6XCNZM3H.js.map} +0 -0
- /package/dist/{plot.barplot-TW2DVVS5.js.map → plot.barplot-4JF4SXW4.js.map} +0 -0
- /package/dist/{plot.boxplot-QJ7UHWCM.js.map → plot.boxplot-YFMXTXRL.js.map} +0 -0
- /package/dist/{plot.brainImaging-ARN4XT4I.js.map → plot.brainImaging-KYOURHGI.js.map} +0 -0
- /package/dist/{plot.disco-AOPG66C2.js.map → plot.disco-7R3SW2WD.js.map} +0 -0
- /package/dist/{plot.dzi-VPUCJN3X.js.map → plot.dzi-M3XXFJPU.js.map} +0 -0
- /package/dist/{plot.ssgq-ASMT5UUQ.js.map → plot.ssgq-OCDEWIG7.js.map} +0 -0
- /package/dist/{plot.vaf2cov-FRKYLCCS.js.map → plot.vaf2cov-OKL2MHRY.js.map} +0 -0
- /package/dist/{plot.wsi-WZWXQBSW.js.map → plot.wsi-PXSZ3B25.js.map} +0 -0
- /package/dist/{profile.spec-DRG7IH2E.js.map → profile.spec-SW43FV5L.js.map} +0 -0
- /package/dist/{profileBarchart-JV5UON5S.js.map → profileBarchart-JCA62VHN.js.map} +0 -0
- /package/dist/{profileForms-2LDFFTCT.js.map → profileForms-KSZJFRTK.js.map} +0 -0
- /package/dist/{regression-HZXWXQTO.js.map → profilePlot-JTEAEIPD.js.map} +0 -0
- /package/dist/{profilePolar-JNJLTEG2.js.map → profilePolar-ORZLDPCA.js.map} +0 -0
- /package/dist/{profileRadar-VFW4HZJP.js.map → profileRadar-CRERKLWP.js.map} +0 -0
- /package/dist/{profileRadarFacility-OSIVKALN.js.map → profileRadarFacility-PCUDRVTA.js.map} +0 -0
- /package/dist/{regression.inputs-C7ZRBGKJ.js.map → regression-X4MA2XND.js.map} +0 -0
- /package/dist/{regression.inputs.term-CTLDQBRU.js.map → regression.inputs-J53NNLTE.js.map} +0 -0
- /package/dist/{regression.inputs.values.table-WUGHKDL5.js.map → regression.inputs.term-W327LBEU.js.map} +0 -0
- /package/dist/{regression.results-CXIQJOPR.js.map → regression.inputs.values.table-IABHPFHS.js.map} +0 -0
- /package/dist/{sampleScatter-VWML4FSB.js.map → regression.results-5PXUMHKO.js.map} +0 -0
- /package/dist/{runChart-L46GTLIU.js.map → runChart-ZYQ42SZP.js.map} +0 -0
- /package/dist/{sampleScatter.interactivity-AHQPXXNB.js.map → sampleScatter-YPRYBFJ3.js.map} +0 -0
- /package/dist/{sampleScatter.renderer-QW7YYS6L.js.map → sampleScatter.interactivity-TIK4AZ2Z.js.map} +0 -0
- /package/dist/{sampleScatter.rendererThree-TKALY7NZ.js.map → sampleScatter.renderer-NMBANUVL.js.map} +0 -0
- /package/dist/{sampleView-47FQQDKN.js.map → sampleScatter.rendererThree-T2COOBXO.js.map} +0 -0
- /package/dist/{singleCellPlot-CGDZTTPT.js.map → sampleView-66AHN2C5.js.map} +0 -0
- /package/dist/{samplelst-QJ2YLS3Z.js.map → samplelst-M4LHD4G7.js.map} +0 -0
- /package/dist/{samplematrix-IY6R6ZWK.js.map → samplematrix-S2XBQRNH.js.map} +0 -0
- /package/dist/{sc-5MTTQ2P2.js.map → sc-EOEA3G3T.js.map} +0 -0
- /package/dist/{scatter-O5IJ7PHH.js.map → scatter-2ATRQY3N.js.map} +0 -0
- /package/dist/{selectGenomeWithTklst-FDIADQFC.js.map → selectGenomeWithTklst-4EFDQ2Y5.js.map} +0 -0
- /package/dist/{singleCellCellType-VHZ52IOL.js.map → singleCellCellType-YRINK7IM.js.map} +0 -0
- /package/dist/{singleCellGeneExpression-ZZQONONU.js.map → singleCellGeneExpression-O7XELPN6.js.map} +0 -0
- /package/dist/{summary-HHGZERBU.js.map → singleCellPlot-V5M2LIWK.js.map} +0 -0
- /package/dist/{singlecell-CHWD63MS.js.map → singlecell-5TSF4FKJ.js.map} +0 -0
- /package/dist/{singlecell-77WJ6NDL.js.map → singlecell-GVC7WS5P.js.map} +0 -0
- /package/dist/{snp-3OCGSURG.js.map → snp-R4Q35SNK.js.map} +0 -0
- /package/dist/{snp-OQQGESIY.js.map → snp-Z6HTJXYH.js.map} +0 -0
- /package/dist/{snplocus-NTDRKSPU.js.map → snplocus-FW2BNEWK.js.map} +0 -0
- /package/dist/{spliceevent.a53ss.diagram-S5MBQF44.js.map → spliceevent.a53ss.diagram-JB3JMIOR.js.map} +0 -0
- /package/dist/{spliceevent.exonskip.diagram-NPAJPBRH.js.map → spliceevent.exonskip.diagram-YZOSM4ME.js.map} +0 -0
- /package/dist/{spliceevent.noeventdiagram-53CA3HSO.js.map → spliceevent.noeventdiagram-CJ2YF4BL.js.map} +0 -0
- /package/dist/{tk-MIGY56TX.js.map → summary-TAWMUNBI.js.map} +0 -0
- /package/dist/{sunburst-B2Q7ZZKN.js.map → sunburst-VFV6AWG5.js.map} +0 -0
- /package/dist/{survival-UO3XA2PU.js.map → survival-2MOV3O4F.js.map} +0 -0
- /package/dist/{survival-ISVXD7JG.js.map → survival-SFPKYBKC.js.map} +0 -0
- /package/dist/{svgraph-XF4LFSRJ.js.map → svgraph-AK7D2VCC.js.map} +0 -0
- /package/dist/{svmr-QH76VAVC.js.map → svmr-JCEJ4TJO.js.map} +0 -0
- /package/dist/{table-DBV2MV4U.js.map → table-ROKYOVKK.js.map} +0 -0
- /package/dist/{tvs.density-QZOHE2KZ.js.map → tk-CC5652UA.js.map} +0 -0
- /package/dist/{tp.ui-2ROKDK6O.js.map → tp.ui-STSBBTCX.js.map} +0 -0
- /package/dist/{tvs.numeric-VIWNLOZF.js.map → tvs.density-3F5TI23V.js.map} +0 -0
- /package/dist/{violin-7MZ36YEZ.js.map → tvs.dt-WW6UIG7R.js.map} +0 -0
- /package/dist/{violin.interactivity-D5CPXRU5.js.map → tvs.numeric-5QWN6FDF.js.map} +0 -0
- /package/dist/{tvs.samplelst-4H6XLODP.js.map → tvs.samplelst-BNMFOJ5A.js.map} +0 -0
- /package/dist/{violin.renderer-GMFQHIDA.js.map → violin-7ISPEC5F.js.map} +0 -0
- /package/dist/{vocabulary-BF3COF7T.js.map → violin.interactivity-3CT3L5M7.js.map} +0 -0
- /package/dist/{volcano-FNUBGQJ2.js.map → violin.renderer-BFXIWYEG.js.map} +0 -0
|
@@ -10,16 +10,18 @@ import {
|
|
|
10
10
|
newpane3,
|
|
11
11
|
sayerror,
|
|
12
12
|
to_svg
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-QOGD7KB4.js";
|
|
14
|
+
import {
|
|
15
|
+
Menu
|
|
16
|
+
} from "./chunk-4PXHF7JJ.js";
|
|
14
17
|
import {
|
|
15
18
|
make_table_2col
|
|
16
19
|
} from "./chunk-ACT3S5BW.js";
|
|
17
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-QF5ZWPTJ.js";
|
|
18
21
|
import {
|
|
19
22
|
mclass,
|
|
20
23
|
mclassnonstandard
|
|
21
|
-
} from "./chunk-
|
|
22
|
-
import "./chunk-RA5EXEHB.js";
|
|
24
|
+
} from "./chunk-PMUAK7AU.js";
|
|
23
25
|
import {
|
|
24
26
|
Symbol,
|
|
25
27
|
circle_default,
|
|
@@ -29,7 +31,8 @@ import {
|
|
|
29
31
|
star_default,
|
|
30
32
|
triangle_default,
|
|
31
33
|
wye_default
|
|
32
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-YDOGVE64.js";
|
|
35
|
+
import "./chunk-RA5EXEHB.js";
|
|
33
36
|
import {
|
|
34
37
|
axisBottom,
|
|
35
38
|
axisLeft,
|
|
@@ -40,15 +43,12 @@ import {
|
|
|
40
43
|
format,
|
|
41
44
|
linear
|
|
42
45
|
} from "./chunk-L3PIFRMN.js";
|
|
43
|
-
import "./chunk-
|
|
44
|
-
import "./chunk-4HXQR7R2.js";
|
|
45
|
-
import "./chunk-LH4ROHRD.js";
|
|
46
|
-
import {
|
|
47
|
-
Menu
|
|
48
|
-
} from "./chunk-4PXHF7JJ.js";
|
|
46
|
+
import "./chunk-AARUGC2Z.js";
|
|
49
47
|
import {
|
|
50
48
|
select_default
|
|
51
49
|
} from "./chunk-NDWTN4U5.js";
|
|
50
|
+
import "./chunk-LH4ROHRD.js";
|
|
51
|
+
import "./chunk-3X4AWNST.js";
|
|
52
52
|
import "./chunk-HFNDKYVF.js";
|
|
53
53
|
|
|
54
54
|
// src/2dmaf.anchors.js
|
|
@@ -1358,4 +1358,4 @@ export {
|
|
|
1358
1358
|
d2mafparseinput,
|
|
1359
1359
|
d2mafui
|
|
1360
1360
|
};
|
|
1361
|
-
//# sourceMappingURL=2dmaf-
|
|
1361
|
+
//# sourceMappingURL=2dmaf-OLRVSAMU.js.map
|
|
@@ -1,34 +1,29 @@
|
|
|
1
1
|
import {
|
|
2
2
|
makeButton,
|
|
3
3
|
openSandbox
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import {
|
|
6
|
-
InputSearch
|
|
7
|
-
} from "./chunk-CENNOYLW.js";
|
|
8
|
-
import "./chunk-5QFQN4X5.js";
|
|
9
|
-
import "./chunk-TNW5ME5A.js";
|
|
10
|
-
import "./chunk-AC2KVMUK.js";
|
|
11
|
-
import "./chunk-DKG3YXCC.js";
|
|
12
|
-
import "./chunk-LFMQW2GW.js";
|
|
13
|
-
import "./chunk-4I4JML74.js";
|
|
14
|
-
import "./chunk-2SK7XSZL.js";
|
|
15
|
-
import "./chunk-AMSO624X.js";
|
|
16
|
-
import "./chunk-LLOFSEKN.js";
|
|
4
|
+
} from "./chunk-OWWW575T.js";
|
|
17
5
|
import {
|
|
18
6
|
get_tklst
|
|
19
|
-
} from "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-3YTZ2C5I.js";
|
|
8
|
+
import "./chunk-TIPW4WQT.js";
|
|
9
|
+
import "./chunk-RSOUDKZI.js";
|
|
22
10
|
import "./chunk-MKAF2BHB.js";
|
|
23
11
|
import {
|
|
24
12
|
urlmap_default
|
|
25
13
|
} from "./chunk-RS3G3HE7.js";
|
|
26
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-WG53KM6L.js";
|
|
27
15
|
import "./chunk-3MHUREQ3.js";
|
|
28
16
|
import "./chunk-IQIXGTQV.js";
|
|
29
17
|
import {
|
|
30
18
|
block_init_default
|
|
31
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-EOFNHY7R.js";
|
|
20
|
+
import {
|
|
21
|
+
InputSearch
|
|
22
|
+
} from "./chunk-H4HSIJPQ.js";
|
|
23
|
+
import "./chunk-5QFQN4X5.js";
|
|
24
|
+
import "./chunk-NBNJSOFE.js";
|
|
25
|
+
import "./chunk-OGG5DOZQ.js";
|
|
26
|
+
import "./chunk-6VOTOFR2.js";
|
|
32
27
|
import {
|
|
33
28
|
newSandboxDiv
|
|
34
29
|
} from "./chunk-537FIK5B.js";
|
|
@@ -41,37 +36,42 @@ import "./chunk-T2IYLCS6.js";
|
|
|
41
36
|
import {
|
|
42
37
|
string2pos
|
|
43
38
|
} from "./chunk-J4ZN3LJN.js";
|
|
39
|
+
import "./chunk-C2NS4O5Y.js";
|
|
40
|
+
import "./chunk-ZVIZAMPC.js";
|
|
41
|
+
import "./chunk-LNB3AYLH.js";
|
|
42
|
+
import "./chunk-IYIJOJCM.js";
|
|
44
43
|
import {
|
|
45
44
|
first_genetrack_tolist,
|
|
46
45
|
sayerror
|
|
47
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-QOGD7KB4.js";
|
|
47
|
+
import "./chunk-4PXHF7JJ.js";
|
|
48
48
|
import "./chunk-ACT3S5BW.js";
|
|
49
49
|
import {
|
|
50
50
|
dofetch3
|
|
51
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-QF5ZWPTJ.js";
|
|
52
52
|
import {
|
|
53
53
|
defaultcolor
|
|
54
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-PMUAK7AU.js";
|
|
55
|
+
import "./chunk-YDOGVE64.js";
|
|
55
56
|
import "./chunk-RA5EXEHB.js";
|
|
56
|
-
import "./chunk-EB3QMO4M.js";
|
|
57
57
|
import "./chunk-LOZEKOES.js";
|
|
58
58
|
import "./chunk-TOU7EVFQ.js";
|
|
59
59
|
import "./chunk-L3PIFRMN.js";
|
|
60
|
+
import "./chunk-5OHXYXLD.js";
|
|
61
|
+
import "./chunk-AARUGC2Z.js";
|
|
62
|
+
import {
|
|
63
|
+
select_default
|
|
64
|
+
} from "./chunk-NDWTN4U5.js";
|
|
65
|
+
import {
|
|
66
|
+
rgb
|
|
67
|
+
} from "./chunk-LH4ROHRD.js";
|
|
68
|
+
import "./chunk-LLOFSEKN.js";
|
|
60
69
|
import {
|
|
61
70
|
getAppInit,
|
|
62
71
|
getCompInit,
|
|
63
72
|
getInitFxn,
|
|
64
73
|
getStoreInit
|
|
65
74
|
} from "./chunk-3X4AWNST.js";
|
|
66
|
-
import "./chunk-5OHXYXLD.js";
|
|
67
|
-
import "./chunk-4HXQR7R2.js";
|
|
68
|
-
import {
|
|
69
|
-
rgb
|
|
70
|
-
} from "./chunk-LH4ROHRD.js";
|
|
71
|
-
import "./chunk-4PXHF7JJ.js";
|
|
72
|
-
import {
|
|
73
|
-
select_default
|
|
74
|
-
} from "./chunk-NDWTN4U5.js";
|
|
75
75
|
import "./chunk-HFNDKYVF.js";
|
|
76
76
|
|
|
77
77
|
// src/header/omniSearch.js
|
|
@@ -223,7 +223,7 @@ async function findgene2paint(str, app, genomename, jwt) {
|
|
|
223
223
|
debugmode: app.debugmode
|
|
224
224
|
};
|
|
225
225
|
first_genetrack_tolist(g, par2.tklst);
|
|
226
|
-
import("./block-
|
|
226
|
+
import("./block-RI3XWF2E.js").then((b) => new b.Block(par2)).catch((err) => {
|
|
227
227
|
app.error0(err);
|
|
228
228
|
});
|
|
229
229
|
return;
|
|
@@ -319,7 +319,9 @@ function setRenderers(self) {
|
|
|
319
319
|
value: false
|
|
320
320
|
});
|
|
321
321
|
slideDrawer(self);
|
|
322
|
-
|
|
322
|
+
setTimeout(async () => {
|
|
323
|
+
await openSandbox(self.opts.element, self.opts);
|
|
324
|
+
}, self.state.duration + 5);
|
|
323
325
|
});
|
|
324
326
|
}
|
|
325
327
|
|
|
@@ -805,7 +807,7 @@ var AppHeader = class _AppHeader {
|
|
|
805
807
|
debugmode: app.debugmode
|
|
806
808
|
};
|
|
807
809
|
first_genetrack_tolist(g, par.tklst);
|
|
808
|
-
import("./block-
|
|
810
|
+
import("./block-RI3XWF2E.js").then((b) => new b.Block(par));
|
|
809
811
|
app.drawer.dispatch({ type: "is_apps_btn_active", value: false });
|
|
810
812
|
});
|
|
811
813
|
return g_browser_btn;
|
|
@@ -818,4 +820,4 @@ var AppHeader = class _AppHeader {
|
|
|
818
820
|
export {
|
|
819
821
|
AppHeader
|
|
820
822
|
};
|
|
821
|
-
//# sourceMappingURL=AppHeader-
|
|
823
|
+
//# sourceMappingURL=AppHeader-424UQUH3.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/header/omniSearch.js", "../appdrawer/card.js", "../appdrawer/dsButton.js", "../appdrawer/layout.js", "../appdrawer/mainBtn.js", "../appdrawer/store.js", "../appdrawer/app.js", "../src/header/AppHeader.ts"],
|
|
4
|
-
"sourcesContent": ["import { dofetch3 } from '#common/dofetch'\nimport { openSandbox } from '../../appdrawer/adSandbox'\nimport { newSandboxDiv, throwMsgWithFilePathAndFnName } from '#dom'\nimport { string2pos } from '../coord'\nimport * as parseurl from '../app.parseurl'\nimport urlmap from '#common/urlmap'\nimport { first_genetrack_tolist } from '#common/1stGenetk'\nimport blockinit from '../block.init'\nimport { select as d3select } from 'd3-selection'\n\n/*\n----EXPORTED----\nsearchItems()\nfindgenelst()\nfindgene2paint()\n\n----Internal----\nfindAppDrawerElements()\ngetExampleNames()\ngetFilteredElements()\n*/\n\nexport async function searchItems(app, tip, help, publications, jwt) {\n\tconst userInput = d3select('input').property('value').trim()\n\tconst data = [\n\t\t{\n\t\t\ttitle: 'Genes',\n\t\t\tdefault: true,\n\t\t\titems: await findgenelst(userInput, app.selectgenome.property('value'), jwt),\n\t\t\tcolor: '#F2F2F2',\n\t\t\tcallback: d => {\n\t\t\t\tapp.drawer.dispatch({ type: 'is_apps_btn_active', value: false })\n\t\t\t\ttip.hide()\n\t\t\t\tfindgene2paint(d, app, app.selectgenome.property('value'), jwt)\n\t\t\t}\n\t\t}\n\t]\n\tawait findAppDrawerElements(app, userInput, data, tip)\n\t//Keep 'Help' section second last\n\tdata.push({\n\t\ttitle: 'Help',\n\t\tdefault: false,\n\t\titems: help.filter(d => d.label.toLowerCase().includes(userInput.toLowerCase())),\n\t\tcolor: '#faebd9',\n\t\tcallback: d => {\n\t\t\twindow.open(d.link, d.label)\n\t\t}\n\t})\n\tdata.push({\n\t\ttitle: 'Publications',\n\t\tdefault: false,\n\t\titems: publications.filter(\n\t\t\td =>\n\t\t\t\td.title.toLowerCase().includes(userInput.toLowerCase()) ||\n\t\t\t\td.appHeaderTitle.toLowerCase().includes(userInput.toLowerCase())\n\t\t),\n\t\tcolor: '#E6E6FA',\n\t\tcallback: d => {\n\t\t\twindow.open(d.doi, d.title)\n\t\t}\n\t})\n\treturn data\n}\n\nasync function findAppDrawerElements(app, input, data, tip) {\n\tconst re = await dofetch3(app.cardsPath + '/index.json')\n\tif (re.error) throwMsgWithFilePathAndFnName(`Problem retrieving ../cards/index.json`)\n\tconst userInput = input.toLowerCase().trim()\n\tconst elements = [...re.elements]\n\tlet filteredElements\n\tif (userInput.length > 2) {\n\t\t/** Adding the examples to the search terms is expensive\n\t\t * Limit when all card files are loaded based on user input\n\t\t * Maybe timeout instead? or combination of the two?\n\t\t */\n\t\tawait getExampleNames(elements, app)\n\t\tfilteredElements = getFilteredElements(elements, userInput)\n\t} else {\n\t\tfilteredElements = getFilteredElements(elements, userInput)\n\t}\n\n\tconst opts = {\n\t\tapp: app.drawer.opts,\n\t\tsandboxDiv: app.drawer.opts.sandboxDiv,\n\t\tgenomes: app.genomes,\n\t\tfromApp: true\n\t}\n\n\tdata.push(\n\t\t{\n\t\t\ttitle: 'Tracks and Apps',\n\t\t\titems: filteredElements.filter(c => c.type == 'card'),\n\t\t\tcolor: '#e1edf7',\n\t\t\tcallback: element => {\n\t\t\t\tapp.drawer.dispatch({ type: 'is_apps_btn_active', value: false })\n\t\t\t\ttip.hide()\n\t\t\t\topenSandbox(element, opts)\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\ttitle: 'Datasets',\n\t\t\titems: filteredElements.filter(c => c.type == 'dsButton'),\n\t\t\tcolor: '#e5f5e4',\n\t\t\tcallback: element => {\n\t\t\t\tapp.drawer.dispatch({ type: 'is_apps_btn_active', value: false })\n\t\t\t\ttip.hide()\n\t\t\t\topenSandbox(element, opts)\n\t\t\t}\n\t\t}\n\t)\n\treturn data\n}\n\nasync function getExampleNames(elements, app) {\n\tconst promises = elements.map(async elem => {\n\t\tif (elem.hidden || elem.type != 'card' || !elem.sandboxJson) return elem\n\t\tconst exs = await dofetch3(app.cardsPath + `/${elem.sandboxJson}.json`)\n\t\tif (exs?.ppcalls.length > 0) {\n\t\t\tfor (const c of exs.ppcalls) {\n\t\t\t\tif (c.isUI) return\n\t\t\t\tif (c?.label) elem.searchterms.push(c.label)\n\t\t\t}\n\t\t}\n\t})\n\n\tawait Promise.all(promises)\n}\n\nfunction getFilteredElements(elements, userInput) {\n\treturn elements\n\t\t.filter(elem => {\n\t\t\tif (elem.hidden) return false\n\t\t\tlet searchTermFound = (elem.searchterms || []).reduce((searchTermFound, searchTerm) => {\n\t\t\t\tif (searchTermFound) return true\n\t\t\t\treturn searchTerm.toLowerCase().includes(userInput)\n\t\t\t}, false)\n\t\t\treturn searchTermFound || elem.name.toLowerCase().includes(userInput)\n\t\t})\n\t\t.sort((a, b) => a.name.localeCompare(b.name))\n}\n\nexport async function findgenelst(str, genome, jwt) {\n\t//TODO - including something here about if user input includes a special character to return rather than comment out catch\n\tif (str.length == 0) return\n\ttry {\n\t\tconst data = await dofetch3('/genelookup', {\n\t\t\tbody: {\n\t\t\t\tinput: str,\n\t\t\t\tgenome,\n\t\t\t\tjwt\n\t\t\t}\n\t\t})\n\n\t\tif (data.error) throw data.error\n\t\tif (!data.hits) throw '.hits[] missing'\n\t\treturn data.hits\n\t} catch (err) {\n\t\t// err is likely \"invalid character in gene name\". ignore and continue\n\t\t// if (err.stack) console.log(err.stack)\n\t\t// throw err\n\t}\n}\n\nexport async function findgene2paint(str, app, genomename, jwt) {\n\tconst g = app.genomes[genomename]\n\tif (!g) {\n\t\tconsole.error('unknown genome ' + genomename)\n\t\treturn\n\t}\n\tconst sandbox_div = newSandboxDiv(app.drawer.opts.sandboxDiv)\n\tsandbox_div.header.html(\n\t\t'<div style=\"display:inline-block;\">' +\n\t\t\tstr +\n\t\t\t'</div><div class=\"sjpp-output-sandbox-title\">' +\n\t\t\tgenomename +\n\t\t\t'</div>'\n\t)\n\t// may yield tklst from url parameters\n\tconst urlp = urlmap()\n\tconst tklst = await parseurl.get_tklst(urlp, g)\n\n\tconst pos = string2pos(str, g)\n\tif (pos) {\n\t\t// input is coordinate, launch block\n\t\tconst par = {\n\t\t\thostURL: app.hostURL,\n\t\t\tjwt,\n\t\t\tholder: sandbox_div.body,\n\t\t\tgenome: g,\n\t\t\tnobox: true,\n\t\t\tchr: pos.chr,\n\t\t\tstart: pos.start - 1, // entered positions are 1-based. block uses 0-based\n\t\t\tstop: pos.stop - 1,\n\t\t\tdogtag: genomename,\n\t\t\ttklst,\n\t\t\tdebugmode: app.debugmode\n\t\t}\n\t\tfirst_genetrack_tolist(g, par.tklst)\n\n\t\timport('../block.js')\n\t\t\t.then(b => new b.Block(par))\n\t\t\t.catch(err => {\n\t\t\t\tapp.error0(err)\n\t\t\t})\n\t\treturn\n\t}\n\n\t// input string is not coordinate, find gene match\n\tconst par = {\n\t\thostURL: app.hostURL,\n\t\tjwt,\n\t\tquery: str,\n\t\tgenome: g,\n\t\tholder: sandbox_div.body,\n\t\tvariantPageCall_snv: app.variantPageCall_snv,\n\t\tsamplecart: app.samplecart,\n\t\ttklst,\n\t\tdebugmode: app.debugmode\n\t}\n\n\t// add svcnv tk from url param\n\tconst tmp = sessionStorage.getItem('urlp_mds')\n\tif (tmp) {\n\t\tconst l = tmp.split(',')\n\t\tif (l.length == 2) {\n\t\t\tpar.datasetqueries = [{ dataset: l[0], querykey: l[1] }]\n\t\t}\n\t}\n\n\tawait blockinit(par)\n}\n", "import { getCompInit } from '#rx'\nimport { rgb } from 'd3-color'\nimport { openSandbox } from './adSandbox'\nimport { slideDrawer } from './mainBtn'\n\n/*\n.opts{\n\t.app{\n\t\t.holder\n\t\t.element{}\n\t\t.sandboxDiv\n\t}\n}\n\nTODOs: \n\n- responsiveness of image on window resize \n\t- expand image size on resize\n\t- non square, take better use of space\n- Need fn in utils to decide black or white text based on background color contrast\n- Unify card and nestedCard layout. Only call one layout function for both\n\t- optional non image card layout\n\t- Make ribbons appear on nested cards\n- element.section only required if columnsLayout provided\n\n*/\n\nclass AppDrawerCard {\n\t// handles types 'card' and 'nestedCard'\n\tconstructor(opts) {\n\t\tthis.type = 'card'\n\t\tthis.opts = this.validateOpts(opts)\n\t\tthis.holder = opts.holder\n\t\tthis.dom = opts.dom\n\t\tthis.sandboxDiv = opts.sandboxDiv\n\t\tsetRenderers(this)\n\t}\n\n\tvalidateOpts(opts) {\n\t\tif (!opts.element.name) throw `Card .name is missing`\n\t\tif (opts.element.type == 'card') {\n\t\t\tif (!opts.element.sandboxJson && !opts.element.sandboxHtml)\n\t\t\t\tthrow `Either .sandboxJson or .sandboxHtml is missing for card=${opts.element.name}`\n\t\t}\n\t\tif (opts.element.type == 'nestedCard') {\n\t\t\tif (!opts.element.children || opts.element.children.length == 0)\n\t\t\t\tthrow `Missing .children for nested card = ${opts.element.name}`\n\t\t}\n\t\tif (opts.element.ribbon) {\n\t\t\tif (!opts.element.ribbon.text) throw `Missing ribbon .text for ${opts.element.type} = ${opts.element.name}`\n\n\t\t\t//ProteinPaint app drawer specific validation\n\t\t\tif (\n\t\t\t\t(opts.element.ribbon.text.toUpperCase() == 'NEW' || opts.element.ribbon.text.toUpperCase() == 'UPDATED') &&\n\t\t\t\t!opts.element.ribbon.expireDate\n\t\t\t)\n\t\t\t\tthrow `${opts.element.type} = ${\n\t\t\t\t\topts.element.name\n\t\t\t\t} ribbon is ${opts.element.ribbon.text.toUpperCase()} but .expireDate is missing. Please provide`\n\n\t\t\tif (opts.element.ribbon.expireDate) {\n\t\t\t\tif (opts.element.ribbon.expireDate >= 0) {\n\t\t\t\t\tthrow `Flag for ${opts.element.type} = ${opts.element.name} is not a valid date`\n\t\t\t\t} //TODO add validation for format?\n\t\t\t}\n\t\t}\n\t\treturn opts\n\t}\n\n\tmain() {}\n}\n\nexport const cardInit = getCompInit(AppDrawerCard)\n\nfunction setRenderers(self) {\n\tconst card = self.holder.append('li')\n\tif (self.opts.element.type == 'card') {\n\t\tcard.classed('sjpp-track', true).html(\n\t\t\t`<div class=\"sjpp-track-h\"><span style=\"font-size:14.5px;font-weight:500;\">${self.opts.element.name}</span></div>\n\t\t\t\t${\n\t\t\t\t\tself.opts.element.description\n\t\t\t\t\t\t? `<span class=\"sjpp-track-blurb\" style=\"cursor:default\">${self.opts.element.description}</span></div>`\n\t\t\t\t\t\t: ' '\n\t\t\t\t}\n\t\t\t\t<span class=\"sjpp-track-image\"><img src=\"${self.opts.element.image}\" alt=\"${\n\t\t\t\tself.opts.element.description\n\t\t\t}\"></img></span>\n\t\t\t\t</div>`\n\t\t)\n\t} else if (self.opts.element.type == 'nestedCard') {\n\t\tcard.classed('sjpp-app-drawer-card', true).html(\n\t\t\t`<p style=\"margin-left: 12px; font-size:14.5px;font-weight:500; display: block;\">${self.opts.element.name}</p>\n\t\t\t<p style=\"display: block; font-size: 13px; font-weight: 300; margin-left: 20px; justify-content: center; font-style:oblique; color: #403f3f;\">${self.opts.element.description}</p>`\n\t\t)\n\t}\n\n\tself.makeRibbon = function(ribbon) {\n\t\t//only relevant for 'card', not 'nestedCard'\n\t\tconst ribbonDiv = card\n\t\t\t.append('div')\n\t\t\t.classed('sjpp-app-drawer-card-ribbon', true)\n\t\t\t.style('align-items', 'center')\n\t\t\t.style('justify-content', 'center')\n\n\t\t//*********TODO: move from diagonal to straight on right side */\n\t\tconst text = ribbon.text.toUpperCase()\n\t\t//Enforce color palette for proteinpaint homepage ribbons\n\t\tconst color =\n\t\t\ttext == 'BETA'\n\t\t\t\t? '#418cb5'\n\t\t\t\t: text == 'NEW'\n\t\t\t\t? '#1ba176'\n\t\t\t\t: text == 'UPDATED'\n\t\t\t\t? 'orange'\n\t\t\t\t: ribbon.color\n\t\t\t\t? ribbon.color\n\t\t\t\t: 'red'\n\n\t\tribbonDiv\n\t\t\t.append('span')\n\t\t\t.text(text)\n\t\t\t.style('color', 'white')\n\t\t\t.style('background-color', rgb(color).darker())\n\t\t\t.style('height', 'auto')\n\t\t\t.style('width', '100%')\n\t\t\t.style('top', '15%')\n\t\t\t.style('left', '-30%')\n\t\t\t.style('font-size', '11.5px')\n\t\t\t.style('text-transform', 'uppercase')\n\t\t\t.style('text-align', 'center')\n\t}\n\n\tif (self.opts.element.ribbon) {\n\t\tconst today = new Date()\n\t\tconst ribbonExpireDate = new Date(self.opts.element.ribbon.expireDate)\n\t\t//Allows ribbons to expire or appear indefinitely\n\t\tif (ribbonExpireDate > today || ribbonExpireDate == 'Invalid Date') self.makeRibbon(self.opts.element.ribbon)\n\t}\n\n\tcard.on('click', async event => {\n\t\tevent.stopPropagation()\n\t\tawait self.app.dispatch({\n\t\t\ttype: 'is_apps_btn_active',\n\t\t\tvalue: false\n\t\t})\n\t\tslideDrawer(self)\n\t\tawait openSandbox(self.opts.element, self.opts)\n\t})\n}\n", "import { getInitFxn } from '#rx'\nimport * as utils from './utils'\nimport { openSandbox } from './adSandbox'\nimport { slideDrawer } from './mainBtn'\n\n/*\n.opts{\n\t.app\n\t.holder\n\t.element{}\n\t.dom{}\n\t.state{}\n\t.sandboxDiv\n}\n*/\n\nclass AppDrawerButton {\n\tconstructor(opts) {\n\t\tthis.type = 'button' // works for 'dsButton'. May expand to other button types\n\t\tthis.opts = this.validateOpts(opts)\n\t\tthis.holder = opts.holder\n\t\tthis.dom = opts.dom\n\t\tthis.sandboxDiv = opts.sandboxDiv\n\t\tsetRenderers(this)\n\t}\n\n\tvalidateOpts(opts) {\n\t\tif (!opts.element.name) throw `Button name is missing`\n\t\tif (!opts.element.sandboxJson && !opts.element.sandboxHtml)\n\t\t\tthrow `Either .sandboxJson or .sandboxHtml is missing for button=${opts.element.name}`\n\t\treturn opts\n\t}\n\n\tmain() {}\n}\n\nexport const buttonInit = getInitFxn(AppDrawerButton)\n\nfunction setRenderers(self) {\n\tconst btn = utils.makeButton({ div: self.holder, text: self.opts.element.name, margin: '20px 20px 0px' })\n\tbtn.attr('class', 'sjpp-appdrawer-dataset-btn').on('click', async event => {\n\t\tevent.stopPropagation()\n\t\tawait self.app.dispatch({\n\t\t\ttype: 'is_apps_btn_active',\n\t\t\tvalue: false\n\t\t})\n\t\tslideDrawer(self)\n\t\tawait openSandbox(self.opts.element, self.opts)\n\t})\n}\n", "import { getCompInit } from '#rx'\nimport { rgb } from 'd3-color'\nimport { defaultcolor } from '#shared/common.js'\nimport { cardInit } from './card'\nimport { buttonInit } from './dsButton'\nimport { select } from 'd3-selection'\nimport { dofetch3, sayerror } from '#src/client'\n\n/*\n.opts{}\n .app{}\n\t.dom{}\n\t.state{}\n\nQuestions: \n\t- Organize in window based on section size to make best use of space?\n - For the column layout: \n 1. Cap number of columns?\n 2. Allow y overflow for >2 columns (like Trello)?\n*/\n\nclass AppDrawerLayoutComp {\n\tconstructor(opts) {\n\t\tthis.type = 'layout'\n\t\tthis.dom = {\n\t\t\tholder: opts.dom.drawerDiv,\n\t\t\twrapper: opts.dom.wrapper,\n\t\t\tsandboxDiv: opts.dom.sandboxDiv\n\t\t}\n\t\tthis.state = opts.state\n\t\tthis.hasStatePreMain = true\n\t}\n\n\tasync validateIndexJson() {\n\t\tconst index = await this.getIndexJson()\n\t\tif (!index.elements) throw `Missing elements array`\n\t\tif (!index.elements.length) throw `No element objects provided`\n\t\tif (index.columnsLayout) {\n\t\t\tif (index.columnsLayout.length == 0) throw `Missing column objects`\n\t\t\tconst allGridAreaValues = index.columnsLayout.map(s => s.gridarea)\n\t\t\tif (allGridAreaValues.length != new Set(allGridAreaValues).size) throw `Duplicate values for .gridarea found`\n\t\t\tconst allSectionIdValues = []\n\t\t\tfor (const col of index.columnsLayout) {\n\t\t\t\tif (!col.gridarea) throw `Missing column .gridarea for column = ${col.name}`\n\t\t\t\tif (!col.sections || col.sections.length == 0) throw `Missing section objects for column = ${col.name}`\n\t\t\t\tfor (const section of col.sections) {\n\t\t\t\t\tif (!section.id)\n\t\t\t\t\t\tthrow `Missing section .id in ${section.name ? `section = ${section.name}` : `column = ${col.name} array`}`\n\t\t\t\t\tallSectionIdValues.push(section.id)\n\t\t\t\t}\n\t\t\t\tif (col.sections.length != new Set(col.sections).size) {\n\t\t\t\t\tthrow `Non-unique levels in line ${lineNum}: ${JSON.stringify(levelNames)}`\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (allSectionIdValues.length != new Set(allSectionIdValues).size) throw `Duplicate values for section.id found`\n\n\t\t\t// Required element attributes when columnsLayout specified\n\t\t\tfor (const element of index.elements) {\n\t\t\t\tif (!element.section) throw `.section is missing for ${element.type} = ${element.name}`\n\t\t\t\tif (!allSectionIdValues.some(d => d == element.section))\n\t\t\t\t\tthrow `section = ${element.section} for ${element.type} = ${element.name} is not a column section`\n\t\t\t}\n\t\t}\n\t\treturn index\n\t}\n\n\tasync getIndexJson() {\n\t\t// Proteinpaint specific index.\n\t\t// TODO: Later modifiy to accept user index.\n\t\tconst re = await dofetch3(this.app.cardsPath + '/index.json')\n\t\tif (re.error) {\n\t\t\tsayerror(this.dom.holder.append('div'), re.error)\n\t\t\treturn\n\t\t}\n\t\treturn re\n\t}\n\n\tvalidateElements() {\n\t\tconst features = JSON.parse(sessionStorage.getItem('optionalFeatures')) || {}\n\t\tthis.elements = this.index.elements.filter(e => !e.hidden && (!e.configFeature || features[e.configFeature]))\n\t}\n\n\tasync init() {\n\t\tthis.index = await this.validateIndexJson()\n\t\tthis.elementsRendered = false\n\t\tsetRenderers(this)\n\t\tthis.validateElements()\n\t\tthis.layout = this.index.columnsLayout ? this.index.columnsLayout : null\n\t\tthis.components = {\n\t\t\telements: []\n\t\t}\n\t}\n\n\tasync main() {\n\t\t// prevent elements from reloading each time\n\t\tif (this.elementsRendered == true) return\n\t\tthis.elementsRendered = true\n\t\tfor (const element of this.elements) {\n\t\t\tconst holder = select(this.layout ? `#${element.section} > .sjpp-element-list` : `.sjpp-element-list`)\n\t\t\tif (element.type == 'card' || element.type == 'nestedCard') {\n\t\t\t\tthis.components.elements.push(\n\t\t\t\t\tawait cardInit({\n\t\t\t\t\t\tapp: this.app,\n\t\t\t\t\t\tholder: holder\n\t\t\t\t\t\t\t.style('display', 'grid')\n\t\t\t\t\t\t\t.style('grid-template-columns', 'repeat(auto-fit, minmax(320px, 1fr))')\n\t\t\t\t\t\t\t.style('gap', '10px')\n\t\t\t\t\t\t\t.style('list-style', 'none')\n\t\t\t\t\t\t\t.style('margin', '15px 0px'),\n\t\t\t\t\t\telement,\n\t\t\t\t\t\tdom: this.opts.dom,\n\t\t\t\t\t\tstate: this.state,\n\t\t\t\t\t\tsandboxDiv: this.dom.sandboxDiv\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t} else if (element.type == 'dsButton') {\n\t\t\t\tthis.components.elements.push(\n\t\t\t\t\tawait buttonInit({\n\t\t\t\t\t\tapp: this.app,\n\t\t\t\t\t\tholder,\n\t\t\t\t\t\telement,\n\t\t\t\t\t\tdom: this.opts.dom,\n\t\t\t\t\t\tstate: this.state,\n\t\t\t\t\t\tsandboxDiv: this.dom.sandboxDiv\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport const layoutInit = getCompInit(AppDrawerLayoutComp)\n\nfunction setRenderers(self) {\n\tif (!self.index.columnsLayout) noDefinedLayout(self)\n\tif (self.index.columnsLayout) columnsLayout(self)\n}\n\nfunction noDefinedLayout(self) {\n\tconst flexLayout = self.dom.wrapper\n\t\t.append('div')\n\t\t.style('display', 'flex')\n\t\t.style('padding', '10px')\n\t\t.classed('sjpp-element-list', true)\n\treturn flexLayout\n}\n\nfunction columnsLayout(self) {\n\t// Allow user to create multiple columns in parent grid\n\tconst parentGrid = self.dom.wrapper\n\t\t.append('div')\n\t\t.style('display', 'grid')\n\t\t.style('grid-template-columns', 'repeat(auto-fit, minmax(425px, 1fr))')\n\t\t.style('gap', '10px')\n\t\t.style('padding', '10px')\n\t\t.style('text-align', 'left')\n\n\t//Allow user to create multiple parent columns in columnsLayout\n\tconst gridareas = []\n\tfor (const column of self.index.columnsLayout) gridareas.push(column.gridarea)\n\tparentGrid.style('grid-template-areas', `\"${gridareas.toString().replace(',', ' ')}\"`)\n\tfor (const col of self.index.columnsLayout) {\n\t\tconst newCol = parentGrid.append('div').style('grid-area', col.gridarea).classed('.sjpp-track-cols', true)\n\t\tfor (const section of col.sections) addSection(section, newCol)\n\t}\n\n\tfunction addSection(section, newCol) {\n\t\tconst newSection = newCol.append('div').attr('id', section.id)\n\t\tif (section.name)\n\t\t\tnewSection\n\t\t\t\t.append('h5')\n\t\t\t\t.classed('sjpp-appdrawer-cols', true)\n\t\t\t\t.style('color', rgb(defaultcolor).darker())\n\t\t\t\t.text(section.name)\n\t\tnewSection.append('div').classed('sjpp-element-list', true).style('padding', '10px')\n\n\t\treturn newSection\n\t}\n}\n", "import { getCompInit } from '#rx'\nimport { layoutInit } from './layout'\n\n/*\n.opts{}\n .app{}\n\t.dom{}\n\t.state{}\n\nTODOs: \n- Replace drawerFullHeight with a different approach\n\t- Causes the drawer to only partially appear when the window zooms in\n*/\n\nclass MainHeadboxBtn {\n\tconstructor(opts) {\n\t\tthis.type = 'mainBtn'\n\t\tthis.opts = this.validateOpts(opts)\n\t\tthis.dom = opts.dom\n\t\tthis.state = opts.state\n\t\tthis.hasStatePreMain = true\n\t\tsetRenderers(this)\n\t}\n\n\tvalidateOpts(opts) {\n\t\treturn opts.app.opts\n\t}\n\n\tgetState(appState) {\n\t\treturn {\n\t\t\tappBtnActive: appState.appBtnActive\n\t\t}\n\t}\n\n\tasync init() {\n\t\tthis.btnRendered = false\n\t\tthis.drawerFullHeight = ''\n\t\ttry {\n\t\t\t//detect whether to show examples right away, which is when the url is barebone without any route paths or search parameters\n\t\t\tif (window.location.pathname == '/' && !window.location.search.length)\n\t\t\t\tawait this.app.dispatch({ type: 'is_apps_btn_active', value: true })\n\t\t\tthis.components = {\n\t\t\t\tlayout: []\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tthrow e\n\t\t}\n\t}\n\n\tasync main(appState) {\n\t\tif (this.app.getState(appState).appBtnActive == true && this.btnRendered == false) {\n\t\t\tthis.dom.drawerDiv.style('background-color', '#f5f5f5') //Quick fix for drawerDiv initially appearing before layout init\n\t\t\t//Init layout only once when 'Apps' button is active for the first time\n\t\t\tthis.components.layout.push(\n\t\t\t\tawait layoutInit({\n\t\t\t\t\tapp: this.app,\n\t\t\t\t\tdom: this.dom,\n\t\t\t\t\tstate: this.state\n\t\t\t\t})\n\t\t\t)\n\t\t\t//Give the drawerDiv time to render before calculating height\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.drawerFullHeight = this.dom.drawerDiv.node().getBoundingClientRect().height + 5\n\t\t\t}, this.state.duration + 5)\n\t\t\tslideDrawer(this)\n\t\t\tthis.btnRendered = true\n\t\t}\n\t\tif (this.state.appBtnActive == false && this.btnRendered == true) slideDrawer(this)\n\t}\n}\n\nexport const mainBtnInit = getCompInit(MainHeadboxBtn)\n\nfunction setRenderers(self) {\n\tself.dom.btnWrapper\n\t\t.style('background-color', self.state.appBtnActive ? '#b2b2b2' : '#f2f2f2')\n\t\t.style('color', self.state.appBtnActive ? '#fff' : '#000')\n\t\t.on('click', async event => {\n\t\t\tevent.stopPropagation()\n\t\t\tawait self.app.dispatch({ type: 'is_apps_btn_active' })\n\t\t\tslideDrawer(self)\n\t\t\tif (self.state.appBtnActive) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tself.drawerFullHeight = self.dom.drawerDiv.node().getBoundingClientRect().height + 5\n\t\t\t\t}, self.state.duration + 5)\n\t\t\t}\n\t\t})\n\n\tself.dom.btn\n\t\t.attr('class', 'sja_menuoption')\n\t\t.style('display', 'inline-block')\n\t\t.style('background-color', 'transparent')\n\t\t.style('color', self.state.appBtnActive ? '#fff' : '#000')\n\t\t.style('padding', self.opts.padw_sm)\n\t\t.style('margin', '0px 5px')\n\t\t.style('cursor', 'pointer')\n\t\t.text('Apps')\n\n\t// an empty spacer div, needed since the arrows are absolutely positioned\n\tself.dom.drawerHint\n\t\t.style('position', 'relative')\n\t\t.style('display', 'inline-block')\n\t\t.style('height', self.state.arrowSize.closed + 'px')\n\t\t.style('width', self.state.appBtnActive ? self.state.hintWidth.open : self.state.hintWidth.closed)\n\t\t.style('background-color', 'transparent')\n\t\t.style('text-align', 'center')\n\t\t.style('cursor', 'pointer')\n\n\tself.dom.drawerArrow\n\t\t.style('position', 'absolute')\n\t\t.style('font-size', self.state.arrowSize.closed + 'px')\n\t\t.style('right', self.state.hintPos.closed.rt + 'px')\n\t\t.style('bottom', self.state.hintPos.closed.btm + 'px')\n\t\t.style('background-color', 'transparent')\n\t\t.style('color', self.state.arrowColor.closed)\n\t\t.style('opacity', self.state.appBtnActive ? 0 : 1)\n\t\t.style('cursor', 'pointer')\n\t\t.html('▼')\n\n\tself.dom.drawerArrowOpen\n\t\t.style('position', 'absolute')\n\t\t.style('font-size', self.state.arrowSize.open + 'px')\n\t\t.style('left', self.state.hintPos.open.left + 'px')\n\t\t.style('bottom', self.state.hintPos.open.btm + 'px')\n\t\t.style('transform', 'rotate(180deg)')\n\t\t.style('background-color', 'transparent')\n\t\t.style('color', self.state.arrowColor.open)\n\t\t.style('opacity', self.state.appBtnActive ? 1 : 0)\n\t\t.style('cursor', 'pointer')\n\t\t.style('pointer-events', self.state.appBtnActive ? 'auto' : 'none')\n\t\t.html('▼')\n\n\tself.drawerFullHeight = self.dom.drawerRow.node().getBoundingClientRect().height + 5\n}\n\nexport async function slideDrawer(self) {\n\tself.dom.btnWrapper\n\t\t.transition()\n\t\t.duration(self.opts.state.duration)\n\t\t.style('background-color', self.state.appBtnActive ? '#b2b2b2' : '#f2f2f2')\n\t\t.style('color', self.state.appBtnActive ? '#fff' : '#000')\n\n\tself.dom.btn\n\t\t.transition()\n\t\t.duration(self.opts.state.duration)\n\t\t.style('color', self.state.appBtnActive ? '#fff' : '#000')\n\n\tself.dom.drawerDiv\n\t\t.style('display', 'inline-block')\n\t\t.transition()\n\t\t.duration(self.opts.state.duration)\n\t\t.style('top', self.state.appBtnActive ? '0px' : '-' + self.drawerFullHeight + 'px')\n\n\tself.dom.drawerRow\n\t\t.transition()\n\t\t.duration(self.opts.state.duration)\n\t\t.style('height', self.state.appBtnActive ? self.drawerFullHeight + 'px' : '0px')\n\n\tself.dom.drawerHint\n\t\t.transition()\n\t\t.duration(self.opts.state.duration)\n\t\t.style('width', self.state.appBtnActive ? self.opts.state.hintWidth.open : self.opts.state.hintWidth.closed)\n\n\tself.dom.drawerArrow\n\t\t.transition()\n\t\t.duration(self.opts.state.duration)\n\t\t.style('opacity', self.state.appBtnActive ? 0 : 1)\n\n\tself.dom.drawerArrowOpen\n\t\t.style('pointer-events', self.state.appBtnActive ? 'auto' : 'none')\n\t\t.transition()\n\t\t.duration(self.opts.state.duration)\n\t\t.style('opacity', self.state.appBtnActive ? 1 : 0)\n}\n", "import { getStoreInit } from '#rx'\n\n/*\n.opts{}\n\n*/\n\nclass AppDrawerStore {\n\tconstructor(opts) {\n\t\tthis.type = 'store'\n\t\tthis.defaultState = {\n\t\t\t// for apps drawer animation\n\t\t\tduration: 500,\n\t\t\thintPos: {\n\t\t\t\topen: { btm: -42, left: 13 },\n\t\t\t\tclosed: { btm: 3, rt: 5 }\n\t\t\t},\n\t\t\thintWidth: { open: '0px', closed: '18px' },\n\t\t\tarrowSize: { open: 42, closed: 20 },\n\t\t\tarrowColor: { open: 'rgb(242,242,242)', closed: 'rgb(85,85,85)' },\n\t\t\tappBtnActive: false\n\t\t}\n\t}\n\n\tasync init() {}\n}\n\nexport const appDrawerStoreInit = getStoreInit(AppDrawerStore)\n\nAppDrawerStore.prototype.actions = {\n\tis_apps_btn_active(action) {\n\t\tthis.state.appBtnActive = 'value' in action ? action.value : !this.state.appBtnActive\n\t}\n}\n", "import { getAppInit } from '#rx'\nimport { mainBtnInit } from './mainBtn'\nimport { appDrawerStoreInit } from './store'\n\n/*\n.opts{}\n .holder\n .genomes{}\n - client-side genome object\n\t.drawerRow\n\t.sandboxDiv\n\t.genome_browser_btn\n\t.debugmode\n\t.headbox\n\t.padw_sm\n\nTODOs: \n\nQuestions: \n*/\n\nclass AppDrawerApp {\n\tconstructor(opts) {\n\t\tthis.type = 'app'\n\n\t\tconst drawerDiv = opts.drawerRow\n\t\t\t.append('div')\n\t\t\t.style('position', 'relative')\n\t\t\t.style('margin', '0 20px')\n\t\t\t.style('padding', `0 ${opts.padw_sm}`)\n\t\t\t.style('display', 'inline-block')\n\t\t\t.style('overflow', 'hidden')\n\t\t\t.style('border-radius', '0px 0px 5px 5px')\n\t\t\t.style('width', '93vw')\n\t\t\t.classed('sjpp-drawer-div', true)\n\n\t\tconst btnWrapper = opts.headbox\n\t\t\t.append('div')\n\t\t\t.style('position', 'relative')\n\t\t\t.style('display', 'inline-block')\n\t\t\t.style('margin-left', '5px')\n\t\t\t.style('margin-right', '5px')\n\t\t\t.style('border-radius', '5px')\n\t\t\t.classed('sjpp-apps-btn-wrapper', true)\n\n\t\tthis.dom = {\n\t\t\tdrawerRow: opts.drawerRow,\n\t\t\tdrawerDiv,\n\t\t\tsandboxDiv: opts.sandboxDiv,\n\t\t\tbtnWrapper,\n\t\t\tbtn: btnWrapper.append('div'),\n\t\t\tdrawerHint: btnWrapper.append('div'),\n\t\t\tdrawerArrow: btnWrapper.append('div'),\n\t\t\tdrawerArrowOpen: btnWrapper.append('div'),\n\t\t\twrapper: drawerDiv.append('div')\n\t\t}\n\t}\n\n\tpreApiFreeze(api) {\n\t\tapi.cardsPath = this.opts.cardsPath\n\t}\n\n\tasync init() {\n\t\ttry {\n\t\t\tthis.store = await appDrawerStoreInit({ app: this.api, state: this.opts.state })\n\t\t\tthis.state = await this.store.copyState()\n\t\t\tthis.components = {\n\t\t\t\tmainBtn: await mainBtnInit({\n\t\t\t\t\tapp: this.api,\n\t\t\t\t\tdom: this.dom,\n\t\t\t\t\tstate: this.state,\n\t\t\t\t\tindexJson: this.indexJson\n\t\t\t\t})\n\t\t\t}\n\t\t\tawait this.api.dispatch()\n\t\t} catch (e) {\n\t\t\tthrow e\n\t\t}\n\t}\n\n\tmain() {}\n}\n\nexport const appDrawerInit = getAppInit(AppDrawerApp)\n", "import { first_genetrack_tolist } from '#common/1stGenetk'\nimport { InputSearch, Menu, newSandboxDiv } from '#dom'\nimport { searchItems } from './omniSearch.js'\nimport { appDrawerInit } from '../../appdrawer/app.js'\nimport { rgb as d3rgb } from 'd3-color'\nimport { defaultcolor } from '#shared/common.js'\nimport { dofetch3 } from '#common/dofetch'\nimport { ClientCopyGenome } from 'types/global.ts'\n\ntype Citation = {\n\tid: number\n\ttitle: string\n\tappHeaderTitle: string\n\tyear: number\n\tjournal: string\n\tpmid: number\n\tpmidURL: string\n\tdoi: string\n}\n\ntype AppHeaderOpts = {\n\t/** menu created in app.js */\n\theadtip: Menu\n\t/** runpp app */\n\tapp: any\n\t/** server returned data */\n\tdata: any\n\t/** token */\n\tjwt: any\n}\n\nexport class AppHeader {\n\theadtip: Menu\n\tapp: any\n\tdata: any\n\tjwt: any\n\t/** List of publications defined in the app drawer\n\t * Appears in button in the header and in search results\n\t */\n\tpublications: Citation[]\n\t/** Used in both the Help button and omni search\n\t * .onlySearch is used to filter out items that should not appear in the Help button\n\t */\n\tstatic help = [\n\t\t{\n\t\t\tlabel: 'Embed in your website',\n\t\t\tlink: 'https://github.com/stjude/proteinpaint/wiki/Embedding'\n\t\t},\n\t\t{\n\t\t\tlabel: 'URL parameters',\n\t\t\tlink: 'https://github.com/stjude/proteinpaint/wiki/URL-parameters'\n\t\t},\n\t\t{\n\t\t\tlabel: 'All tutorials',\n\t\t\tlink: 'https://github.com/stjude/proteinpaint/wiki/'\n\t\t},\n\t\t{\n\t\t\tlabel: 'User community',\n\t\t\tlink: 'https://groups.google.com/g/proteinpaint'\n\t\t},\n\t\t{\n\t\t\tlabel: 'License ProteinPaint',\n\t\t\tlink: 'https://www.stjude.org/research/why-st-jude/shared-resources/technology-licensing/technologies/proteinpaint-web-application-for-visualizing-genomic-data-sj-15-0021.html',\n\t\t\tonlySearch: true\n\t\t},\n\t\t{\n\t\t\tlabel: 'Our Team',\n\t\t\tlink: 'https://proteinpaint.stjude.org/team/',\n\t\t\tonlySearch: true\n\t\t}\n\t]\n\n\tconstructor(opts: AppHeaderOpts) {\n\t\tthis.headtip = opts.headtip\n\t\tthis.app = opts.app\n\t\tthis.data = opts.data\n\t\tthis.jwt = opts.jwt\n\t\tthis.publications = []\n\t}\n\n\tasync createPublicationsList() {\n\t\tconst re = await dofetch3(this.app.cardsPath + '/citations.json')\n\t\tif (re.error) console.error(`Problem retrieving ../cards/citations.json`)\n\t\t//Sort in reverse chronological order for the publications button\n\t\tthis.publications = re?.publications?.length\n\t\t\t? re.publications.filter((d: Citation) => d.appHeaderTitle).sort((a: Citation, b: Citation) => b.year - a.year)\n\t\t\t: []\n\t}\n\n\tasync makeheader() {\n\t\tawait this.createPublicationsList()\n\n\t\tconst color = d3rgb(defaultcolor)\n\t\tconst padw_lg = '13px'\n\t\tconst padw_input = '5px 10px'\n\t\tconst padw_sm = '7px 10px'\n\t\tconst doc_width = document.documentElement.clientWidth\n\t\t// head\n\t\tconst row = this.app.holder\n\t\t\t.append('div')\n\t\t\t.style('white-space', 'nowrap')\n\t\t\t.style(\n\t\t\t\t'border-bottom',\n\t\t\t\tdoc_width > 1600 ? 'solid 1px rgba(' + color.r + ',' + color.g + ',' + color.b + ',.3)' : ''\n\t\t\t)\n\n\t\tconst headbox = row\n\t\t\t.append('div')\n\t\t\t.style('margin', '10px')\n\t\t\t.style('padding', '8px')\n\t\t\t.style('padding-bottom', '12px')\n\t\t\t.style('display', doc_width < 1600 ? 'block' : 'inline-block')\n\t\t\t.style(\n\t\t\t\t'border-bottom',\n\t\t\t\tdoc_width < 1600 ? 'solid 1px rgba(' + color.r + ',' + color.g + ',' + color.b + ',.3)' : ''\n\t\t\t)\n\n\t\t// .style('border-radius', '5px')\n\t\t// .style('background-color', 'rgba(' + color.r + ',' + color.g + ',' + color.b + ',.1)')\n\t\tconst headinfo = row\n\t\t\t.append('div')\n\t\t\t.style('display', 'inline-block')\n\t\t\t.style('padding', padw_sm)\n\t\t\t.style('padding-left', '25px')\n\t\t\t.style('font-size', '.8em')\n\t\t\t.style('color', d3rgb(defaultcolor).darker())\n\n\t\t{\n\t\t\t// a row for server stats\n\t\t\tconst row = headinfo.append('div').style('padding-left', '15px')\n\t\t\t// link to the published ppfull container version, instead of github release tarball which we do not advertise;\n\t\t\t// github's pkgs/container link has a timestamp before the tag, which cannot be computed here (but may be able to query later?)\n\t\t\tconst link = `https://github.com/stjude/proteinpaint/pkgs/container/ppfull` // url to list of published container versions\n\t\t\tconst version = this.data.pkgver\n\t\t\t\t? `Release version: <a href=\"${link}\" target=\"${this.data.pkgver}\">${this.data.pkgver}</a>`\n\t\t\t\t: `Code date: ${this.data.codedate}` // default to using code date as before if pkgver is not available\n\t\t\trow\n\t\t\t\t.attr('id', 'sjpp-serverstat')\n\t\t\t\t.append('span')\n\t\t\t\t.html(`${version}, server launched: ${this.data.launchdate || '??'}.`)\n\t\t\tif (this.data.hasblat) {\n\t\t\t\trow\n\t\t\t\t\t.append('a')\n\t\t\t\t\t.style('margin-left', '10px')\n\t\t\t\t\t.text('Running BLAT')\n\t\t\t\t\t.on('click', async event => {\n\t\t\t\t\t\tthis.headtip.clear().showunder(event.target)\n\t\t\t\t\t\tconst div = this.headtip.d.append('div').style('margin', '10px')\n\t\t\t\t\t\tconst wait = div.append('div').text('Loading...')\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst data = await dofetch3('blat?serverstat=1')\n\t\t\t\t\t\t\tif (data.error) throw data.error\n\t\t\t\t\t\t\tif (!data.lst) throw 'invalid response'\n\t\t\t\t\t\t\twait.remove()\n\t\t\t\t\t\t\tfor (const i of data.lst) {\n\t\t\t\t\t\t\t\tdiv.append('div').text(i)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (e: any) {\n\t\t\t\t\t\t\twait.text(e.message || e)\n\t\t\t\t\t\t\tif (e.stack) console.error(e.stack)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\tif (this.data.headermessage) {\n\t\t\theadinfo.append('div').html(this.data.headermessage)\n\t\t}\n\n\t\t// 1\n\t\theadbox\n\t\t\t.append('div')\n\t\t\t.text('ProteinPaint')\n\t\t\t.style('display', 'inline-block')\n\t\t\t.style('padding', padw_lg)\n\t\t\t.style('color', defaultcolor)\n\t\t\t.style('font-size', '1.3em')\n\t\t\t.style('font-weight', 'bold')\n\n\t\t// 2, search box\n\t\tconst omniSearch = new InputSearch({\n\t\t\tholder: headbox,\n\t\t\ttip: this.headtip,\n\t\t\tstyle: {\n\t\t\t\tpadding: padw_sm,\n\t\t\t\tborder: `'solid 1px ${defaultcolor}`\n\t\t\t},\n\t\t\tsize: 32,\n\t\t\tplaceholder: 'Gene, position, SNP, app, or dataset',\n\t\t\ttitle: 'Search by gene, SNP, position, app, or dataset',\n\t\t\tsearchItems: async () => {\n\t\t\t\treturn await searchItems(this.app, this.headtip, AppHeader.help, this.publications, this.jwt)\n\t\t\t}\n\t\t})\n\n\t\tomniSearch.initUI()\n\n\t\tconst genome_select_div = headbox.append('div').attr('class', 'sjpp-genome-select-div').style('padding', padw_sm)\n\n\t\tconst get_placeholder = () => {\n\t\t\tconst currG = this.app.genomes[this.app.selectgenome.property('value')]\n\t\t\t/** Defaults */\n\t\t\tconst opts2Show = ['Gene', 'position', 'app']\n\t\t\t/** Show all the genomic options together */\n\t\t\tif (currG.hasSNP) opts2Show.splice(2, 0, 'SNP')\n\t\t\tif (Object.keys(currG.datasets).length) opts2Show.push('dataset')\n\t\t\tconst str = opts2Show.join(', ').replace(/,(?=[^,]*$)/, ', or')\n\t\t\treturn str\n\t\t}\n\n\t\tthis.app.selectgenome = genome_select_div\n\t\t\t.append('select')\n\t\t\t.attr('aria-label', 'Select a genome')\n\t\t\t.attr('class', 'sjpp-genome-select')\n\t\t\t.style('padding', padw_input)\n\t\t\t.style('border', 'solid 1px ' + defaultcolor)\n\t\t\t.on('change', () => {\n\t\t\t\tthis.update_genome_browser_btn(this.app)\n\t\t\t\tomniSearch.updatePlaceholder(get_placeholder())\n\t\t\t})\n\n\t\tconst filterGenomes = Object.values(this.app.genomes).filter((g: any) => !g.hideOnClient) as ClientCopyGenome[]\n\t\tfor (const n of filterGenomes) {\n\t\t\tthis.app.selectgenome.append('option').attr('n', n.name).text(`${n.species} ${n.name}`).property('value', n.name)\n\t\t}\n\t\tthis.app.genome_browser_btn = this.make_genome_browser_btn(this.app, headbox, this.jwt)\n\n\t\tthis.app.drawer = await appDrawerInit({\n\t\t\tholder: this.app.holder,\n\t\t\tgenomes: this.app.genomes,\n\t\t\tdrawerRow: this.app.holder\n\t\t\t\t.append('div')\n\t\t\t\t.style('position', 'relative')\n\t\t\t\t.style('overflow-x', 'visible')\n\t\t\t\t.style('overflow-y', 'hidden')\n\t\t\t\t.classed('sjpp-drawer-row', true),\n\t\t\tsandboxDiv: this.app.holder.append('div').style('margin-top', '15px').classed('sjpp-drawer-sandbox', true),\n\t\t\tgenome_browser_btn: this.app.genome_browser_btn,\n\t\t\tdebugmode: this.app.debugmode,\n\t\t\theadbox,\n\t\t\tpadw_sm,\n\t\t\tcardsPath: this.app.cardsPath\n\t\t})\n\n\t\t//Help button\n\t\theadbox\n\t\t\t.append('span')\n\t\t\t.classed('sja_menuoption', true)\n\t\t\t.attr('id', 'sjpp-header-help-btn')\n\t\t\t.style('padding', padw_sm)\n\t\t\t.text('Help')\n\t\t\t.on('click', async event => {\n\t\t\t\tconst p = event.target.getBoundingClientRect()\n\t\t\t\tconst div = this.headtip.clear().show(p.left - 0, p.top + p.height + 5)\n\n\t\t\t\tawait div.d\n\t\t\t\t\t.append('div')\n\t\t\t\t\t.style('padding', '5px 20px')\n\t\t\t\t\t.selectAll('p')\n\t\t\t\t\t.data(AppHeader.help.filter(d => !d.onlySearch))\n\t\t\t\t\t.enter()\n\t\t\t\t\t.append('p')\n\t\t\t\t\t.html(d => `<a href=${d.link} target=_blank>${d.label}</a>`)\n\t\t\t})\n\n\t\t//Publications button\n\t\t//Citations not available on CI server\n\t\tif (this.publications.length > 0) {\n\t\t\theadbox\n\t\t\t\t.append('span')\n\t\t\t\t.classed('sja_menuoption', true)\n\t\t\t\t.attr('id', 'sjpp-header-publications-btn')\n\t\t\t\t.style('padding', padw_sm)\n\t\t\t\t.style('margin', '0px 5px')\n\t\t\t\t.text('Publications')\n\t\t\t\t.on('click', async event => {\n\t\t\t\t\tconst p = event.target.getBoundingClientRect()\n\t\t\t\t\tconst div = this.headtip.clear().show(p.left - 150, p.top + p.height + 5)\n\n\t\t\t\t\tawait div.d\n\t\t\t\t\t\t.append('div')\n\t\t\t\t\t\t.style('padding', '5px 20px')\n\t\t\t\t\t\t.selectAll('p')\n\t\t\t\t\t\t.data(this.publications)\n\t\t\t\t\t\t.enter()\n\t\t\t\t\t\t.append('p')\n\t\t\t\t\t\t.html((d: any) => `<a href=${d.doi} target=_blank>${d.appHeaderTitle}, ${d.journal}, ${d.year}</a>`)\n\t\t\t\t})\n\t\t}\n\t}\n\n\tmake_genome_browser_btn(app, headbox, jwt) {\n\t\tif (app.selectgenome.node().options.length === 0) {\n\t\t\tconsole.error(`No selected selectgenome options.`)\n\t\t\treturn\n\t\t}\n\n\t\tconst padw = '8px'\n\t\tconst genome_btn_div = headbox.append('span')\n\t\tconst genomename = app.selectgenome.node().options[app.selectgenome.property('selectedIndex')].value\n\n\t\tconst g_browser_btn = genome_btn_div\n\t\t\t.attr('class', 'sja_menuoption')\n\t\t\t.attr('id', 'genome_btn')\n\t\t\t.style('padding', padw)\n\t\t\t.datum(genomename)\n\t\t\t.text(genomename + ' genome browser')\n\t\t\t.on('click', () => {\n\t\t\t\t//Grab the current genome selected\n\t\t\t\tconst genomeSelected = app.selectgenome.node().value\n\t\t\t\tconst g = app.genomes[genomeSelected]\n\t\t\t\tif (!g) {\n\t\t\t\t\talert('Invalid genome name: ' + genomeSelected)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tconst sandbox_div = newSandboxDiv(app.drawer.opts.sandboxDiv)\n\t\t\t\tsandbox_div.header.text(genomeSelected + ' genome browser')\n\n\t\t\t\tconst par = {\n\t\t\t\t\thostURL: app.hostURL,\n\t\t\t\t\tjwt,\n\t\t\t\t\tholder: sandbox_div.body,\n\t\t\t\t\tgenome: g,\n\t\t\t\t\tchr: g.defaultcoord.chr,\n\t\t\t\t\tstart: g.defaultcoord.start,\n\t\t\t\t\tstop: g.defaultcoord.stop,\n\t\t\t\t\tnobox: true,\n\t\t\t\t\ttklst: [],\n\t\t\t\t\tdebugmode: app.debugmode\n\t\t\t\t}\n\t\t\t\tfirst_genetrack_tolist(g, par.tklst)\n\n\t\t\t\timport('../block.js').then(b => new b.Block(par))\n\t\t\t\tapp.drawer.dispatch({ type: 'is_apps_btn_active', value: false })\n\t\t\t})\n\t\treturn g_browser_btn\n\t}\n\n\tupdate_genome_browser_btn(app) {\n\t\tapp.genome_browser_btn.text(app.selectgenome.node().value + ' genome browser')\n\t\tapp.genome_browser_btn.datum(app.selectgenome.node().value)\n\t}\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,eAAsB,YAAY,KAAK,KAAK,MAAM,cAAc,KAAK;AACpE,QAAM,YAAY,eAAS,OAAO,EAAE,SAAS,OAAO,EAAE,KAAK;AAC3D,QAAM,OAAO;AAAA,IACZ;AAAA,MACC,OAAO;AAAA,MACP,SAAS;AAAA,MACT,OAAO,MAAM,YAAY,WAAW,IAAI,aAAa,SAAS,OAAO,GAAG,GAAG;AAAA,MAC3E,OAAO;AAAA,MACP,UAAU,OAAK;AACd,YAAI,OAAO,SAAS,EAAE,MAAM,sBAAsB,OAAO,MAAM,CAAC;AAChE,YAAI,KAAK;AACT,uBAAe,GAAG,KAAK,IAAI,aAAa,SAAS,OAAO,GAAG,GAAG;AAAA,MAC/D;AAAA,IACD;AAAA,EACD;AACA,QAAM,sBAAsB,KAAK,WAAW,MAAM,GAAG;AAErD,OAAK,KAAK;AAAA,IACT,OAAO;AAAA,IACP,SAAS;AAAA,IACT,OAAO,KAAK,OAAO,OAAK,EAAE,MAAM,YAAY,EAAE,SAAS,UAAU,YAAY,CAAC,CAAC;AAAA,IAC/E,OAAO;AAAA,IACP,UAAU,OAAK;AACd,aAAO,KAAK,EAAE,MAAM,EAAE,KAAK;AAAA,IAC5B;AAAA,EACD,CAAC;AACD,OAAK,KAAK;AAAA,IACT,OAAO;AAAA,IACP,SAAS;AAAA,IACT,OAAO,aAAa;AAAA,MACnB,OACC,EAAE,MAAM,YAAY,EAAE,SAAS,UAAU,YAAY,CAAC,KACtD,EAAE,eAAe,YAAY,EAAE,SAAS,UAAU,YAAY,CAAC;AAAA,IACjE;AAAA,IACA,OAAO;AAAA,IACP,UAAU,OAAK;AACd,aAAO,KAAK,EAAE,KAAK,EAAE,KAAK;AAAA,IAC3B;AAAA,EACD,CAAC;AACD,SAAO;AACR;AAEA,eAAe,sBAAsB,KAAK,OAAO,MAAM,KAAK;AAC3D,QAAM,KAAK,MAAM,SAAS,IAAI,YAAY,aAAa;AACvD,MAAI,GAAG,MAAO,+BAA8B,wCAAwC;AACpF,QAAM,YAAY,MAAM,YAAY,EAAE,KAAK;AAC3C,QAAM,WAAW,CAAC,GAAG,GAAG,QAAQ;AAChC,MAAI;AACJ,MAAI,UAAU,SAAS,GAAG;AAKzB,UAAM,gBAAgB,UAAU,GAAG;AACnC,uBAAmB,oBAAoB,UAAU,SAAS;AAAA,EAC3D,OAAO;AACN,uBAAmB,oBAAoB,UAAU,SAAS;AAAA,EAC3D;AAEA,QAAM,OAAO;AAAA,IACZ,KAAK,IAAI,OAAO;AAAA,IAChB,YAAY,IAAI,OAAO,KAAK;AAAA,IAC5B,SAAS,IAAI;AAAA,IACb,SAAS;AAAA,EACV;AAEA,OAAK;AAAA,IACJ;AAAA,MACC,OAAO;AAAA,MACP,OAAO,iBAAiB,OAAO,OAAK,EAAE,QAAQ,MAAM;AAAA,MACpD,OAAO;AAAA,MACP,UAAU,aAAW;AACpB,YAAI,OAAO,SAAS,EAAE,MAAM,sBAAsB,OAAO,MAAM,CAAC;AAChE,YAAI,KAAK;AACT,oBAAY,SAAS,IAAI;AAAA,MAC1B;AAAA,IACD;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO,iBAAiB,OAAO,OAAK,EAAE,QAAQ,UAAU;AAAA,MACxD,OAAO;AAAA,MACP,UAAU,aAAW;AACpB,YAAI,OAAO,SAAS,EAAE,MAAM,sBAAsB,OAAO,MAAM,CAAC;AAChE,YAAI,KAAK;AACT,oBAAY,SAAS,IAAI;AAAA,MAC1B;AAAA,IACD;AAAA,EACD;AACA,SAAO;AACR;AAEA,eAAe,gBAAgB,UAAU,KAAK;AAC7C,QAAM,WAAW,SAAS,IAAI,OAAM,SAAQ;AAC3C,QAAI,KAAK,UAAU,KAAK,QAAQ,UAAU,CAAC,KAAK,YAAa,QAAO;AACpE,UAAM,MAAM,MAAM,SAAS,IAAI,YAAY,IAAI,KAAK,WAAW,OAAO;AACtE,QAAI,KAAK,QAAQ,SAAS,GAAG;AAC5B,iBAAW,KAAK,IAAI,SAAS;AAC5B,YAAI,EAAE,KAAM;AACZ,YAAI,GAAG,MAAO,MAAK,YAAY,KAAK,EAAE,KAAK;AAAA,MAC5C;AAAA,IACD;AAAA,EACD,CAAC;AAED,QAAM,QAAQ,IAAI,QAAQ;AAC3B;AAEA,SAAS,oBAAoB,UAAU,WAAW;AACjD,SAAO,SACL,OAAO,UAAQ;AACf,QAAI,KAAK,OAAQ,QAAO;AACxB,QAAI,mBAAmB,KAAK,eAAe,CAAC,GAAG,OAAO,CAACA,kBAAiB,eAAe;AACtF,UAAIA,iBAAiB,QAAO;AAC5B,aAAO,WAAW,YAAY,EAAE,SAAS,SAAS;AAAA,IACnD,GAAG,KAAK;AACR,WAAO,mBAAmB,KAAK,KAAK,YAAY,EAAE,SAAS,SAAS;AAAA,EACrE,CAAC,EACA,KAAK,CAAC,GAAG,MAAM,EAAE,KAAK,cAAc,EAAE,IAAI,CAAC;AAC9C;AAEA,eAAsB,YAAY,KAAK,QAAQ,KAAK;AAEnD,MAAI,IAAI,UAAU,EAAG;AACrB,MAAI;AACH,UAAM,OAAO,MAAM,SAAS,eAAe;AAAA,MAC1C,MAAM;AAAA,QACL,OAAO;AAAA,QACP;AAAA,QACA;AAAA,MACD;AAAA,IACD,CAAC;AAED,QAAI,KAAK,MAAO,OAAM,KAAK;AAC3B,QAAI,CAAC,KAAK,KAAM,OAAM;AACtB,WAAO,KAAK;AAAA,EACb,SAAS,KAAK;AAAA,EAId;AACD;AAEA,eAAsB,eAAe,KAAK,KAAK,YAAY,KAAK;AAC/D,QAAM,IAAI,IAAI,QAAQ,UAAU;AAChC,MAAI,CAAC,GAAG;AACP,YAAQ,MAAM,oBAAoB,UAAU;AAC5C;AAAA,EACD;AACA,QAAM,cAAc,cAAc,IAAI,OAAO,KAAK,UAAU;AAC5D,cAAY,OAAO;AAAA,IAClB,wCACC,MACA,kDACA,aACA;AAAA,EACF;AAEA,QAAM,OAAO,eAAO;AACpB,QAAM,QAAQ,MAAe,UAAU,MAAM,CAAC;AAE9C,QAAM,MAAM,WAAW,KAAK,CAAC;AAC7B,MAAI,KAAK;AAER,UAAMC,OAAM;AAAA,MACX,SAAS,IAAI;AAAA,MACb;AAAA,MACA,QAAQ,YAAY;AAAA,MACpB,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,KAAK,IAAI;AAAA,MACT,OAAO,IAAI,QAAQ;AAAA;AAAA,MACnB,MAAM,IAAI,OAAO;AAAA,MACjB,QAAQ;AAAA,MACR;AAAA,MACA,WAAW,IAAI;AAAA,IAChB;AACA,2BAAuB,GAAGA,KAAI,KAAK;AAEnC,WAAO,qBAAa,EAClB,KAAK,OAAK,IAAI,EAAE,MAAMA,IAAG,CAAC,EAC1B,MAAM,SAAO;AACb,UAAI,OAAO,GAAG;AAAA,IACf,CAAC;AACF;AAAA,EACD;AAGA,QAAM,MAAM;AAAA,IACX,SAAS,IAAI;AAAA,IACb;AAAA,IACA,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ,YAAY;AAAA,IACpB,qBAAqB,IAAI;AAAA,IACzB,YAAY,IAAI;AAAA,IAChB;AAAA,IACA,WAAW,IAAI;AAAA,EAChB;AAGA,QAAM,MAAM,eAAe,QAAQ,UAAU;AAC7C,MAAI,KAAK;AACR,UAAM,IAAI,IAAI,MAAM,GAAG;AACvB,QAAI,EAAE,UAAU,GAAG;AAClB,UAAI,iBAAiB,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,CAAC;AAAA,IACxD;AAAA,EACD;AAEA,QAAM,mBAAU,GAAG;AACpB;;;AC3MA,IAAM,gBAAN,MAAoB;AAAA;AAAA,EAEnB,YAAY,MAAM;AACjB,SAAK,OAAO;AACZ,SAAK,OAAO,KAAK,aAAa,IAAI;AAClC,SAAK,SAAS,KAAK;AACnB,SAAK,MAAM,KAAK;AAChB,SAAK,aAAa,KAAK;AACvB,iBAAa,IAAI;AAAA,EAClB;AAAA,EAEA,aAAa,MAAM;AAClB,QAAI,CAAC,KAAK,QAAQ,KAAM,OAAM;AAC9B,QAAI,KAAK,QAAQ,QAAQ,QAAQ;AAChC,UAAI,CAAC,KAAK,QAAQ,eAAe,CAAC,KAAK,QAAQ;AAC9C,cAAM,2DAA2D,KAAK,QAAQ,IAAI;AAAA,IACpF;AACA,QAAI,KAAK,QAAQ,QAAQ,cAAc;AACtC,UAAI,CAAC,KAAK,QAAQ,YAAY,KAAK,QAAQ,SAAS,UAAU;AAC7D,cAAM,uCAAuC,KAAK,QAAQ,IAAI;AAAA,IAChE;AACA,QAAI,KAAK,QAAQ,QAAQ;AACxB,UAAI,CAAC,KAAK,QAAQ,OAAO,KAAM,OAAM,4BAA4B,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,IAAI;AAGzG,WACE,KAAK,QAAQ,OAAO,KAAK,YAAY,KAAK,SAAS,KAAK,QAAQ,OAAO,KAAK,YAAY,KAAK,cAC9F,CAAC,KAAK,QAAQ,OAAO;AAErB,cAAM,GAAG,KAAK,QAAQ,IAAI,MACzB,KAAK,QAAQ,IACd,cAAc,KAAK,QAAQ,OAAO,KAAK,YAAY,CAAC;AAErD,UAAI,KAAK,QAAQ,OAAO,YAAY;AACnC,YAAI,KAAK,QAAQ,OAAO,cAAc,GAAG;AACxC,gBAAM,YAAY,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,IAAI;AAAA,QAC3D;AAAA,MACD;AAAA,IACD;AACA,WAAO;AAAA,EACR;AAAA,EAEA,OAAO;AAAA,EAAC;AACT;AAEO,IAAM,WAAW,YAAY,aAAa;AAEjD,SAAS,aAAa,MAAM;AAC3B,QAAM,OAAO,KAAK,OAAO,OAAO,IAAI;AACpC,MAAI,KAAK,KAAK,QAAQ,QAAQ,QAAQ;AACrC,SAAK,QAAQ,cAAc,IAAI,EAAE;AAAA,MAChC,6EAA6E,KAAK,KAAK,QAAQ,IAAI;AAAA,MAEjG,KAAK,KAAK,QAAQ,cACf,yDAAyD,KAAK,KAAK,QAAQ,WAAW,kBACtF,GACJ;AAAA,+CAC2C,KAAK,KAAK,QAAQ,KAAK,UAClE,KAAK,KAAK,QAAQ,WACnB;AAAA;AAAA,IAED;AAAA,EACD,WAAW,KAAK,KAAK,QAAQ,QAAQ,cAAc;AAClD,SAAK,QAAQ,wBAAwB,IAAI,EAAE;AAAA,MAC1C,mFAAmF,KAAK,KAAK,QAAQ,IAAI;AAAA,mJACuC,KAAK,KAAK,QAAQ,WAAW;AAAA,IAC9K;AAAA,EACD;AAEA,OAAK,aAAa,SAAS,QAAQ;AAElC,UAAM,YAAY,KAChB,OAAO,KAAK,EACZ,QAAQ,+BAA+B,IAAI,EAC3C,MAAM,eAAe,QAAQ,EAC7B,MAAM,mBAAmB,QAAQ;AAGnC,UAAM,OAAO,OAAO,KAAK,YAAY;AAErC,UAAM,QACL,QAAQ,SACL,YACA,QAAQ,QACR,YACA,QAAQ,YACR,WACA,OAAO,QACP,OAAO,QACP;AAEJ,cACE,OAAO,MAAM,EACb,KAAK,IAAI,EACT,MAAM,SAAS,OAAO,EACtB,MAAM,oBAAoB,IAAI,KAAK,EAAE,OAAO,CAAC,EAC7C,MAAM,UAAU,MAAM,EACtB,MAAM,SAAS,MAAM,EACrB,MAAM,OAAO,KAAK,EAClB,MAAM,QAAQ,MAAM,EACpB,MAAM,aAAa,QAAQ,EAC3B,MAAM,kBAAkB,WAAW,EACnC,MAAM,cAAc,QAAQ;AAAA,EAC/B;AAEA,MAAI,KAAK,KAAK,QAAQ,QAAQ;AAC7B,UAAM,QAAQ,oBAAI,KAAK;AACvB,UAAM,mBAAmB,IAAI,KAAK,KAAK,KAAK,QAAQ,OAAO,UAAU;AAErE,QAAI,mBAAmB,SAAS,oBAAoB,eAAgB,MAAK,WAAW,KAAK,KAAK,QAAQ,MAAM;AAAA,EAC7G;AAEA,OAAK,GAAG,SAAS,OAAM,UAAS;AAC/B,UAAM,gBAAgB;AACtB,UAAM,KAAK,IAAI,SAAS;AAAA,MACvB,MAAM;AAAA,MACN,OAAO;AAAA,IACR,CAAC;AACD,gBAAY,IAAI;AAChB,UAAM,YAAY,KAAK,KAAK,SAAS,KAAK,IAAI;AAAA,EAC/C,CAAC;AACF;;;ACpIA,IAAM,kBAAN,MAAsB;AAAA,EACrB,YAAY,MAAM;AACjB,SAAK,OAAO;AACZ,SAAK,OAAO,KAAK,aAAa,IAAI;AAClC,SAAK,SAAS,KAAK;AACnB,SAAK,MAAM,KAAK;AAChB,SAAK,aAAa,KAAK;AACvB,IAAAC,cAAa,IAAI;AAAA,EAClB;AAAA,EAEA,aAAa,MAAM;AAClB,QAAI,CAAC,KAAK,QAAQ,KAAM,OAAM;AAC9B,QAAI,CAAC,KAAK,QAAQ,eAAe,CAAC,KAAK,QAAQ;AAC9C,YAAM,6DAA6D,KAAK,QAAQ,IAAI;AACrF,WAAO;AAAA,EACR;AAAA,EAEA,OAAO;AAAA,EAAC;AACT;AAEO,IAAM,aAAa,WAAW,eAAe;AAEpD,SAASA,cAAa,MAAM;AAC3B,QAAM,MAAY,WAAW,EAAE,KAAK,KAAK,QAAQ,MAAM,KAAK,KAAK,QAAQ,MAAM,QAAQ,gBAAgB,CAAC;AACxG,MAAI,KAAK,SAAS,4BAA4B,EAAE,GAAG,SAAS,OAAM,UAAS;AAC1E,UAAM,gBAAgB;AACtB,UAAM,KAAK,IAAI,SAAS;AAAA,MACvB,MAAM;AAAA,MACN,OAAO;AAAA,IACR,CAAC;AACD,gBAAY,IAAI;AAChB,UAAM,YAAY,KAAK,KAAK,SAAS,KAAK,IAAI;AAAA,EAC/C,CAAC;AACF;;;AC5BA,IAAM,sBAAN,MAA0B;AAAA,EACzB,YAAY,MAAM;AACjB,SAAK,OAAO;AACZ,SAAK,MAAM;AAAA,MACV,QAAQ,KAAK,IAAI;AAAA,MACjB,SAAS,KAAK,IAAI;AAAA,MAClB,YAAY,KAAK,IAAI;AAAA,IACtB;AACA,SAAK,QAAQ,KAAK;AAClB,SAAK,kBAAkB;AAAA,EACxB;AAAA,EAEA,MAAM,oBAAoB;AACzB,UAAM,QAAQ,MAAM,KAAK,aAAa;AACtC,QAAI,CAAC,MAAM,SAAU,OAAM;AAC3B,QAAI,CAAC,MAAM,SAAS,OAAQ,OAAM;AAClC,QAAI,MAAM,eAAe;AACxB,UAAI,MAAM,cAAc,UAAU,EAAG,OAAM;AAC3C,YAAM,oBAAoB,MAAM,cAAc,IAAI,OAAK,EAAE,QAAQ;AACjE,UAAI,kBAAkB,UAAU,IAAI,IAAI,iBAAiB,EAAE,KAAM,OAAM;AACvE,YAAM,qBAAqB,CAAC;AAC5B,iBAAW,OAAO,MAAM,eAAe;AACtC,YAAI,CAAC,IAAI,SAAU,OAAM,yCAAyC,IAAI,IAAI;AAC1E,YAAI,CAAC,IAAI,YAAY,IAAI,SAAS,UAAU,EAAG,OAAM,wCAAwC,IAAI,IAAI;AACrG,mBAAW,WAAW,IAAI,UAAU;AACnC,cAAI,CAAC,QAAQ;AACZ,kBAAM,0BAA0B,QAAQ,OAAO,aAAa,QAAQ,IAAI,KAAK,YAAY,IAAI,IAAI,QAAQ;AAC1G,6BAAmB,KAAK,QAAQ,EAAE;AAAA,QACnC;AACA,YAAI,IAAI,SAAS,UAAU,IAAI,IAAI,IAAI,QAAQ,EAAE,MAAM;AACtD,gBAAM,6BAA6B,OAAO,KAAK,KAAK,UAAU,UAAU,CAAC;AAAA,QAC1E;AAAA,MACD;AACA,UAAI,mBAAmB,UAAU,IAAI,IAAI,kBAAkB,EAAE,KAAM,OAAM;AAGzE,iBAAW,WAAW,MAAM,UAAU;AACrC,YAAI,CAAC,QAAQ,QAAS,OAAM,2BAA2B,QAAQ,IAAI,MAAM,QAAQ,IAAI;AACrF,YAAI,CAAC,mBAAmB,KAAK,OAAK,KAAK,QAAQ,OAAO;AACrD,gBAAM,aAAa,QAAQ,OAAO,QAAQ,QAAQ,IAAI,MAAM,QAAQ,IAAI;AAAA,MAC1E;AAAA,IACD;AACA,WAAO;AAAA,EACR;AAAA,EAEA,MAAM,eAAe;AAGpB,UAAM,KAAK,MAAM,SAAS,KAAK,IAAI,YAAY,aAAa;AAC5D,QAAI,GAAG,OAAO;AACb,eAAS,KAAK,IAAI,OAAO,OAAO,KAAK,GAAG,GAAG,KAAK;AAChD;AAAA,IACD;AACA,WAAO;AAAA,EACR;AAAA,EAEA,mBAAmB;AAClB,UAAM,WAAW,KAAK,MAAM,eAAe,QAAQ,kBAAkB,CAAC,KAAK,CAAC;AAC5E,SAAK,WAAW,KAAK,MAAM,SAAS,OAAO,OAAK,CAAC,EAAE,WAAW,CAAC,EAAE,iBAAiB,SAAS,EAAE,aAAa,EAAE;AAAA,EAC7G;AAAA,EAEA,MAAM,OAAO;AACZ,SAAK,QAAQ,MAAM,KAAK,kBAAkB;AAC1C,SAAK,mBAAmB;AACxB,IAAAC,cAAa,IAAI;AACjB,SAAK,iBAAiB;AACtB,SAAK,SAAS,KAAK,MAAM,gBAAgB,KAAK,MAAM,gBAAgB;AACpE,SAAK,aAAa;AAAA,MACjB,UAAU,CAAC;AAAA,IACZ;AAAA,EACD;AAAA,EAEA,MAAM,OAAO;AAEZ,QAAI,KAAK,oBAAoB,KAAM;AACnC,SAAK,mBAAmB;AACxB,eAAW,WAAW,KAAK,UAAU;AACpC,YAAM,SAAS,eAAO,KAAK,SAAS,IAAI,QAAQ,OAAO,0BAA0B,oBAAoB;AACrG,UAAI,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,cAAc;AAC3D,aAAK,WAAW,SAAS;AAAA,UACxB,MAAM,SAAS;AAAA,YACd,KAAK,KAAK;AAAA,YACV,QAAQ,OACN,MAAM,WAAW,MAAM,EACvB,MAAM,yBAAyB,sCAAsC,EACrE,MAAM,OAAO,MAAM,EACnB,MAAM,cAAc,MAAM,EAC1B,MAAM,UAAU,UAAU;AAAA,YAC5B;AAAA,YACA,KAAK,KAAK,KAAK;AAAA,YACf,OAAO,KAAK;AAAA,YACZ,YAAY,KAAK,IAAI;AAAA,UACtB,CAAC;AAAA,QACF;AAAA,MACD,WAAW,QAAQ,QAAQ,YAAY;AACtC,aAAK,WAAW,SAAS;AAAA,UACxB,MAAM,WAAW;AAAA,YAChB,KAAK,KAAK;AAAA,YACV;AAAA,YACA;AAAA,YACA,KAAK,KAAK,KAAK;AAAA,YACf,OAAO,KAAK;AAAA,YACZ,YAAY,KAAK,IAAI;AAAA,UACtB,CAAC;AAAA,QACF;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD;AAEO,IAAM,aAAa,YAAY,mBAAmB;AAEzD,SAASA,cAAa,MAAM;AAC3B,MAAI,CAAC,KAAK,MAAM,cAAe,iBAAgB,IAAI;AACnD,MAAI,KAAK,MAAM,cAAe,eAAc,IAAI;AACjD;AAEA,SAAS,gBAAgB,MAAM;AAC9B,QAAM,aAAa,KAAK,IAAI,QAC1B,OAAO,KAAK,EACZ,MAAM,WAAW,MAAM,EACvB,MAAM,WAAW,MAAM,EACvB,QAAQ,qBAAqB,IAAI;AACnC,SAAO;AACR;AAEA,SAAS,cAAc,MAAM;AAE5B,QAAM,aAAa,KAAK,IAAI,QAC1B,OAAO,KAAK,EACZ,MAAM,WAAW,MAAM,EACvB,MAAM,yBAAyB,sCAAsC,EACrE,MAAM,OAAO,MAAM,EACnB,MAAM,WAAW,MAAM,EACvB,MAAM,cAAc,MAAM;AAG5B,QAAM,YAAY,CAAC;AACnB,aAAW,UAAU,KAAK,MAAM,cAAe,WAAU,KAAK,OAAO,QAAQ;AAC7E,aAAW,MAAM,uBAAuB,IAAI,UAAU,SAAS,EAAE,QAAQ,KAAK,GAAG,CAAC,GAAG;AACrF,aAAW,OAAO,KAAK,MAAM,eAAe;AAC3C,UAAM,SAAS,WAAW,OAAO,KAAK,EAAE,MAAM,aAAa,IAAI,QAAQ,EAAE,QAAQ,oBAAoB,IAAI;AACzG,eAAW,WAAW,IAAI,SAAU,YAAW,SAAS,MAAM;AAAA,EAC/D;AAEA,WAAS,WAAW,SAAS,QAAQ;AACpC,UAAM,aAAa,OAAO,OAAO,KAAK,EAAE,KAAK,MAAM,QAAQ,EAAE;AAC7D,QAAI,QAAQ;AACX,iBACE,OAAO,IAAI,EACX,QAAQ,uBAAuB,IAAI,EACnC,MAAM,SAAS,IAAI,YAAY,EAAE,OAAO,CAAC,EACzC,KAAK,QAAQ,IAAI;AACpB,eAAW,OAAO,KAAK,EAAE,QAAQ,qBAAqB,IAAI,EAAE,MAAM,WAAW,MAAM;AAEnF,WAAO;AAAA,EACR;AACD;;;ACpKA,IAAM,iBAAN,MAAqB;AAAA,EACpB,YAAY,MAAM;AACjB,SAAK,OAAO;AACZ,SAAK,OAAO,KAAK,aAAa,IAAI;AAClC,SAAK,MAAM,KAAK;AAChB,SAAK,QAAQ,KAAK;AAClB,SAAK,kBAAkB;AACvB,IAAAC,cAAa,IAAI;AAAA,EAClB;AAAA,EAEA,aAAa,MAAM;AAClB,WAAO,KAAK,IAAI;AAAA,EACjB;AAAA,EAEA,SAAS,UAAU;AAClB,WAAO;AAAA,MACN,cAAc,SAAS;AAAA,IACxB;AAAA,EACD;AAAA,EAEA,MAAM,OAAO;AACZ,SAAK,cAAc;AACnB,SAAK,mBAAmB;AACxB,QAAI;AAEH,UAAI,OAAO,SAAS,YAAY,OAAO,CAAC,OAAO,SAAS,OAAO;AAC9D,cAAM,KAAK,IAAI,SAAS,EAAE,MAAM,sBAAsB,OAAO,KAAK,CAAC;AACpE,WAAK,aAAa;AAAA,QACjB,QAAQ,CAAC;AAAA,MACV;AAAA,IACD,SAAS,GAAG;AACX,YAAM;AAAA,IACP;AAAA,EACD;AAAA,EAEA,MAAM,KAAK,UAAU;AACpB,QAAI,KAAK,IAAI,SAAS,QAAQ,EAAE,gBAAgB,QAAQ,KAAK,eAAe,OAAO;AAClF,WAAK,IAAI,UAAU,MAAM,oBAAoB,SAAS;AAEtD,WAAK,WAAW,OAAO;AAAA,QACtB,MAAM,WAAW;AAAA,UAChB,KAAK,KAAK;AAAA,UACV,KAAK,KAAK;AAAA,UACV,OAAO,KAAK;AAAA,QACb,CAAC;AAAA,MACF;AAEA,iBAAW,MAAM;AAChB,aAAK,mBAAmB,KAAK,IAAI,UAAU,KAAK,EAAE,sBAAsB,EAAE,SAAS;AAAA,MACpF,GAAG,KAAK,MAAM,WAAW,CAAC;AAC1B,kBAAY,IAAI;AAChB,WAAK,cAAc;AAAA,IACpB;AACA,QAAI,KAAK,MAAM,gBAAgB,SAAS,KAAK,eAAe,KAAM,aAAY,IAAI;AAAA,EACnF;AACD;AAEO,IAAM,cAAc,YAAY,cAAc;AAErD,SAASA,cAAa,MAAM;AAC3B,OAAK,IAAI,WACP,MAAM,oBAAoB,KAAK,MAAM,eAAe,YAAY,SAAS,EACzE,MAAM,SAAS,KAAK,MAAM,eAAe,SAAS,MAAM,EACxD,GAAG,SAAS,OAAM,UAAS;AAC3B,UAAM,gBAAgB;AACtB,UAAM,KAAK,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACtD,gBAAY,IAAI;AAChB,QAAI,KAAK,MAAM,cAAc;AAC5B,iBAAW,MAAM;AAChB,aAAK,mBAAmB,KAAK,IAAI,UAAU,KAAK,EAAE,sBAAsB,EAAE,SAAS;AAAA,MACpF,GAAG,KAAK,MAAM,WAAW,CAAC;AAAA,IAC3B;AAAA,EACD,CAAC;AAEF,OAAK,IAAI,IACP,KAAK,SAAS,gBAAgB,EAC9B,MAAM,WAAW,cAAc,EAC/B,MAAM,oBAAoB,aAAa,EACvC,MAAM,SAAS,KAAK,MAAM,eAAe,SAAS,MAAM,EACxD,MAAM,WAAW,KAAK,KAAK,OAAO,EAClC,MAAM,UAAU,SAAS,EACzB,MAAM,UAAU,SAAS,EACzB,KAAK,MAAM;AAGb,OAAK,IAAI,WACP,MAAM,YAAY,UAAU,EAC5B,MAAM,WAAW,cAAc,EAC/B,MAAM,UAAU,KAAK,MAAM,UAAU,SAAS,IAAI,EAClD,MAAM,SAAS,KAAK,MAAM,eAAe,KAAK,MAAM,UAAU,OAAO,KAAK,MAAM,UAAU,MAAM,EAChG,MAAM,oBAAoB,aAAa,EACvC,MAAM,cAAc,QAAQ,EAC5B,MAAM,UAAU,SAAS;AAE3B,OAAK,IAAI,YACP,MAAM,YAAY,UAAU,EAC5B,MAAM,aAAa,KAAK,MAAM,UAAU,SAAS,IAAI,EACrD,MAAM,SAAS,KAAK,MAAM,QAAQ,OAAO,KAAK,IAAI,EAClD,MAAM,UAAU,KAAK,MAAM,QAAQ,OAAO,MAAM,IAAI,EACpD,MAAM,oBAAoB,aAAa,EACvC,MAAM,SAAS,KAAK,MAAM,WAAW,MAAM,EAC3C,MAAM,WAAW,KAAK,MAAM,eAAe,IAAI,CAAC,EAChD,MAAM,UAAU,SAAS,EACzB,KAAK,SAAS;AAEhB,OAAK,IAAI,gBACP,MAAM,YAAY,UAAU,EAC5B,MAAM,aAAa,KAAK,MAAM,UAAU,OAAO,IAAI,EACnD,MAAM,QAAQ,KAAK,MAAM,QAAQ,KAAK,OAAO,IAAI,EACjD,MAAM,UAAU,KAAK,MAAM,QAAQ,KAAK,MAAM,IAAI,EAClD,MAAM,aAAa,gBAAgB,EACnC,MAAM,oBAAoB,aAAa,EACvC,MAAM,SAAS,KAAK,MAAM,WAAW,IAAI,EACzC,MAAM,WAAW,KAAK,MAAM,eAAe,IAAI,CAAC,EAChD,MAAM,UAAU,SAAS,EACzB,MAAM,kBAAkB,KAAK,MAAM,eAAe,SAAS,MAAM,EACjE,KAAK,SAAS;AAEhB,OAAK,mBAAmB,KAAK,IAAI,UAAU,KAAK,EAAE,sBAAsB,EAAE,SAAS;AACpF;AAEA,eAAsB,YAAY,MAAM;AACvC,OAAK,IAAI,WACP,WAAW,EACX,SAAS,KAAK,KAAK,MAAM,QAAQ,EACjC,MAAM,oBAAoB,KAAK,MAAM,eAAe,YAAY,SAAS,EACzE,MAAM,SAAS,KAAK,MAAM,eAAe,SAAS,MAAM;AAE1D,OAAK,IAAI,IACP,WAAW,EACX,SAAS,KAAK,KAAK,MAAM,QAAQ,EACjC,MAAM,SAAS,KAAK,MAAM,eAAe,SAAS,MAAM;AAE1D,OAAK,IAAI,UACP,MAAM,WAAW,cAAc,EAC/B,WAAW,EACX,SAAS,KAAK,KAAK,MAAM,QAAQ,EACjC,MAAM,OAAO,KAAK,MAAM,eAAe,QAAQ,MAAM,KAAK,mBAAmB,IAAI;AAEnF,OAAK,IAAI,UACP,WAAW,EACX,SAAS,KAAK,KAAK,MAAM,QAAQ,EACjC,MAAM,UAAU,KAAK,MAAM,eAAe,KAAK,mBAAmB,OAAO,KAAK;AAEhF,OAAK,IAAI,WACP,WAAW,EACX,SAAS,KAAK,KAAK,MAAM,QAAQ,EACjC,MAAM,SAAS,KAAK,MAAM,eAAe,KAAK,KAAK,MAAM,UAAU,OAAO,KAAK,KAAK,MAAM,UAAU,MAAM;AAE5G,OAAK,IAAI,YACP,WAAW,EACX,SAAS,KAAK,KAAK,MAAM,QAAQ,EACjC,MAAM,WAAW,KAAK,MAAM,eAAe,IAAI,CAAC;AAElD,OAAK,IAAI,gBACP,MAAM,kBAAkB,KAAK,MAAM,eAAe,SAAS,MAAM,EACjE,WAAW,EACX,SAAS,KAAK,KAAK,MAAM,QAAQ,EACjC,MAAM,WAAW,KAAK,MAAM,eAAe,IAAI,CAAC;AACnD;;;ACtKA,IAAM,iBAAN,MAAqB;AAAA,EACpB,YAAY,MAAM;AACjB,SAAK,OAAO;AACZ,SAAK,eAAe;AAAA;AAAA,MAEnB,UAAU;AAAA,MACV,SAAS;AAAA,QACR,MAAM,EAAE,KAAK,KAAK,MAAM,GAAG;AAAA,QAC3B,QAAQ,EAAE,KAAK,GAAG,IAAI,EAAE;AAAA,MACzB;AAAA,MACA,WAAW,EAAE,MAAM,OAAO,QAAQ,OAAO;AAAA,MACzC,WAAW,EAAE,MAAM,IAAI,QAAQ,GAAG;AAAA,MAClC,YAAY,EAAE,MAAM,oBAAoB,QAAQ,gBAAgB;AAAA,MAChE,cAAc;AAAA,IACf;AAAA,EACD;AAAA,EAEA,MAAM,OAAO;AAAA,EAAC;AACf;AAEO,IAAM,qBAAqB,aAAa,cAAc;AAE7D,eAAe,UAAU,UAAU;AAAA,EAClC,mBAAmB,QAAQ;AAC1B,SAAK,MAAM,eAAe,WAAW,SAAS,OAAO,QAAQ,CAAC,KAAK,MAAM;AAAA,EAC1E;AACD;;;ACZA,IAAM,eAAN,MAAmB;AAAA,EAClB,YAAY,MAAM;AACjB,SAAK,OAAO;AAEZ,UAAM,YAAY,KAAK,UACrB,OAAO,KAAK,EACZ,MAAM,YAAY,UAAU,EAC5B,MAAM,UAAU,QAAQ,EACxB,MAAM,WAAW,KAAK,KAAK,OAAO,EAAE,EACpC,MAAM,WAAW,cAAc,EAC/B,MAAM,YAAY,QAAQ,EAC1B,MAAM,iBAAiB,iBAAiB,EACxC,MAAM,SAAS,MAAM,EACrB,QAAQ,mBAAmB,IAAI;AAEjC,UAAM,aAAa,KAAK,QACtB,OAAO,KAAK,EACZ,MAAM,YAAY,UAAU,EAC5B,MAAM,WAAW,cAAc,EAC/B,MAAM,eAAe,KAAK,EAC1B,MAAM,gBAAgB,KAAK,EAC3B,MAAM,iBAAiB,KAAK,EAC5B,QAAQ,yBAAyB,IAAI;AAEvC,SAAK,MAAM;AAAA,MACV,WAAW,KAAK;AAAA,MAChB;AAAA,MACA,YAAY,KAAK;AAAA,MACjB;AAAA,MACA,KAAK,WAAW,OAAO,KAAK;AAAA,MAC5B,YAAY,WAAW,OAAO,KAAK;AAAA,MACnC,aAAa,WAAW,OAAO,KAAK;AAAA,MACpC,iBAAiB,WAAW,OAAO,KAAK;AAAA,MACxC,SAAS,UAAU,OAAO,KAAK;AAAA,IAChC;AAAA,EACD;AAAA,EAEA,aAAa,KAAK;AACjB,QAAI,YAAY,KAAK,KAAK;AAAA,EAC3B;AAAA,EAEA,MAAM,OAAO;AACZ,QAAI;AACH,WAAK,QAAQ,MAAM,mBAAmB,EAAE,KAAK,KAAK,KAAK,OAAO,KAAK,KAAK,MAAM,CAAC;AAC/E,WAAK,QAAQ,MAAM,KAAK,MAAM,UAAU;AACxC,WAAK,aAAa;AAAA,QACjB,SAAS,MAAM,YAAY;AAAA,UAC1B,KAAK,KAAK;AAAA,UACV,KAAK,KAAK;AAAA,UACV,OAAO,KAAK;AAAA,UACZ,WAAW,KAAK;AAAA,QACjB,CAAC;AAAA,MACF;AACA,YAAM,KAAK,IAAI,SAAS;AAAA,IACzB,SAAS,GAAG;AACX,YAAM;AAAA,IACP;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,EAAC;AACT;AAEO,IAAM,gBAAgB,WAAW,YAAY;;;ACpD7C,IAAM,YAAN,MAAM,WAAU;AAAA,EAYtB;AAAA;AAAA;AAAA;AAAA,SAAO,OAAO;AAAA,MACb;AAAA,QACC,OAAO;AAAA,QACP,MAAM;AAAA,MACP;AAAA,MACA;AAAA,QACC,OAAO;AAAA,QACP,MAAM;AAAA,MACP;AAAA,MACA;AAAA,QACC,OAAO;AAAA,QACP,MAAM;AAAA,MACP;AAAA,MACA;AAAA,QACC,OAAO;AAAA,QACP,MAAM;AAAA,MACP;AAAA,MACA;AAAA,QACC,OAAO;AAAA,QACP,MAAM;AAAA,QACN,YAAY;AAAA,MACb;AAAA,MACA;AAAA,QACC,OAAO;AAAA,QACP,MAAM;AAAA,QACN,YAAY;AAAA,MACb;AAAA,IACD;AAAA;AAAA,EAEA,YAAY,MAAqB;AAChC,SAAK,UAAU,KAAK;AACpB,SAAK,MAAM,KAAK;AAChB,SAAK,OAAO,KAAK;AACjB,SAAK,MAAM,KAAK;AAChB,SAAK,eAAe,CAAC;AAAA,EACtB;AAAA,EAEA,MAAM,yBAAyB;AAC9B,UAAM,KAAK,MAAM,SAAS,KAAK,IAAI,YAAY,iBAAiB;AAChE,QAAI,GAAG,MAAO,SAAQ,MAAM,4CAA4C;AAExE,SAAK,eAAe,IAAI,cAAc,SACnC,GAAG,aAAa,OAAO,CAAC,MAAgB,EAAE,cAAc,EAAE,KAAK,CAAC,GAAa,MAAgB,EAAE,OAAO,EAAE,IAAI,IAC5G,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,aAAa;AAClB,UAAM,KAAK,uBAAuB;AAElC,UAAM,QAAQ,IAAM,YAAY;AAChC,UAAM,UAAU;AAChB,UAAM,aAAa;AACnB,UAAM,UAAU;AAChB,UAAM,YAAY,SAAS,gBAAgB;AAE3C,UAAM,MAAM,KAAK,IAAI,OACnB,OAAO,KAAK,EACZ,MAAM,eAAe,QAAQ,EAC7B;AAAA,MACA;AAAA,MACA,YAAY,OAAO,oBAAoB,MAAM,IAAI,MAAM,MAAM,IAAI,MAAM,MAAM,IAAI,SAAS;AAAA,IAC3F;AAED,UAAM,UAAU,IACd,OAAO,KAAK,EACZ,MAAM,UAAU,MAAM,EACtB,MAAM,WAAW,KAAK,EACtB,MAAM,kBAAkB,MAAM,EAC9B,MAAM,WAAW,YAAY,OAAO,UAAU,cAAc,EAC5D;AAAA,MACA;AAAA,MACA,YAAY,OAAO,oBAAoB,MAAM,IAAI,MAAM,MAAM,IAAI,MAAM,MAAM,IAAI,SAAS;AAAA,IAC3F;AAID,UAAM,WAAW,IACf,OAAO,KAAK,EACZ,MAAM,WAAW,cAAc,EAC/B,MAAM,WAAW,OAAO,EACxB,MAAM,gBAAgB,MAAM,EAC5B,MAAM,aAAa,MAAM,EACzB,MAAM,SAAS,IAAM,YAAY,EAAE,OAAO,CAAC;AAE7C;AAEC,YAAMC,OAAM,SAAS,OAAO,KAAK,EAAE,MAAM,gBAAgB,MAAM;AAG/D,YAAM,OAAO;AACb,YAAM,UAAU,KAAK,KAAK,SACvB,6BAA6B,IAAI,aAAa,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MAAM,SACnF,cAAc,KAAK,KAAK,QAAQ;AACnC,MAAAA,KACE,KAAK,MAAM,iBAAiB,EAC5B,OAAO,MAAM,EACb,KAAK,GAAG,OAAO,sBAAsB,KAAK,KAAK,cAAc,IAAI,GAAG;AACtE,UAAI,KAAK,KAAK,SAAS;AACtB,QAAAA,KACE,OAAO,GAAG,EACV,MAAM,eAAe,MAAM,EAC3B,KAAK,cAAc,EACnB,GAAG,SAAS,OAAM,UAAS;AAC3B,eAAK,QAAQ,MAAM,EAAE,UAAU,MAAM,MAAM;AAC3C,gBAAM,MAAM,KAAK,QAAQ,EAAE,OAAO,KAAK,EAAE,MAAM,UAAU,MAAM;AAC/D,gBAAM,OAAO,IAAI,OAAO,KAAK,EAAE,KAAK,YAAY;AAChD,cAAI;AACH,kBAAM,OAAO,MAAM,SAAS,mBAAmB;AAC/C,gBAAI,KAAK,MAAO,OAAM,KAAK;AAC3B,gBAAI,CAAC,KAAK,IAAK,OAAM;AACrB,iBAAK,OAAO;AACZ,uBAAW,KAAK,KAAK,KAAK;AACzB,kBAAI,OAAO,KAAK,EAAE,KAAK,CAAC;AAAA,YACzB;AAAA,UACD,SAAS,GAAQ;AAChB,iBAAK,KAAK,EAAE,WAAW,CAAC;AACxB,gBAAI,EAAE,MAAO,SAAQ,MAAM,EAAE,KAAK;AAAA,UACnC;AAAA,QACD,CAAC;AAAA,MACH;AAAA,IACD;AACA,QAAI,KAAK,KAAK,eAAe;AAC5B,eAAS,OAAO,KAAK,EAAE,KAAK,KAAK,KAAK,aAAa;AAAA,IACpD;AAGA,YACE,OAAO,KAAK,EACZ,KAAK,cAAc,EACnB,MAAM,WAAW,cAAc,EAC/B,MAAM,WAAW,OAAO,EACxB,MAAM,SAAS,YAAY,EAC3B,MAAM,aAAa,OAAO,EAC1B,MAAM,eAAe,MAAM;AAG7B,UAAM,aAAa,IAAI,YAAY;AAAA,MAClC,QAAQ;AAAA,MACR,KAAK,KAAK;AAAA,MACV,OAAO;AAAA,QACN,SAAS;AAAA,QACT,QAAQ,cAAc,YAAY;AAAA,MACnC;AAAA,MACA,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO;AAAA,MACP,aAAa,YAAY;AACxB,eAAO,MAAM,YAAY,KAAK,KAAK,KAAK,SAAS,WAAU,MAAM,KAAK,cAAc,KAAK,GAAG;AAAA,MAC7F;AAAA,IACD,CAAC;AAED,eAAW,OAAO;AAElB,UAAM,oBAAoB,QAAQ,OAAO,KAAK,EAAE,KAAK,SAAS,wBAAwB,EAAE,MAAM,WAAW,OAAO;AAEhH,UAAM,kBAAkB,MAAM;AAC7B,YAAM,QAAQ,KAAK,IAAI,QAAQ,KAAK,IAAI,aAAa,SAAS,OAAO,CAAC;AAEtE,YAAM,YAAY,CAAC,QAAQ,YAAY,KAAK;AAE5C,UAAI,MAAM,OAAQ,WAAU,OAAO,GAAG,GAAG,KAAK;AAC9C,UAAI,OAAO,KAAK,MAAM,QAAQ,EAAE,OAAQ,WAAU,KAAK,SAAS;AAChE,YAAM,MAAM,UAAU,KAAK,IAAI,EAAE,QAAQ,eAAe,MAAM;AAC9D,aAAO;AAAA,IACR;AAEA,SAAK,IAAI,eAAe,kBACtB,OAAO,QAAQ,EACf,KAAK,cAAc,iBAAiB,EACpC,KAAK,SAAS,oBAAoB,EAClC,MAAM,WAAW,UAAU,EAC3B,MAAM,UAAU,eAAe,YAAY,EAC3C,GAAG,UAAU,MAAM;AACnB,WAAK,0BAA0B,KAAK,GAAG;AACvC,iBAAW,kBAAkB,gBAAgB,CAAC;AAAA,IAC/C,CAAC;AAEF,UAAM,gBAAgB,OAAO,OAAO,KAAK,IAAI,OAAO,EAAE,OAAO,CAAC,MAAW,CAAC,EAAE,YAAY;AACxF,eAAW,KAAK,eAAe;AAC9B,WAAK,IAAI,aAAa,OAAO,QAAQ,EAAE,KAAK,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,OAAO,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS,SAAS,EAAE,IAAI;AAAA,IACjH;AACA,SAAK,IAAI,qBAAqB,KAAK,wBAAwB,KAAK,KAAK,SAAS,KAAK,GAAG;AAEtF,SAAK,IAAI,SAAS,MAAM,cAAc;AAAA,MACrC,QAAQ,KAAK,IAAI;AAAA,MACjB,SAAS,KAAK,IAAI;AAAA,MAClB,WAAW,KAAK,IAAI,OAClB,OAAO,KAAK,EACZ,MAAM,YAAY,UAAU,EAC5B,MAAM,cAAc,SAAS,EAC7B,MAAM,cAAc,QAAQ,EAC5B,QAAQ,mBAAmB,IAAI;AAAA,MACjC,YAAY,KAAK,IAAI,OAAO,OAAO,KAAK,EAAE,MAAM,cAAc,MAAM,EAAE,QAAQ,uBAAuB,IAAI;AAAA,MACzG,oBAAoB,KAAK,IAAI;AAAA,MAC7B,WAAW,KAAK,IAAI;AAAA,MACpB;AAAA,MACA;AAAA,MACA,WAAW,KAAK,IAAI;AAAA,IACrB,CAAC;AAGD,YACE,OAAO,MAAM,EACb,QAAQ,kBAAkB,IAAI,EAC9B,KAAK,MAAM,sBAAsB,EACjC,MAAM,WAAW,OAAO,EACxB,KAAK,MAAM,EACX,GAAG,SAAS,OAAM,UAAS;AAC3B,YAAM,IAAI,MAAM,OAAO,sBAAsB;AAC7C,YAAM,MAAM,KAAK,QAAQ,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC;AAEtE,YAAM,IAAI,EACR,OAAO,KAAK,EACZ,MAAM,WAAW,UAAU,EAC3B,UAAU,GAAG,EACb,KAAK,WAAU,KAAK,OAAO,OAAK,CAAC,EAAE,UAAU,CAAC,EAC9C,MAAM,EACN,OAAO,GAAG,EACV,KAAK,OAAK,WAAW,EAAE,IAAI,kBAAkB,EAAE,KAAK,MAAM;AAAA,IAC7D,CAAC;AAIF,QAAI,KAAK,aAAa,SAAS,GAAG;AACjC,cACE,OAAO,MAAM,EACb,QAAQ,kBAAkB,IAAI,EAC9B,KAAK,MAAM,8BAA8B,EACzC,MAAM,WAAW,OAAO,EACxB,MAAM,UAAU,SAAS,EACzB,KAAK,cAAc,EACnB,GAAG,SAAS,OAAM,UAAS;AAC3B,cAAM,IAAI,MAAM,OAAO,sBAAsB;AAC7C,cAAM,MAAM,KAAK,QAAQ,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC;AAExE,cAAM,IAAI,EACR,OAAO,KAAK,EACZ,MAAM,WAAW,UAAU,EAC3B,UAAU,GAAG,EACb,KAAK,KAAK,YAAY,EACtB,MAAM,EACN,OAAO,GAAG,EACV,KAAK,CAAC,MAAW,WAAW,EAAE,GAAG,kBAAkB,EAAE,cAAc,KAAK,EAAE,OAAO,KAAK,EAAE,IAAI,MAAM;AAAA,MACrG,CAAC;AAAA,IACH;AAAA,EACD;AAAA,EAEA,wBAAwB,KAAK,SAAS,KAAK;AAC1C,QAAI,IAAI,aAAa,KAAK,EAAE,QAAQ,WAAW,GAAG;AACjD,cAAQ,MAAM,mCAAmC;AACjD;AAAA,IACD;AAEA,UAAM,OAAO;AACb,UAAM,iBAAiB,QAAQ,OAAO,MAAM;AAC5C,UAAM,aAAa,IAAI,aAAa,KAAK,EAAE,QAAQ,IAAI,aAAa,SAAS,eAAe,CAAC,EAAE;AAE/F,UAAM,gBAAgB,eACpB,KAAK,SAAS,gBAAgB,EAC9B,KAAK,MAAM,YAAY,EACvB,MAAM,WAAW,IAAI,EACrB,MAAM,UAAU,EAChB,KAAK,aAAa,iBAAiB,EACnC,GAAG,SAAS,MAAM;AAElB,YAAM,iBAAiB,IAAI,aAAa,KAAK,EAAE;AAC/C,YAAM,IAAI,IAAI,QAAQ,cAAc;AACpC,UAAI,CAAC,GAAG;AACP,cAAM,0BAA0B,cAAc;AAC9C;AAAA,MACD;AACA,YAAM,cAAc,cAAc,IAAI,OAAO,KAAK,UAAU;AAC5D,kBAAY,OAAO,KAAK,iBAAiB,iBAAiB;AAE1D,YAAM,MAAM;AAAA,QACX,SAAS,IAAI;AAAA,QACb;AAAA,QACA,QAAQ,YAAY;AAAA,QACpB,QAAQ;AAAA,QACR,KAAK,EAAE,aAAa;AAAA,QACpB,OAAO,EAAE,aAAa;AAAA,QACtB,MAAM,EAAE,aAAa;AAAA,QACrB,OAAO;AAAA,QACP,OAAO,CAAC;AAAA,QACR,WAAW,IAAI;AAAA,MAChB;AACA,6BAAuB,GAAG,IAAI,KAAK;AAEnC,aAAO,qBAAa,EAAE,KAAK,OAAK,IAAI,EAAE,MAAM,GAAG,CAAC;AAChD,UAAI,OAAO,SAAS,EAAE,MAAM,sBAAsB,OAAO,MAAM,CAAC;AAAA,IACjE,CAAC;AACF,WAAO;AAAA,EACR;AAAA,EAEA,0BAA0B,KAAK;AAC9B,QAAI,mBAAmB,KAAK,IAAI,aAAa,KAAK,EAAE,QAAQ,iBAAiB;AAC7E,QAAI,mBAAmB,MAAM,IAAI,aAAa,KAAK,EAAE,KAAK;AAAA,EAC3D;AACD;",
|
|
4
|
+
"sourcesContent": ["import { dofetch3 } from '#common/dofetch'\nimport { openSandbox } from '../../appdrawer/adSandbox'\nimport { newSandboxDiv, throwMsgWithFilePathAndFnName } from '#dom'\nimport { string2pos } from '../coord'\nimport * as parseurl from '../app.parseurl'\nimport urlmap from '#common/urlmap'\nimport { first_genetrack_tolist } from '#common/1stGenetk'\nimport blockinit from '../block.init'\nimport { select as d3select } from 'd3-selection'\n\n/*\n----EXPORTED----\nsearchItems()\nfindgenelst()\nfindgene2paint()\n\n----Internal----\nfindAppDrawerElements()\ngetExampleNames()\ngetFilteredElements()\n*/\n\nexport async function searchItems(app, tip, help, publications, jwt) {\n\tconst userInput = d3select('input').property('value').trim()\n\tconst data = [\n\t\t{\n\t\t\ttitle: 'Genes',\n\t\t\tdefault: true,\n\t\t\titems: await findgenelst(userInput, app.selectgenome.property('value'), jwt),\n\t\t\tcolor: '#F2F2F2',\n\t\t\tcallback: d => {\n\t\t\t\tapp.drawer.dispatch({ type: 'is_apps_btn_active', value: false })\n\t\t\t\ttip.hide()\n\t\t\t\tfindgene2paint(d, app, app.selectgenome.property('value'), jwt)\n\t\t\t}\n\t\t}\n\t]\n\tawait findAppDrawerElements(app, userInput, data, tip)\n\t//Keep 'Help' section second last\n\tdata.push({\n\t\ttitle: 'Help',\n\t\tdefault: false,\n\t\titems: help.filter(d => d.label.toLowerCase().includes(userInput.toLowerCase())),\n\t\tcolor: '#faebd9',\n\t\tcallback: d => {\n\t\t\twindow.open(d.link, d.label)\n\t\t}\n\t})\n\tdata.push({\n\t\ttitle: 'Publications',\n\t\tdefault: false,\n\t\titems: publications.filter(\n\t\t\td =>\n\t\t\t\td.title.toLowerCase().includes(userInput.toLowerCase()) ||\n\t\t\t\td.appHeaderTitle.toLowerCase().includes(userInput.toLowerCase())\n\t\t),\n\t\tcolor: '#E6E6FA',\n\t\tcallback: d => {\n\t\t\twindow.open(d.doi, d.title)\n\t\t}\n\t})\n\treturn data\n}\n\nasync function findAppDrawerElements(app, input, data, tip) {\n\tconst re = await dofetch3(app.cardsPath + '/index.json')\n\tif (re.error) throwMsgWithFilePathAndFnName(`Problem retrieving ../cards/index.json`)\n\tconst userInput = input.toLowerCase().trim()\n\tconst elements = [...re.elements]\n\tlet filteredElements\n\tif (userInput.length > 2) {\n\t\t/** Adding the examples to the search terms is expensive\n\t\t * Limit when all card files are loaded based on user input\n\t\t * Maybe timeout instead? or combination of the two?\n\t\t */\n\t\tawait getExampleNames(elements, app)\n\t\tfilteredElements = getFilteredElements(elements, userInput)\n\t} else {\n\t\tfilteredElements = getFilteredElements(elements, userInput)\n\t}\n\n\tconst opts = {\n\t\tapp: app.drawer.opts,\n\t\tsandboxDiv: app.drawer.opts.sandboxDiv,\n\t\tgenomes: app.genomes,\n\t\tfromApp: true\n\t}\n\n\tdata.push(\n\t\t{\n\t\t\ttitle: 'Tracks and Apps',\n\t\t\titems: filteredElements.filter(c => c.type == 'card'),\n\t\t\tcolor: '#e1edf7',\n\t\t\tcallback: element => {\n\t\t\t\tapp.drawer.dispatch({ type: 'is_apps_btn_active', value: false })\n\t\t\t\ttip.hide()\n\t\t\t\topenSandbox(element, opts)\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\ttitle: 'Datasets',\n\t\t\titems: filteredElements.filter(c => c.type == 'dsButton'),\n\t\t\tcolor: '#e5f5e4',\n\t\t\tcallback: element => {\n\t\t\t\tapp.drawer.dispatch({ type: 'is_apps_btn_active', value: false })\n\t\t\t\ttip.hide()\n\t\t\t\topenSandbox(element, opts)\n\t\t\t}\n\t\t}\n\t)\n\treturn data\n}\n\nasync function getExampleNames(elements, app) {\n\tconst promises = elements.map(async elem => {\n\t\tif (elem.hidden || elem.type != 'card' || !elem.sandboxJson) return elem\n\t\tconst exs = await dofetch3(app.cardsPath + `/${elem.sandboxJson}.json`)\n\t\tif (exs?.ppcalls.length > 0) {\n\t\t\tfor (const c of exs.ppcalls) {\n\t\t\t\tif (c.isUI) return\n\t\t\t\tif (c?.label) elem.searchterms.push(c.label)\n\t\t\t}\n\t\t}\n\t})\n\n\tawait Promise.all(promises)\n}\n\nfunction getFilteredElements(elements, userInput) {\n\treturn elements\n\t\t.filter(elem => {\n\t\t\tif (elem.hidden) return false\n\t\t\tlet searchTermFound = (elem.searchterms || []).reduce((searchTermFound, searchTerm) => {\n\t\t\t\tif (searchTermFound) return true\n\t\t\t\treturn searchTerm.toLowerCase().includes(userInput)\n\t\t\t}, false)\n\t\t\treturn searchTermFound || elem.name.toLowerCase().includes(userInput)\n\t\t})\n\t\t.sort((a, b) => a.name.localeCompare(b.name))\n}\n\nexport async function findgenelst(str, genome, jwt) {\n\t//TODO - including something here about if user input includes a special character to return rather than comment out catch\n\tif (str.length == 0) return\n\ttry {\n\t\tconst data = await dofetch3('/genelookup', {\n\t\t\tbody: {\n\t\t\t\tinput: str,\n\t\t\t\tgenome,\n\t\t\t\tjwt\n\t\t\t}\n\t\t})\n\n\t\tif (data.error) throw data.error\n\t\tif (!data.hits) throw '.hits[] missing'\n\t\treturn data.hits\n\t} catch (err) {\n\t\t// err is likely \"invalid character in gene name\". ignore and continue\n\t\t// if (err.stack) console.log(err.stack)\n\t\t// throw err\n\t}\n}\n\nexport async function findgene2paint(str, app, genomename, jwt) {\n\tconst g = app.genomes[genomename]\n\tif (!g) {\n\t\tconsole.error('unknown genome ' + genomename)\n\t\treturn\n\t}\n\tconst sandbox_div = newSandboxDiv(app.drawer.opts.sandboxDiv)\n\tsandbox_div.header.html(\n\t\t'<div style=\"display:inline-block;\">' +\n\t\t\tstr +\n\t\t\t'</div><div class=\"sjpp-output-sandbox-title\">' +\n\t\t\tgenomename +\n\t\t\t'</div>'\n\t)\n\t// may yield tklst from url parameters\n\tconst urlp = urlmap()\n\tconst tklst = await parseurl.get_tklst(urlp, g)\n\n\tconst pos = string2pos(str, g)\n\tif (pos) {\n\t\t// input is coordinate, launch block\n\t\tconst par = {\n\t\t\thostURL: app.hostURL,\n\t\t\tjwt,\n\t\t\tholder: sandbox_div.body,\n\t\t\tgenome: g,\n\t\t\tnobox: true,\n\t\t\tchr: pos.chr,\n\t\t\tstart: pos.start - 1, // entered positions are 1-based. block uses 0-based\n\t\t\tstop: pos.stop - 1,\n\t\t\tdogtag: genomename,\n\t\t\ttklst,\n\t\t\tdebugmode: app.debugmode\n\t\t}\n\t\tfirst_genetrack_tolist(g, par.tklst)\n\n\t\timport('../block.js')\n\t\t\t.then(b => new b.Block(par))\n\t\t\t.catch(err => {\n\t\t\t\tapp.error0(err)\n\t\t\t})\n\t\treturn\n\t}\n\n\t// input string is not coordinate, find gene match\n\tconst par = {\n\t\thostURL: app.hostURL,\n\t\tjwt,\n\t\tquery: str,\n\t\tgenome: g,\n\t\tholder: sandbox_div.body,\n\t\tvariantPageCall_snv: app.variantPageCall_snv,\n\t\tsamplecart: app.samplecart,\n\t\ttklst,\n\t\tdebugmode: app.debugmode\n\t}\n\n\t// add svcnv tk from url param\n\tconst tmp = sessionStorage.getItem('urlp_mds')\n\tif (tmp) {\n\t\tconst l = tmp.split(',')\n\t\tif (l.length == 2) {\n\t\t\tpar.datasetqueries = [{ dataset: l[0], querykey: l[1] }]\n\t\t}\n\t}\n\n\tawait blockinit(par)\n}\n", "import { getCompInit } from '#rx'\nimport { rgb } from 'd3-color'\nimport { openSandbox } from './adSandbox'\nimport { slideDrawer } from './mainBtn'\n\n/*\n.opts{\n\t.app{\n\t\t.holder\n\t\t.element{}\n\t\t.sandboxDiv\n\t}\n}\n\nTODOs: \n\n- responsiveness of image on window resize \n\t- expand image size on resize\n\t- non square, take better use of space\n- Need fn in utils to decide black or white text based on background color contrast\n- Unify card and nestedCard layout. Only call one layout function for both\n\t- optional non image card layout\n\t- Make ribbons appear on nested cards\n- element.section only required if columnsLayout provided\n\n*/\n\nclass AppDrawerCard {\n\t// handles types 'card' and 'nestedCard'\n\tconstructor(opts) {\n\t\tthis.type = 'card'\n\t\tthis.opts = this.validateOpts(opts)\n\t\tthis.holder = opts.holder\n\t\tthis.dom = opts.dom\n\t\tthis.sandboxDiv = opts.sandboxDiv\n\t\tsetRenderers(this)\n\t}\n\n\tvalidateOpts(opts) {\n\t\tif (!opts.element.name) throw `Card .name is missing`\n\t\tif (opts.element.type == 'card') {\n\t\t\tif (!opts.element.sandboxJson && !opts.element.sandboxHtml)\n\t\t\t\tthrow `Either .sandboxJson or .sandboxHtml is missing for card=${opts.element.name}`\n\t\t}\n\t\tif (opts.element.type == 'nestedCard') {\n\t\t\tif (!opts.element.children || opts.element.children.length == 0)\n\t\t\t\tthrow `Missing .children for nested card = ${opts.element.name}`\n\t\t}\n\t\tif (opts.element.ribbon) {\n\t\t\tif (!opts.element.ribbon.text) throw `Missing ribbon .text for ${opts.element.type} = ${opts.element.name}`\n\n\t\t\t//ProteinPaint app drawer specific validation\n\t\t\tif (\n\t\t\t\t(opts.element.ribbon.text.toUpperCase() == 'NEW' || opts.element.ribbon.text.toUpperCase() == 'UPDATED') &&\n\t\t\t\t!opts.element.ribbon.expireDate\n\t\t\t)\n\t\t\t\tthrow `${opts.element.type} = ${\n\t\t\t\t\topts.element.name\n\t\t\t\t} ribbon is ${opts.element.ribbon.text.toUpperCase()} but .expireDate is missing. Please provide`\n\n\t\t\tif (opts.element.ribbon.expireDate) {\n\t\t\t\tif (opts.element.ribbon.expireDate >= 0) {\n\t\t\t\t\tthrow `Flag for ${opts.element.type} = ${opts.element.name} is not a valid date`\n\t\t\t\t} //TODO add validation for format?\n\t\t\t}\n\t\t}\n\t\treturn opts\n\t}\n\n\tmain() {}\n}\n\nexport const cardInit = getCompInit(AppDrawerCard)\n\nfunction setRenderers(self) {\n\tconst card = self.holder.append('li')\n\tif (self.opts.element.type == 'card') {\n\t\tcard.classed('sjpp-track', true).html(\n\t\t\t`<div class=\"sjpp-track-h\"><span style=\"font-size:14.5px;font-weight:500;\">${self.opts.element.name}</span></div>\n\t\t\t\t${\n\t\t\t\t\tself.opts.element.description\n\t\t\t\t\t\t? `<span class=\"sjpp-track-blurb\" style=\"cursor:default\">${self.opts.element.description}</span></div>`\n\t\t\t\t\t\t: ' '\n\t\t\t\t}\n\t\t\t\t<span class=\"sjpp-track-image\"><img src=\"${self.opts.element.image}\" alt=\"${\n\t\t\t\tself.opts.element.description\n\t\t\t}\"></img></span>\n\t\t\t\t</div>`\n\t\t)\n\t} else if (self.opts.element.type == 'nestedCard') {\n\t\tcard.classed('sjpp-app-drawer-card', true).html(\n\t\t\t`<p style=\"margin-left: 12px; font-size:14.5px;font-weight:500; display: block;\">${self.opts.element.name}</p>\n\t\t\t<p style=\"display: block; font-size: 13px; font-weight: 300; margin-left: 20px; justify-content: center; font-style:oblique; color: #403f3f;\">${self.opts.element.description}</p>`\n\t\t)\n\t}\n\n\tself.makeRibbon = function (ribbon) {\n\t\t//only relevant for 'card', not 'nestedCard'\n\t\tconst ribbonDiv = card\n\t\t\t.append('div')\n\t\t\t.classed('sjpp-app-drawer-card-ribbon', true)\n\t\t\t.style('align-items', 'center')\n\t\t\t.style('justify-content', 'center')\n\n\t\t//*********TODO: move from diagonal to straight on right side */\n\t\tconst text = ribbon.text.toUpperCase()\n\t\t//Enforce color palette for proteinpaint homepage ribbons\n\t\tconst color =\n\t\t\ttext == 'BETA'\n\t\t\t\t? '#418cb5'\n\t\t\t\t: text == 'NEW'\n\t\t\t\t? '#1ba176'\n\t\t\t\t: text == 'UPDATED'\n\t\t\t\t? 'orange'\n\t\t\t\t: ribbon.color\n\t\t\t\t? ribbon.color\n\t\t\t\t: 'red'\n\n\t\tribbonDiv\n\t\t\t.append('span')\n\t\t\t.text(text)\n\t\t\t.style('color', 'white')\n\t\t\t.style('background-color', rgb(color).darker())\n\t\t\t.style('height', 'auto')\n\t\t\t.style('width', '100%')\n\t\t\t.style('top', '15%')\n\t\t\t.style('left', '-30%')\n\t\t\t.style('font-size', '11.5px')\n\t\t\t.style('text-transform', 'uppercase')\n\t\t\t.style('text-align', 'center')\n\t}\n\n\tif (self.opts.element.ribbon) {\n\t\tconst today = new Date()\n\t\tconst ribbonExpireDate = new Date(self.opts.element.ribbon.expireDate)\n\t\t//Allows ribbons to expire or appear indefinitely\n\t\tif (ribbonExpireDate > today || ribbonExpireDate == 'Invalid Date') self.makeRibbon(self.opts.element.ribbon)\n\t}\n\n\tcard.on('click', async event => {\n\t\tevent.stopPropagation()\n\t\tawait self.app.dispatch({\n\t\t\ttype: 'is_apps_btn_active',\n\t\t\tvalue: false\n\t\t})\n\t\tslideDrawer(self)\n\t\t/** Focused elements rendering concurrently with the drawer\n\t\t * animation cause the drawer scrolling to jerk. Wait till\n\t\t * the animation is complete, then open the sandbox. */\n\t\tsetTimeout(async () => {\n\t\t\tawait openSandbox(self.opts.element, self.opts)\n\t\t}, self.state.duration + 5)\n\t})\n}\n", "import { getInitFxn } from '#rx'\nimport * as utils from './utils'\nimport { openSandbox } from './adSandbox'\nimport { slideDrawer } from './mainBtn'\n\n/*\n.opts{\n\t.app\n\t.holder\n\t.element{}\n\t.dom{}\n\t.state{}\n\t.sandboxDiv\n}\n*/\n\nclass AppDrawerButton {\n\tconstructor(opts) {\n\t\tthis.type = 'button' // works for 'dsButton'. May expand to other button types\n\t\tthis.opts = this.validateOpts(opts)\n\t\tthis.holder = opts.holder\n\t\tthis.dom = opts.dom\n\t\tthis.sandboxDiv = opts.sandboxDiv\n\t\tsetRenderers(this)\n\t}\n\n\tvalidateOpts(opts) {\n\t\tif (!opts.element.name) throw `Button name is missing`\n\t\tif (!opts.element.sandboxJson && !opts.element.sandboxHtml)\n\t\t\tthrow `Either .sandboxJson or .sandboxHtml is missing for button=${opts.element.name}`\n\t\treturn opts\n\t}\n\n\tmain() {}\n}\n\nexport const buttonInit = getInitFxn(AppDrawerButton)\n\nfunction setRenderers(self) {\n\tconst btn = utils.makeButton({ div: self.holder, text: self.opts.element.name, margin: '20px 20px 0px' })\n\tbtn.attr('class', 'sjpp-appdrawer-dataset-btn').on('click', async event => {\n\t\tevent.stopPropagation()\n\t\tawait self.app.dispatch({\n\t\t\ttype: 'is_apps_btn_active',\n\t\t\tvalue: false\n\t\t})\n\t\tslideDrawer(self)\n\t\tawait openSandbox(self.opts.element, self.opts)\n\t})\n}\n", "import { getCompInit } from '#rx'\nimport { rgb } from 'd3-color'\nimport { defaultcolor } from '#shared/common.js'\nimport { cardInit } from './card'\nimport { buttonInit } from './dsButton'\nimport { select } from 'd3-selection'\nimport { dofetch3, sayerror } from '#src/client'\n\n/*\n.opts{}\n .app{}\n\t.dom{}\n\t.state{}\n\nQuestions: \n\t- Organize in window based on section size to make best use of space?\n - For the column layout: \n 1. Cap number of columns?\n 2. Allow y overflow for >2 columns (like Trello)?\n*/\n\nclass AppDrawerLayoutComp {\n\tconstructor(opts) {\n\t\tthis.type = 'layout'\n\t\tthis.dom = {\n\t\t\tholder: opts.dom.drawerDiv,\n\t\t\twrapper: opts.dom.wrapper,\n\t\t\tsandboxDiv: opts.dom.sandboxDiv\n\t\t}\n\t\tthis.state = opts.state\n\t\tthis.hasStatePreMain = true\n\t}\n\n\tasync validateIndexJson() {\n\t\tconst index = await this.getIndexJson()\n\t\tif (!index.elements) throw `Missing elements array`\n\t\tif (!index.elements.length) throw `No element objects provided`\n\t\tif (index.columnsLayout) {\n\t\t\tif (index.columnsLayout.length == 0) throw `Missing column objects`\n\t\t\tconst allGridAreaValues = index.columnsLayout.map(s => s.gridarea)\n\t\t\tif (allGridAreaValues.length != new Set(allGridAreaValues).size) throw `Duplicate values for .gridarea found`\n\t\t\tconst allSectionIdValues = []\n\t\t\tfor (const col of index.columnsLayout) {\n\t\t\t\tif (!col.gridarea) throw `Missing column .gridarea for column = ${col.name}`\n\t\t\t\tif (!col.sections || col.sections.length == 0) throw `Missing section objects for column = ${col.name}`\n\t\t\t\tfor (const section of col.sections) {\n\t\t\t\t\tif (!section.id)\n\t\t\t\t\t\tthrow `Missing section .id in ${section.name ? `section = ${section.name}` : `column = ${col.name} array`}`\n\t\t\t\t\tallSectionIdValues.push(section.id)\n\t\t\t\t}\n\t\t\t\tif (col.sections.length != new Set(col.sections).size) {\n\t\t\t\t\tthrow `Non-unique levels in line ${lineNum}: ${JSON.stringify(levelNames)}`\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (allSectionIdValues.length != new Set(allSectionIdValues).size) throw `Duplicate values for section.id found`\n\n\t\t\t// Required element attributes when columnsLayout specified\n\t\t\tfor (const element of index.elements) {\n\t\t\t\tif (!element.section) throw `.section is missing for ${element.type} = ${element.name}`\n\t\t\t\tif (!allSectionIdValues.some(d => d == element.section))\n\t\t\t\t\tthrow `section = ${element.section} for ${element.type} = ${element.name} is not a column section`\n\t\t\t}\n\t\t}\n\t\treturn index\n\t}\n\n\tasync getIndexJson() {\n\t\t// Proteinpaint specific index.\n\t\t// TODO: Later modifiy to accept user index.\n\t\tconst re = await dofetch3(this.app.cardsPath + '/index.json')\n\t\tif (re.error) {\n\t\t\tsayerror(this.dom.holder.append('div'), re.error)\n\t\t\treturn\n\t\t}\n\t\treturn re\n\t}\n\n\tvalidateElements() {\n\t\tconst features = JSON.parse(sessionStorage.getItem('optionalFeatures')) || {}\n\t\tthis.elements = this.index.elements.filter(e => !e.hidden && (!e.configFeature || features[e.configFeature]))\n\t}\n\n\tasync init() {\n\t\tthis.index = await this.validateIndexJson()\n\t\tthis.elementsRendered = false\n\t\tsetRenderers(this)\n\t\tthis.validateElements()\n\t\tthis.layout = this.index.columnsLayout ? this.index.columnsLayout : null\n\t\tthis.components = {\n\t\t\telements: []\n\t\t}\n\t}\n\n\tasync main() {\n\t\t// prevent elements from reloading each time\n\t\tif (this.elementsRendered == true) return\n\t\tthis.elementsRendered = true\n\t\tfor (const element of this.elements) {\n\t\t\tconst holder = select(this.layout ? `#${element.section} > .sjpp-element-list` : `.sjpp-element-list`)\n\t\t\tif (element.type == 'card' || element.type == 'nestedCard') {\n\t\t\t\tthis.components.elements.push(\n\t\t\t\t\tawait cardInit({\n\t\t\t\t\t\tapp: this.app,\n\t\t\t\t\t\tholder: holder\n\t\t\t\t\t\t\t.style('display', 'grid')\n\t\t\t\t\t\t\t.style('grid-template-columns', 'repeat(auto-fit, minmax(320px, 1fr))')\n\t\t\t\t\t\t\t.style('gap', '10px')\n\t\t\t\t\t\t\t.style('list-style', 'none')\n\t\t\t\t\t\t\t.style('margin', '15px 0px'),\n\t\t\t\t\t\telement,\n\t\t\t\t\t\tdom: this.opts.dom,\n\t\t\t\t\t\tstate: this.state,\n\t\t\t\t\t\tsandboxDiv: this.dom.sandboxDiv\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t} else if (element.type == 'dsButton') {\n\t\t\t\tthis.components.elements.push(\n\t\t\t\t\tawait buttonInit({\n\t\t\t\t\t\tapp: this.app,\n\t\t\t\t\t\tholder,\n\t\t\t\t\t\telement,\n\t\t\t\t\t\tdom: this.opts.dom,\n\t\t\t\t\t\tstate: this.state,\n\t\t\t\t\t\tsandboxDiv: this.dom.sandboxDiv\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport const layoutInit = getCompInit(AppDrawerLayoutComp)\n\nfunction setRenderers(self) {\n\tif (!self.index.columnsLayout) noDefinedLayout(self)\n\tif (self.index.columnsLayout) columnsLayout(self)\n}\n\nfunction noDefinedLayout(self) {\n\tconst flexLayout = self.dom.wrapper\n\t\t.append('div')\n\t\t.style('display', 'flex')\n\t\t.style('padding', '10px')\n\t\t.classed('sjpp-element-list', true)\n\treturn flexLayout\n}\n\nfunction columnsLayout(self) {\n\t// Allow user to create multiple columns in parent grid\n\tconst parentGrid = self.dom.wrapper\n\t\t.append('div')\n\t\t.style('display', 'grid')\n\t\t.style('grid-template-columns', 'repeat(auto-fit, minmax(425px, 1fr))')\n\t\t.style('gap', '10px')\n\t\t.style('padding', '10px')\n\t\t.style('text-align', 'left')\n\n\t//Allow user to create multiple parent columns in columnsLayout\n\tconst gridareas = []\n\tfor (const column of self.index.columnsLayout) gridareas.push(column.gridarea)\n\tparentGrid.style('grid-template-areas', `\"${gridareas.toString().replace(',', ' ')}\"`)\n\tfor (const col of self.index.columnsLayout) {\n\t\tconst newCol = parentGrid.append('div').style('grid-area', col.gridarea).classed('.sjpp-track-cols', true)\n\t\tfor (const section of col.sections) addSection(section, newCol)\n\t}\n\n\tfunction addSection(section, newCol) {\n\t\tconst newSection = newCol.append('div').attr('id', section.id)\n\t\tif (section.name)\n\t\t\tnewSection\n\t\t\t\t.append('h5')\n\t\t\t\t.classed('sjpp-appdrawer-cols', true)\n\t\t\t\t.style('color', rgb(defaultcolor).darker())\n\t\t\t\t.text(section.name)\n\t\tnewSection.append('div').classed('sjpp-element-list', true).style('padding', '10px')\n\n\t\treturn newSection\n\t}\n}\n", "import { getCompInit } from '#rx'\nimport { layoutInit } from './layout'\n\n/*\n.opts{}\n .app{}\n\t.dom{}\n\t.state{}\n\nTODOs: \n- Replace drawerFullHeight with a different approach\n\t- Causes the drawer to only partially appear when the window zooms in\n*/\n\nclass MainHeadboxBtn {\n\tconstructor(opts) {\n\t\tthis.type = 'mainBtn'\n\t\tthis.opts = this.validateOpts(opts)\n\t\tthis.dom = opts.dom\n\t\tthis.state = opts.state\n\t\tthis.hasStatePreMain = true\n\t\tsetRenderers(this)\n\t}\n\n\tvalidateOpts(opts) {\n\t\treturn opts.app.opts\n\t}\n\n\tgetState(appState) {\n\t\treturn {\n\t\t\tappBtnActive: appState.appBtnActive\n\t\t}\n\t}\n\n\tasync init() {\n\t\tthis.btnRendered = false\n\t\tthis.drawerFullHeight = ''\n\t\ttry {\n\t\t\t//detect whether to show examples right away, which is when the url is barebone without any route paths or search parameters\n\t\t\tif (window.location.pathname == '/' && !window.location.search.length)\n\t\t\t\tawait this.app.dispatch({ type: 'is_apps_btn_active', value: true })\n\t\t\tthis.components = {\n\t\t\t\tlayout: []\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tthrow e\n\t\t}\n\t}\n\n\tasync main(appState) {\n\t\tif (this.app.getState(appState).appBtnActive == true && this.btnRendered == false) {\n\t\t\tthis.dom.drawerDiv.style('background-color', '#f5f5f5') //Quick fix for drawerDiv initially appearing before layout init\n\t\t\t//Init layout only once when 'Apps' button is active for the first time\n\t\t\tthis.components.layout.push(\n\t\t\t\tawait layoutInit({\n\t\t\t\t\tapp: this.app,\n\t\t\t\t\tdom: this.dom,\n\t\t\t\t\tstate: this.state\n\t\t\t\t})\n\t\t\t)\n\t\t\t//Give the drawerDiv time to render before calculating height\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.drawerFullHeight = this.dom.drawerDiv.node().getBoundingClientRect().height + 5\n\t\t\t}, this.state.duration + 5)\n\t\t\tslideDrawer(this)\n\t\t\tthis.btnRendered = true\n\t\t}\n\t\tif (this.state.appBtnActive == false && this.btnRendered == true) slideDrawer(this)\n\t}\n}\n\nexport const mainBtnInit = getCompInit(MainHeadboxBtn)\n\nfunction setRenderers(self) {\n\tself.dom.btnWrapper\n\t\t.style('background-color', self.state.appBtnActive ? '#b2b2b2' : '#f2f2f2')\n\t\t.style('color', self.state.appBtnActive ? '#fff' : '#000')\n\t\t.on('click', async event => {\n\t\t\tevent.stopPropagation()\n\t\t\tawait self.app.dispatch({ type: 'is_apps_btn_active' })\n\t\t\tslideDrawer(self)\n\t\t\tif (self.state.appBtnActive) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tself.drawerFullHeight = self.dom.drawerDiv.node().getBoundingClientRect().height + 5\n\t\t\t\t}, self.state.duration + 5)\n\t\t\t}\n\t\t})\n\n\tself.dom.btn\n\t\t.attr('class', 'sja_menuoption')\n\t\t.style('display', 'inline-block')\n\t\t.style('background-color', 'transparent')\n\t\t.style('color', self.state.appBtnActive ? '#fff' : '#000')\n\t\t.style('padding', self.opts.padw_sm)\n\t\t.style('margin', '0px 5px')\n\t\t.style('cursor', 'pointer')\n\t\t.text('Apps')\n\n\t// an empty spacer div, needed since the arrows are absolutely positioned\n\tself.dom.drawerHint\n\t\t.style('position', 'relative')\n\t\t.style('display', 'inline-block')\n\t\t.style('height', self.state.arrowSize.closed + 'px')\n\t\t.style('width', self.state.appBtnActive ? self.state.hintWidth.open : self.state.hintWidth.closed)\n\t\t.style('background-color', 'transparent')\n\t\t.style('text-align', 'center')\n\t\t.style('cursor', 'pointer')\n\n\tself.dom.drawerArrow\n\t\t.style('position', 'absolute')\n\t\t.style('font-size', self.state.arrowSize.closed + 'px')\n\t\t.style('right', self.state.hintPos.closed.rt + 'px')\n\t\t.style('bottom', self.state.hintPos.closed.btm + 'px')\n\t\t.style('background-color', 'transparent')\n\t\t.style('color', self.state.arrowColor.closed)\n\t\t.style('opacity', self.state.appBtnActive ? 0 : 1)\n\t\t.style('cursor', 'pointer')\n\t\t.html('▼')\n\n\tself.dom.drawerArrowOpen\n\t\t.style('position', 'absolute')\n\t\t.style('font-size', self.state.arrowSize.open + 'px')\n\t\t.style('left', self.state.hintPos.open.left + 'px')\n\t\t.style('bottom', self.state.hintPos.open.btm + 'px')\n\t\t.style('transform', 'rotate(180deg)')\n\t\t.style('background-color', 'transparent')\n\t\t.style('color', self.state.arrowColor.open)\n\t\t.style('opacity', self.state.appBtnActive ? 1 : 0)\n\t\t.style('cursor', 'pointer')\n\t\t.style('pointer-events', self.state.appBtnActive ? 'auto' : 'none')\n\t\t.html('▼')\n\n\tself.drawerFullHeight = self.dom.drawerRow.node().getBoundingClientRect().height + 5\n}\n\nexport async function slideDrawer(self) {\n\tself.dom.btnWrapper\n\t\t.transition()\n\t\t.duration(self.opts.state.duration)\n\t\t.style('background-color', self.state.appBtnActive ? '#b2b2b2' : '#f2f2f2')\n\t\t.style('color', self.state.appBtnActive ? '#fff' : '#000')\n\n\tself.dom.btn\n\t\t.transition()\n\t\t.duration(self.opts.state.duration)\n\t\t.style('color', self.state.appBtnActive ? '#fff' : '#000')\n\n\tself.dom.drawerDiv\n\t\t.style('display', 'inline-block')\n\t\t.transition()\n\t\t.duration(self.opts.state.duration)\n\t\t.style('top', self.state.appBtnActive ? '0px' : '-' + self.drawerFullHeight + 'px')\n\n\tself.dom.drawerRow\n\t\t.transition()\n\t\t.duration(self.opts.state.duration)\n\t\t.style('height', self.state.appBtnActive ? self.drawerFullHeight + 'px' : '0px')\n\n\tself.dom.drawerHint\n\t\t.transition()\n\t\t.duration(self.opts.state.duration)\n\t\t.style('width', self.state.appBtnActive ? self.opts.state.hintWidth.open : self.opts.state.hintWidth.closed)\n\n\tself.dom.drawerArrow\n\t\t.transition()\n\t\t.duration(self.opts.state.duration)\n\t\t.style('opacity', self.state.appBtnActive ? 0 : 1)\n\n\tself.dom.drawerArrowOpen\n\t\t.style('pointer-events', self.state.appBtnActive ? 'auto' : 'none')\n\t\t.transition()\n\t\t.duration(self.opts.state.duration)\n\t\t.style('opacity', self.state.appBtnActive ? 1 : 0)\n}\n", "import { getStoreInit } from '#rx'\n\n/*\n.opts{}\n\n*/\n\nclass AppDrawerStore {\n\tconstructor(opts) {\n\t\tthis.type = 'store'\n\t\tthis.defaultState = {\n\t\t\t// for apps drawer animation\n\t\t\tduration: 500,\n\t\t\thintPos: {\n\t\t\t\topen: { btm: -42, left: 13 },\n\t\t\t\tclosed: { btm: 3, rt: 5 }\n\t\t\t},\n\t\t\thintWidth: { open: '0px', closed: '18px' },\n\t\t\tarrowSize: { open: 42, closed: 20 },\n\t\t\tarrowColor: { open: 'rgb(242,242,242)', closed: 'rgb(85,85,85)' },\n\t\t\tappBtnActive: false\n\t\t}\n\t}\n\n\tasync init() {}\n}\n\nexport const appDrawerStoreInit = getStoreInit(AppDrawerStore)\n\nAppDrawerStore.prototype.actions = {\n\tis_apps_btn_active(action) {\n\t\tthis.state.appBtnActive = 'value' in action ? action.value : !this.state.appBtnActive\n\t}\n}\n", "import { getAppInit } from '#rx'\nimport { mainBtnInit } from './mainBtn'\nimport { appDrawerStoreInit } from './store'\n\n/*\n.opts{}\n .holder\n .genomes{}\n - client-side genome object\n\t.drawerRow\n\t.sandboxDiv\n\t.genome_browser_btn\n\t.debugmode\n\t.headbox\n\t.padw_sm\n\nTODOs: \n\nQuestions: \n*/\n\nclass AppDrawerApp {\n\tconstructor(opts) {\n\t\tthis.type = 'app'\n\n\t\tconst drawerDiv = opts.drawerRow\n\t\t\t.append('div')\n\t\t\t.style('position', 'relative')\n\t\t\t.style('margin', '0 20px')\n\t\t\t.style('padding', `0 ${opts.padw_sm}`)\n\t\t\t.style('display', 'inline-block')\n\t\t\t.style('overflow', 'hidden')\n\t\t\t.style('border-radius', '0px 0px 5px 5px')\n\t\t\t.style('width', '93vw')\n\t\t\t.classed('sjpp-drawer-div', true)\n\n\t\tconst btnWrapper = opts.headbox\n\t\t\t.append('div')\n\t\t\t.style('position', 'relative')\n\t\t\t.style('display', 'inline-block')\n\t\t\t.style('margin-left', '5px')\n\t\t\t.style('margin-right', '5px')\n\t\t\t.style('border-radius', '5px')\n\t\t\t.classed('sjpp-apps-btn-wrapper', true)\n\n\t\tthis.dom = {\n\t\t\tdrawerRow: opts.drawerRow,\n\t\t\tdrawerDiv,\n\t\t\tsandboxDiv: opts.sandboxDiv,\n\t\t\tbtnWrapper,\n\t\t\tbtn: btnWrapper.append('div'),\n\t\t\tdrawerHint: btnWrapper.append('div'),\n\t\t\tdrawerArrow: btnWrapper.append('div'),\n\t\t\tdrawerArrowOpen: btnWrapper.append('div'),\n\t\t\twrapper: drawerDiv.append('div')\n\t\t}\n\t}\n\n\tpreApiFreeze(api) {\n\t\tapi.cardsPath = this.opts.cardsPath\n\t}\n\n\tasync init() {\n\t\ttry {\n\t\t\tthis.store = await appDrawerStoreInit({ app: this.api, state: this.opts.state })\n\t\t\tthis.state = await this.store.copyState()\n\t\t\tthis.components = {\n\t\t\t\tmainBtn: await mainBtnInit({\n\t\t\t\t\tapp: this.api,\n\t\t\t\t\tdom: this.dom,\n\t\t\t\t\tstate: this.state,\n\t\t\t\t\tindexJson: this.indexJson\n\t\t\t\t})\n\t\t\t}\n\t\t\tawait this.api.dispatch()\n\t\t} catch (e) {\n\t\t\tthrow e\n\t\t}\n\t}\n\n\tmain() {}\n}\n\nexport const appDrawerInit = getAppInit(AppDrawerApp)\n", "import { first_genetrack_tolist } from '#common/1stGenetk'\nimport { InputSearch, Menu, newSandboxDiv } from '#dom'\nimport { searchItems } from './omniSearch.js'\nimport { appDrawerInit } from '../../appdrawer/app.js'\nimport { rgb as d3rgb } from 'd3-color'\nimport { defaultcolor } from '#shared/common.js'\nimport { dofetch3 } from '#common/dofetch'\nimport { ClientCopyGenome } from 'types/global.ts'\n\ntype Citation = {\n\tid: number\n\ttitle: string\n\tappHeaderTitle: string\n\tyear: number\n\tjournal: string\n\tpmid: number\n\tpmidURL: string\n\tdoi: string\n}\n\ntype AppHeaderOpts = {\n\t/** menu created in app.js */\n\theadtip: Menu\n\t/** runpp app */\n\tapp: any\n\t/** server returned data */\n\tdata: any\n\t/** token */\n\tjwt: any\n}\n\nexport class AppHeader {\n\theadtip: Menu\n\tapp: any\n\tdata: any\n\tjwt: any\n\t/** List of publications defined in the app drawer\n\t * Appears in button in the header and in search results\n\t */\n\tpublications: Citation[]\n\t/** Used in both the Help button and omni search\n\t * .onlySearch is used to filter out items that should not appear in the Help button\n\t */\n\tstatic help = [\n\t\t{\n\t\t\tlabel: 'Embed in your website',\n\t\t\tlink: 'https://github.com/stjude/proteinpaint/wiki/Embedding'\n\t\t},\n\t\t{\n\t\t\tlabel: 'URL parameters',\n\t\t\tlink: 'https://github.com/stjude/proteinpaint/wiki/URL-parameters'\n\t\t},\n\t\t{\n\t\t\tlabel: 'All tutorials',\n\t\t\tlink: 'https://github.com/stjude/proteinpaint/wiki/'\n\t\t},\n\t\t{\n\t\t\tlabel: 'User community',\n\t\t\tlink: 'https://groups.google.com/g/proteinpaint'\n\t\t},\n\t\t{\n\t\t\tlabel: 'License ProteinPaint',\n\t\t\tlink: 'https://www.stjude.org/research/why-st-jude/shared-resources/technology-licensing/technologies/proteinpaint-web-application-for-visualizing-genomic-data-sj-15-0021.html',\n\t\t\tonlySearch: true\n\t\t},\n\t\t{\n\t\t\tlabel: 'Our Team',\n\t\t\tlink: 'https://proteinpaint.stjude.org/team/',\n\t\t\tonlySearch: true\n\t\t}\n\t]\n\n\tconstructor(opts: AppHeaderOpts) {\n\t\tthis.headtip = opts.headtip\n\t\tthis.app = opts.app\n\t\tthis.data = opts.data\n\t\tthis.jwt = opts.jwt\n\t\tthis.publications = []\n\t}\n\n\tasync createPublicationsList() {\n\t\tconst re = await dofetch3(this.app.cardsPath + '/citations.json')\n\t\tif (re.error) console.error(`Problem retrieving ../cards/citations.json`)\n\t\t//Sort in reverse chronological order for the publications button\n\t\tthis.publications = re?.publications?.length\n\t\t\t? re.publications.filter((d: Citation) => d.appHeaderTitle).sort((a: Citation, b: Citation) => b.year - a.year)\n\t\t\t: []\n\t}\n\n\tasync makeheader() {\n\t\tawait this.createPublicationsList()\n\n\t\tconst color = d3rgb(defaultcolor)\n\t\tconst padw_lg = '13px'\n\t\tconst padw_input = '5px 10px'\n\t\tconst padw_sm = '7px 10px'\n\t\tconst doc_width = document.documentElement.clientWidth\n\t\t// head\n\t\tconst row = this.app.holder\n\t\t\t.append('div')\n\t\t\t.style('white-space', 'nowrap')\n\t\t\t.style(\n\t\t\t\t'border-bottom',\n\t\t\t\tdoc_width > 1600 ? 'solid 1px rgba(' + color.r + ',' + color.g + ',' + color.b + ',.3)' : ''\n\t\t\t)\n\n\t\tconst headbox = row\n\t\t\t.append('div')\n\t\t\t.style('margin', '10px')\n\t\t\t.style('padding', '8px')\n\t\t\t.style('padding-bottom', '12px')\n\t\t\t.style('display', doc_width < 1600 ? 'block' : 'inline-block')\n\t\t\t.style(\n\t\t\t\t'border-bottom',\n\t\t\t\tdoc_width < 1600 ? 'solid 1px rgba(' + color.r + ',' + color.g + ',' + color.b + ',.3)' : ''\n\t\t\t)\n\n\t\t// .style('border-radius', '5px')\n\t\t// .style('background-color', 'rgba(' + color.r + ',' + color.g + ',' + color.b + ',.1)')\n\t\tconst headinfo = row\n\t\t\t.append('div')\n\t\t\t.style('display', 'inline-block')\n\t\t\t.style('padding', padw_sm)\n\t\t\t.style('padding-left', '25px')\n\t\t\t.style('font-size', '.8em')\n\t\t\t.style('color', d3rgb(defaultcolor).darker())\n\n\t\t{\n\t\t\t// a row for server stats\n\t\t\tconst row = headinfo.append('div').style('padding-left', '15px')\n\t\t\t// link to the published ppfull container version, instead of github release tarball which we do not advertise;\n\t\t\t// github's pkgs/container link has a timestamp before the tag, which cannot be computed here (but may be able to query later?)\n\t\t\tconst link = `https://github.com/stjude/proteinpaint/pkgs/container/ppfull` // url to list of published container versions\n\t\t\tconst version = this.data.pkgver\n\t\t\t\t? `Release version: <a href=\"${link}\" target=\"${this.data.pkgver}\">${this.data.pkgver}</a>`\n\t\t\t\t: `Code date: ${this.data.codedate}` // default to using code date as before if pkgver is not available\n\t\t\trow\n\t\t\t\t.attr('id', 'sjpp-serverstat')\n\t\t\t\t.append('span')\n\t\t\t\t.html(`${version}, server launched: ${this.data.launchdate || '??'}.`)\n\t\t\tif (this.data.hasblat) {\n\t\t\t\trow\n\t\t\t\t\t.append('a')\n\t\t\t\t\t.style('margin-left', '10px')\n\t\t\t\t\t.text('Running BLAT')\n\t\t\t\t\t.on('click', async event => {\n\t\t\t\t\t\tthis.headtip.clear().showunder(event.target)\n\t\t\t\t\t\tconst div = this.headtip.d.append('div').style('margin', '10px')\n\t\t\t\t\t\tconst wait = div.append('div').text('Loading...')\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst data = await dofetch3('blat?serverstat=1')\n\t\t\t\t\t\t\tif (data.error) throw data.error\n\t\t\t\t\t\t\tif (!data.lst) throw 'invalid response'\n\t\t\t\t\t\t\twait.remove()\n\t\t\t\t\t\t\tfor (const i of data.lst) {\n\t\t\t\t\t\t\t\tdiv.append('div').text(i)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (e: any) {\n\t\t\t\t\t\t\twait.text(e.message || e)\n\t\t\t\t\t\t\tif (e.stack) console.error(e.stack)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\tif (this.data.headermessage) {\n\t\t\theadinfo.append('div').html(this.data.headermessage)\n\t\t}\n\n\t\t// 1\n\t\theadbox\n\t\t\t.append('div')\n\t\t\t.text('ProteinPaint')\n\t\t\t.style('display', 'inline-block')\n\t\t\t.style('padding', padw_lg)\n\t\t\t.style('color', defaultcolor)\n\t\t\t.style('font-size', '1.3em')\n\t\t\t.style('font-weight', 'bold')\n\n\t\t// 2, search box\n\t\tconst omniSearch = new InputSearch({\n\t\t\tholder: headbox,\n\t\t\ttip: this.headtip,\n\t\t\tstyle: {\n\t\t\t\tpadding: padw_sm,\n\t\t\t\tborder: `'solid 1px ${defaultcolor}`\n\t\t\t},\n\t\t\tsize: 32,\n\t\t\tplaceholder: 'Gene, position, SNP, app, or dataset',\n\t\t\ttitle: 'Search by gene, SNP, position, app, or dataset',\n\t\t\tsearchItems: async () => {\n\t\t\t\treturn await searchItems(this.app, this.headtip, AppHeader.help, this.publications, this.jwt)\n\t\t\t}\n\t\t})\n\n\t\tomniSearch.initUI()\n\n\t\tconst genome_select_div = headbox.append('div').attr('class', 'sjpp-genome-select-div').style('padding', padw_sm)\n\n\t\tconst get_placeholder = () => {\n\t\t\tconst currG = this.app.genomes[this.app.selectgenome.property('value')]\n\t\t\t/** Defaults */\n\t\t\tconst opts2Show = ['Gene', 'position', 'app']\n\t\t\t/** Show all the genomic options together */\n\t\t\tif (currG.hasSNP) opts2Show.splice(2, 0, 'SNP')\n\t\t\tif (Object.keys(currG.datasets).length) opts2Show.push('dataset')\n\t\t\tconst str = opts2Show.join(', ').replace(/,(?=[^,]*$)/, ', or')\n\t\t\treturn str\n\t\t}\n\n\t\tthis.app.selectgenome = genome_select_div\n\t\t\t.append('select')\n\t\t\t.attr('aria-label', 'Select a genome')\n\t\t\t.attr('class', 'sjpp-genome-select')\n\t\t\t.style('padding', padw_input)\n\t\t\t.style('border', 'solid 1px ' + defaultcolor)\n\t\t\t.on('change', () => {\n\t\t\t\tthis.update_genome_browser_btn(this.app)\n\t\t\t\tomniSearch.updatePlaceholder(get_placeholder())\n\t\t\t})\n\n\t\tconst filterGenomes = Object.values(this.app.genomes).filter((g: any) => !g.hideOnClient) as ClientCopyGenome[]\n\t\tfor (const n of filterGenomes) {\n\t\t\tthis.app.selectgenome.append('option').attr('n', n.name).text(`${n.species} ${n.name}`).property('value', n.name)\n\t\t}\n\t\tthis.app.genome_browser_btn = this.make_genome_browser_btn(this.app, headbox, this.jwt)\n\n\t\tthis.app.drawer = await appDrawerInit({\n\t\t\tholder: this.app.holder,\n\t\t\tgenomes: this.app.genomes,\n\t\t\tdrawerRow: this.app.holder\n\t\t\t\t.append('div')\n\t\t\t\t.style('position', 'relative')\n\t\t\t\t.style('overflow-x', 'visible')\n\t\t\t\t.style('overflow-y', 'hidden')\n\t\t\t\t.classed('sjpp-drawer-row', true),\n\t\t\tsandboxDiv: this.app.holder.append('div').style('margin-top', '15px').classed('sjpp-drawer-sandbox', true),\n\t\t\tgenome_browser_btn: this.app.genome_browser_btn,\n\t\t\tdebugmode: this.app.debugmode,\n\t\t\theadbox,\n\t\t\tpadw_sm,\n\t\t\tcardsPath: this.app.cardsPath\n\t\t})\n\n\t\t//Help button\n\t\theadbox\n\t\t\t.append('span')\n\t\t\t.classed('sja_menuoption', true)\n\t\t\t.attr('id', 'sjpp-header-help-btn')\n\t\t\t.style('padding', padw_sm)\n\t\t\t.text('Help')\n\t\t\t.on('click', async event => {\n\t\t\t\tconst p = event.target.getBoundingClientRect()\n\t\t\t\tconst div = this.headtip.clear().show(p.left - 0, p.top + p.height + 5)\n\n\t\t\t\tawait div.d\n\t\t\t\t\t.append('div')\n\t\t\t\t\t.style('padding', '5px 20px')\n\t\t\t\t\t.selectAll('p')\n\t\t\t\t\t.data(AppHeader.help.filter(d => !d.onlySearch))\n\t\t\t\t\t.enter()\n\t\t\t\t\t.append('p')\n\t\t\t\t\t.html(d => `<a href=${d.link} target=_blank>${d.label}</a>`)\n\t\t\t})\n\n\t\t//Publications button\n\t\t//Citations not available on CI server\n\t\tif (this.publications.length > 0) {\n\t\t\theadbox\n\t\t\t\t.append('span')\n\t\t\t\t.classed('sja_menuoption', true)\n\t\t\t\t.attr('id', 'sjpp-header-publications-btn')\n\t\t\t\t.style('padding', padw_sm)\n\t\t\t\t.style('margin', '0px 5px')\n\t\t\t\t.text('Publications')\n\t\t\t\t.on('click', async event => {\n\t\t\t\t\tconst p = event.target.getBoundingClientRect()\n\t\t\t\t\tconst div = this.headtip.clear().show(p.left - 150, p.top + p.height + 5)\n\n\t\t\t\t\tawait div.d\n\t\t\t\t\t\t.append('div')\n\t\t\t\t\t\t.style('padding', '5px 20px')\n\t\t\t\t\t\t.selectAll('p')\n\t\t\t\t\t\t.data(this.publications)\n\t\t\t\t\t\t.enter()\n\t\t\t\t\t\t.append('p')\n\t\t\t\t\t\t.html((d: any) => `<a href=${d.doi} target=_blank>${d.appHeaderTitle}, ${d.journal}, ${d.year}</a>`)\n\t\t\t\t})\n\t\t}\n\t}\n\n\tmake_genome_browser_btn(app, headbox, jwt) {\n\t\tif (app.selectgenome.node().options.length === 0) {\n\t\t\tconsole.error(`No selected selectgenome options.`)\n\t\t\treturn\n\t\t}\n\n\t\tconst padw = '8px'\n\t\tconst genome_btn_div = headbox.append('span')\n\t\tconst genomename = app.selectgenome.node().options[app.selectgenome.property('selectedIndex')].value\n\n\t\tconst g_browser_btn = genome_btn_div\n\t\t\t.attr('class', 'sja_menuoption')\n\t\t\t.attr('id', 'genome_btn')\n\t\t\t.style('padding', padw)\n\t\t\t.datum(genomename)\n\t\t\t.text(genomename + ' genome browser')\n\t\t\t.on('click', () => {\n\t\t\t\t//Grab the current genome selected\n\t\t\t\tconst genomeSelected = app.selectgenome.node().value\n\t\t\t\tconst g = app.genomes[genomeSelected]\n\t\t\t\tif (!g) {\n\t\t\t\t\talert('Invalid genome name: ' + genomeSelected)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tconst sandbox_div = newSandboxDiv(app.drawer.opts.sandboxDiv)\n\t\t\t\tsandbox_div.header.text(genomeSelected + ' genome browser')\n\n\t\t\t\tconst par = {\n\t\t\t\t\thostURL: app.hostURL,\n\t\t\t\t\tjwt,\n\t\t\t\t\tholder: sandbox_div.body,\n\t\t\t\t\tgenome: g,\n\t\t\t\t\tchr: g.defaultcoord.chr,\n\t\t\t\t\tstart: g.defaultcoord.start,\n\t\t\t\t\tstop: g.defaultcoord.stop,\n\t\t\t\t\tnobox: true,\n\t\t\t\t\ttklst: [],\n\t\t\t\t\tdebugmode: app.debugmode\n\t\t\t\t}\n\t\t\t\tfirst_genetrack_tolist(g, par.tklst)\n\n\t\t\t\timport('../block.js').then(b => new b.Block(par))\n\t\t\t\tapp.drawer.dispatch({ type: 'is_apps_btn_active', value: false })\n\t\t\t})\n\t\treturn g_browser_btn\n\t}\n\n\tupdate_genome_browser_btn(app) {\n\t\tapp.genome_browser_btn.text(app.selectgenome.node().value + ' genome browser')\n\t\tapp.genome_browser_btn.datum(app.selectgenome.node().value)\n\t}\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["searchTermFound", "par", "setRenderers", "setRenderers", "setRenderers", "row"]
|
|
7
7
|
}
|
|
@@ -3,30 +3,32 @@ import {
|
|
|
3
3
|
} from "./chunk-FBEHKWNY.js";
|
|
4
4
|
import {
|
|
5
5
|
configUiInit
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-KTFKKFSZ.js";
|
|
7
7
|
import {
|
|
8
8
|
svgLegend
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-H4HSIJPQ.js";
|
|
10
10
|
import "./chunk-5QFQN4X5.js";
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-LFMQW2GW.js";
|
|
15
|
-
import "./chunk-4I4JML74.js";
|
|
16
|
-
import "./chunk-2SK7XSZL.js";
|
|
17
|
-
import "./chunk-AMSO624X.js";
|
|
18
|
-
import "./chunk-LLOFSEKN.js";
|
|
11
|
+
import "./chunk-NBNJSOFE.js";
|
|
12
|
+
import "./chunk-OGG5DOZQ.js";
|
|
13
|
+
import "./chunk-6VOTOFR2.js";
|
|
19
14
|
import "./chunk-537FIK5B.js";
|
|
20
15
|
import "./chunk-WLU3JZQN.js";
|
|
21
16
|
import "./chunk-P64DWRTC.js";
|
|
22
17
|
import "./chunk-OOXGYSYW.js";
|
|
23
18
|
import "./chunk-T2IYLCS6.js";
|
|
24
19
|
import "./chunk-J4ZN3LJN.js";
|
|
25
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-C2NS4O5Y.js";
|
|
21
|
+
import "./chunk-ZVIZAMPC.js";
|
|
22
|
+
import "./chunk-LNB3AYLH.js";
|
|
23
|
+
import "./chunk-IYIJOJCM.js";
|
|
24
|
+
import "./chunk-QOGD7KB4.js";
|
|
25
|
+
import {
|
|
26
|
+
Menu
|
|
27
|
+
} from "./chunk-4PXHF7JJ.js";
|
|
26
28
|
import {
|
|
27
29
|
table2col
|
|
28
30
|
} from "./chunk-ACT3S5BW.js";
|
|
29
|
-
import "./chunk-
|
|
31
|
+
import "./chunk-QF5ZWPTJ.js";
|
|
30
32
|
import {
|
|
31
33
|
dtcnv,
|
|
32
34
|
dtfusionrna,
|
|
@@ -34,33 +36,31 @@ import {
|
|
|
34
36
|
dtsnvindel,
|
|
35
37
|
dtsv,
|
|
36
38
|
mclass
|
|
37
|
-
} from "./chunk-
|
|
38
|
-
import "./chunk-RA5EXEHB.js";
|
|
39
|
+
} from "./chunk-PMUAK7AU.js";
|
|
39
40
|
import {
|
|
40
41
|
arc_default,
|
|
41
42
|
line_default,
|
|
42
43
|
pie_default,
|
|
43
44
|
ribbon_default
|
|
44
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-YDOGVE64.js";
|
|
46
|
+
import "./chunk-RA5EXEHB.js";
|
|
45
47
|
import "./chunk-LOZEKOES.js";
|
|
46
48
|
import "./chunk-TOU7EVFQ.js";
|
|
47
49
|
import {
|
|
48
50
|
linear
|
|
49
51
|
} from "./chunk-L3PIFRMN.js";
|
|
52
|
+
import "./chunk-5OHXYXLD.js";
|
|
53
|
+
import "./chunk-AARUGC2Z.js";
|
|
54
|
+
import {
|
|
55
|
+
select_default
|
|
56
|
+
} from "./chunk-NDWTN4U5.js";
|
|
57
|
+
import "./chunk-LH4ROHRD.js";
|
|
58
|
+
import "./chunk-LLOFSEKN.js";
|
|
50
59
|
import {
|
|
51
60
|
copyMerge,
|
|
52
61
|
getCompInit,
|
|
53
62
|
multiInit
|
|
54
63
|
} from "./chunk-3X4AWNST.js";
|
|
55
|
-
import "./chunk-5OHXYXLD.js";
|
|
56
|
-
import "./chunk-4HXQR7R2.js";
|
|
57
|
-
import "./chunk-LH4ROHRD.js";
|
|
58
|
-
import {
|
|
59
|
-
Menu
|
|
60
|
-
} from "./chunk-4PXHF7JJ.js";
|
|
61
|
-
import {
|
|
62
|
-
select_default
|
|
63
|
-
} from "./chunk-NDWTN4U5.js";
|
|
64
64
|
import "./chunk-HFNDKYVF.js";
|
|
65
65
|
|
|
66
66
|
// plots/disco/arc/FullArcRenderer.ts
|
|
@@ -230,7 +230,7 @@ var DiscoInteractions = class {
|
|
|
230
230
|
}
|
|
231
231
|
]
|
|
232
232
|
};
|
|
233
|
-
const _ = await import("./block.init-
|
|
233
|
+
const _ = await import("./block.init-SKRMIKIG.js");
|
|
234
234
|
await _.default(arg);
|
|
235
235
|
};
|
|
236
236
|
this.colorScaleNumericInputsCallback = async (obj) => {
|
|
@@ -2507,4 +2507,4 @@ export {
|
|
|
2507
2507
|
discoInit,
|
|
2508
2508
|
getPlotConfig
|
|
2509
2509
|
};
|
|
2510
|
-
//# sourceMappingURL=Disco-
|
|
2510
|
+
//# sourceMappingURL=Disco-PMGJJ2HN.js.map
|