protvista-uniprot 2.12.2 → 2.13.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/README.md +2 -2
- package/dist/es/commonTypes.d.ts +1 -1
- package/dist/es/config.json +94 -67
- package/dist/es/filterConfig.d.ts +4 -3
- package/dist/es/filterConfig.js +48 -32
- package/dist/es/filterConfig.js.map +1 -1
- package/dist/es/index.d.ts +0 -2
- package/dist/es/index.js +0 -3
- package/dist/es/index.js.map +1 -1
- package/dist/es/protvista-alphafold-confidence.d.ts +1 -1
- package/dist/es/protvista-alphamissense-heatmap.d.ts +8 -0
- package/dist/es/protvista-alphamissense-heatmap.js +35 -0
- package/dist/es/protvista-alphamissense-heatmap.js.map +1 -0
- package/dist/es/protvista-alphamissense-pathogenicity.d.ts +3 -1
- package/dist/es/protvista-alphamissense-pathogenicity.js +2 -2
- package/dist/es/protvista-alphamissense-pathogenicity.js.map +1 -1
- package/dist/es/protvista-ptm-exchange.d.ts +7 -7
- package/dist/es/protvista-ptm-exchange.js +6 -4
- package/dist/es/protvista-ptm-exchange.js.map +1 -1
- package/dist/es/protvista-uniprot-structure.d.ts +6 -1
- package/dist/es/protvista-uniprot-structure.js +137 -66
- package/dist/es/protvista-uniprot-structure.js.map +1 -1
- package/dist/es/protvista-uniprot.d.ts +27 -16
- package/dist/es/protvista-uniprot.js +166 -145
- package/dist/es/protvista-uniprot.js.map +1 -1
- package/dist/es/protvista-variation-graph-adapter.d.ts +9 -0
- package/dist/es/protvista-variation-graph-adapter.js +46 -0
- package/dist/es/protvista-variation-graph-adapter.js.map +1 -0
- package/dist/es/styles/protvista-styles.js +8 -13
- package/dist/es/styles/protvista-styles.js.map +1 -1
- package/dist/protvista-uniprot.js +217 -217
- package/dist/protvista-uniprot.js.LICENSE.txt +24 -57
- package/dist/protvista-uniprot.js.map +1 -1
- package/package.json +15 -16
- package/src/config.json +94 -67
- package/src/filterConfig.ts +58 -55
- package/src/index.ts +0 -3
- package/src/protvista-alphamissense-heatmap.ts +52 -0
- package/src/protvista-alphamissense-pathogenicity.ts +2 -2
- package/src/protvista-ptm-exchange.ts +21 -19
- package/src/protvista-uniprot-structure.ts +168 -94
- package/src/protvista-uniprot.ts +226 -168
- package/src/protvista-variation-graph-adapter.ts +47 -0
- package/src/styles/protvista-styles.ts +8 -13
- package/src/types/nightingale-components.d.ts +1 -1
- package/src/types/nightingale-sequence-heatmap.d.ts +1 -0
- package/dist/es/download-panel.d.ts +0 -29
- package/dist/es/download-panel.js +0 -137
- package/dist/es/download-panel.js.map +0 -1
- package/src/download-panel.ts +0 -164
- package/src/types/protvista-filter.d.ts +0 -16
- package/src/types/protvista-interpro-track.d.ts +0 -1
- package/src/types/protvista-manager.d.ts +0 -1
- package/src/types/protvista-navigation.d.ts +0 -1
- package/src/types/protvista-sequence.d.ts +0 -1
- package/src/types/protvista-tooltip.d.ts +0 -8
- package/src/types/protvista-track.d.ts +0 -5
- package/src/types/protvista-variation-graph.d.ts +0 -1
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export const transformData = (data) => {
|
|
2
|
+
if (data.sequence && data.features.length) {
|
|
3
|
+
const variants = data.features.map((variant) => ({
|
|
4
|
+
...variant,
|
|
5
|
+
accession: variant.genomicLocation?.join(", "),
|
|
6
|
+
start: variant.begin,
|
|
7
|
+
}));
|
|
8
|
+
|
|
9
|
+
const total = new Uint8ClampedArray(data.sequence.length);
|
|
10
|
+
const diseaseTotal = new Uint8ClampedArray(data.sequence.length);
|
|
11
|
+
|
|
12
|
+
for (const { start, association } of variants) {
|
|
13
|
+
const index = +start;
|
|
14
|
+
// skip if the variant is outside of bounds
|
|
15
|
+
// eslint-disable-next-line no-continue
|
|
16
|
+
if (index < 1 || index > data.sequence.length) continue;
|
|
17
|
+
|
|
18
|
+
// eslint-disable-next-line no-plusplus
|
|
19
|
+
total[index]++;
|
|
20
|
+
|
|
21
|
+
// eslint-disable-next-line no-continue
|
|
22
|
+
if (!association) continue;
|
|
23
|
+
const hasDisease = association.find(
|
|
24
|
+
(association) => association.disease === true
|
|
25
|
+
);
|
|
26
|
+
// eslint-disable-next-line no-plusplus
|
|
27
|
+
if (hasDisease) diseaseTotal[index]++;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const graphData = [
|
|
31
|
+
{
|
|
32
|
+
name: 'variant',
|
|
33
|
+
range: [0, Math.max(Math.max(...total), Math.max(...diseaseTotal))],
|
|
34
|
+
color: 'darkgrey',
|
|
35
|
+
values: [...total].map((value, index) => ({ position: index, value: value })),
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'disease causing variant',
|
|
39
|
+
range: [0, Math.max(Math.max(...total), Math.max(...diseaseTotal))],
|
|
40
|
+
color: 'red',
|
|
41
|
+
values: [...diseaseTotal].map((value, index) => ({ position: index, value: value })),
|
|
42
|
+
},
|
|
43
|
+
];
|
|
44
|
+
return graphData;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import { css } from 'lit-element';
|
|
2
2
|
|
|
3
3
|
export default css`
|
|
4
|
-
protvista-tooltip a {
|
|
5
|
-
text-decoration: underline;
|
|
6
|
-
color: #fff;
|
|
7
|
-
}
|
|
8
4
|
.track-content {
|
|
9
5
|
width: 80vw;
|
|
10
6
|
}
|
|
@@ -27,16 +23,11 @@ export default css`
|
|
|
27
23
|
|
|
28
24
|
.category-label,
|
|
29
25
|
.track-label,
|
|
30
|
-
.
|
|
26
|
+
.nav-track-label,
|
|
31
27
|
.credits {
|
|
32
28
|
width: 20vw;
|
|
33
29
|
padding: 0.5em;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
.action-buttons {
|
|
37
|
-
display: flex;
|
|
38
|
-
justify-content: flex-end;
|
|
39
|
-
align-items: flex-end;
|
|
30
|
+
line-height: normal;
|
|
40
31
|
}
|
|
41
32
|
|
|
42
33
|
.category-label {
|
|
@@ -74,11 +65,11 @@ export default css`
|
|
|
74
65
|
background-color: #d9faff;
|
|
75
66
|
}
|
|
76
67
|
|
|
77
|
-
|
|
68
|
+
nightingale-track {
|
|
78
69
|
border-top: 1px solid #d9faff;
|
|
79
70
|
}
|
|
80
71
|
|
|
81
|
-
|
|
72
|
+
nightingale-navigation {
|
|
82
73
|
.handle {
|
|
83
74
|
fill: darkgrey;
|
|
84
75
|
stroke: black;
|
|
@@ -87,6 +78,10 @@ export default css`
|
|
|
87
78
|
}
|
|
88
79
|
}
|
|
89
80
|
|
|
81
|
+
nightingale-filter {
|
|
82
|
+
font-size: 0.8rem;
|
|
83
|
+
}
|
|
84
|
+
|
|
90
85
|
.feature {
|
|
91
86
|
cursor: pointer;
|
|
92
87
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
declare module '@nightingale-elements/nightingale-sequence-heatmap';
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { LitElement } from 'lit-element';
|
|
2
|
-
import { DownloadConfig } from './protvista-uniprot';
|
|
3
|
-
declare class DownloadPanel extends LitElement {
|
|
4
|
-
open: boolean;
|
|
5
|
-
format: string;
|
|
6
|
-
config?: DownloadConfig;
|
|
7
|
-
accession?: string;
|
|
8
|
-
constructor();
|
|
9
|
-
static get properties(): {
|
|
10
|
-
accession: {
|
|
11
|
-
type: StringConstructor;
|
|
12
|
-
};
|
|
13
|
-
config: {
|
|
14
|
-
type: ArrayConstructor;
|
|
15
|
-
};
|
|
16
|
-
open: {
|
|
17
|
-
type: BooleanConstructor;
|
|
18
|
-
};
|
|
19
|
-
format: {
|
|
20
|
-
type: StringConstructor;
|
|
21
|
-
};
|
|
22
|
-
};
|
|
23
|
-
static get styles(): import("lit-element").CSSResult;
|
|
24
|
-
handleDownload(): void;
|
|
25
|
-
handleSetFormat(format: string): void;
|
|
26
|
-
downloadSVG(): import("lit-element").SVGTemplateResult;
|
|
27
|
-
render(): import("lit-element").TemplateResult;
|
|
28
|
-
}
|
|
29
|
-
export default DownloadPanel;
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
import { LitElement, html, css, svg } from 'lit-element';
|
|
2
|
-
import { unsafeHTML } from 'lit-html/directives/unsafe-html.js';
|
|
3
|
-
import urlJoin from 'url-join';
|
|
4
|
-
import { saveAs } from 'file-saver';
|
|
5
|
-
import downloadIcon from './icons/download.svg';
|
|
6
|
-
const downloadFiles = (downloadConfig, format = 'json', accession) => {
|
|
7
|
-
downloadConfig.forEach((config) => {
|
|
8
|
-
saveAs(urlJoin(config.url, `${accession}.${format}`, `${accession}_${config.type}.${format}`), `${accession}_${config.type}.${format}`);
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
class DownloadPanel extends LitElement {
|
|
12
|
-
constructor() {
|
|
13
|
-
super();
|
|
14
|
-
this.open = false;
|
|
15
|
-
this.format = 'json';
|
|
16
|
-
}
|
|
17
|
-
static get properties() {
|
|
18
|
-
return {
|
|
19
|
-
accession: { type: String },
|
|
20
|
-
config: { type: Array },
|
|
21
|
-
open: { type: Boolean },
|
|
22
|
-
format: { type: String },
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
static get styles() {
|
|
26
|
-
return css `
|
|
27
|
-
:host {
|
|
28
|
-
position: relative;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
:host button {
|
|
32
|
-
display: inline-block;
|
|
33
|
-
background-color: #FFF;
|
|
34
|
-
border: none;
|
|
35
|
-
padding: 0.2rem;
|
|
36
|
-
margin: 0;
|
|
37
|
-
text-decoration: none;
|
|
38
|
-
font-size: 1rem;
|
|
39
|
-
cursor: pointer;
|
|
40
|
-
text-align: center;
|
|
41
|
-
color: #00709b;
|
|
42
|
-
transition: opacity 250ms ease-in-out, transform 150ms ease;
|
|
43
|
-
opacity: 0.8
|
|
44
|
-
-webkit-appearance: none;
|
|
45
|
-
-moz-appearance: none;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
:host button:hover {
|
|
49
|
-
opacity:1;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
:host button svg {
|
|
53
|
-
width: 1.5rem;
|
|
54
|
-
height: 1.5rem;
|
|
55
|
-
transition: opacity 250ms ease-in-out, transform 150ms ease;
|
|
56
|
-
opacity: 0.8;
|
|
57
|
-
}
|
|
58
|
-
:host button svg:hover {
|
|
59
|
-
opacity: 1;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
.download-menu {
|
|
63
|
-
display: none;
|
|
64
|
-
position: absolute;
|
|
65
|
-
background-color: #fff;
|
|
66
|
-
padding: 1rem;
|
|
67
|
-
box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
|
|
68
|
-
transition: all 0.3s cubic-bezier(.25,.8,.25,1);
|
|
69
|
-
}
|
|
70
|
-
:host(:hover) .download-menu {
|
|
71
|
-
display: block;
|
|
72
|
-
}
|
|
73
|
-
.download-menu ul {
|
|
74
|
-
margin: 0;
|
|
75
|
-
padding: 0;
|
|
76
|
-
}
|
|
77
|
-
.download-menu li {
|
|
78
|
-
list-style: none;
|
|
79
|
-
margin: 0.5rem 0;
|
|
80
|
-
}
|
|
81
|
-
`;
|
|
82
|
-
}
|
|
83
|
-
handleDownload() {
|
|
84
|
-
if (this.config && this.accession) {
|
|
85
|
-
downloadFiles(this.config, this.format, this.accession);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
handleSetFormat(format) {
|
|
89
|
-
this.format = format;
|
|
90
|
-
}
|
|
91
|
-
downloadSVG() {
|
|
92
|
-
return svg `${unsafeHTML(downloadIcon)}`;
|
|
93
|
-
}
|
|
94
|
-
render() {
|
|
95
|
-
return html `
|
|
96
|
-
<button title="Download">${this.downloadSVG()}</button>
|
|
97
|
-
<div class="${`download-menu ${this.open && `download-menu-open`}`}">
|
|
98
|
-
<ul>
|
|
99
|
-
<li>
|
|
100
|
-
<label
|
|
101
|
-
><input
|
|
102
|
-
type="radio"
|
|
103
|
-
name="download-type"
|
|
104
|
-
value="json"
|
|
105
|
-
checked
|
|
106
|
-
@click="${() => this.handleSetFormat('json')}"
|
|
107
|
-
/>JSON</label
|
|
108
|
-
>
|
|
109
|
-
</li>
|
|
110
|
-
<li>
|
|
111
|
-
<label
|
|
112
|
-
><input
|
|
113
|
-
type="radio"
|
|
114
|
-
name="download-type"
|
|
115
|
-
value="xml"
|
|
116
|
-
@click="${() => this.handleSetFormat('xml')}"
|
|
117
|
-
/>XML</label
|
|
118
|
-
>
|
|
119
|
-
</li>
|
|
120
|
-
<li>
|
|
121
|
-
<label
|
|
122
|
-
><input
|
|
123
|
-
type="radio"
|
|
124
|
-
name="download-type"
|
|
125
|
-
value="gff"
|
|
126
|
-
@click="${() => this.handleSetFormat('gff')}"
|
|
127
|
-
/>GFF</label
|
|
128
|
-
>
|
|
129
|
-
</li>
|
|
130
|
-
</ul>
|
|
131
|
-
<button @click="${this.handleDownload}">Download</button>
|
|
132
|
-
</div>
|
|
133
|
-
`;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
export default DownloadPanel;
|
|
137
|
-
//# sourceMappingURL=download-panel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"download-panel.js","sourceRoot":"","sources":["../../src/download-panel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,OAAO,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,OAAO,YAAY,MAAM,sBAAsB,CAAC;AAIhD,MAAM,aAAa,GAAG,CACpB,cAA8B,EAC9B,MAAM,GAAG,MAAM,EACf,SAAiB,EACjB,EAAE;IACF,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAChC,MAAM,CACJ,OAAO,CACL,MAAM,CAAC,GAAG,EACV,GAAG,SAAS,IAAI,MAAM,EAAE,EACxB,GAAG,SAAS,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,EAAE,CACxC,EACD,GAAG,SAAS,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,EAAE,CACxC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,aAAc,SAAQ,UAAU;IAMpC;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YAC3B,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;YACvB,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YACvB,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACzB,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,MAAM;QACf,OAAO,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuDT,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;YACjC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;SACzD;IACH,CAAC;IAED,eAAe,CAAC,MAAc;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,WAAW;QACT,OAAO,GAAG,CAAA,GAAG,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;iCACkB,IAAI,CAAC,WAAW,EAAE;oBAC/B,iBAAiB,IAAI,CAAC,IAAI,IAAI,oBAAoB,EAAE;;;;;;;;;0BAS9C,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;;;;;;;;;;0BAUlC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;;;;;;;;;;0BAUjC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;;;;;0BAKjC,IAAI,CAAC,cAAc;;KAExC,CAAC;IACJ,CAAC;CACF;AAED,eAAe,aAAa,CAAC"}
|
package/src/download-panel.ts
DELETED
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
import { LitElement, html, css, svg } from 'lit-element';
|
|
2
|
-
import { unsafeHTML } from 'lit-html/directives/unsafe-html.js';
|
|
3
|
-
import urlJoin from 'url-join';
|
|
4
|
-
import { saveAs } from 'file-saver';
|
|
5
|
-
|
|
6
|
-
import downloadIcon from './icons/download.svg';
|
|
7
|
-
|
|
8
|
-
import { DownloadConfig } from './protvista-uniprot';
|
|
9
|
-
|
|
10
|
-
const downloadFiles = (
|
|
11
|
-
downloadConfig: DownloadConfig,
|
|
12
|
-
format = 'json',
|
|
13
|
-
accession: string
|
|
14
|
-
) => {
|
|
15
|
-
downloadConfig.forEach((config) => {
|
|
16
|
-
saveAs(
|
|
17
|
-
urlJoin(
|
|
18
|
-
config.url,
|
|
19
|
-
`${accession}.${format}`,
|
|
20
|
-
`${accession}_${config.type}.${format}`
|
|
21
|
-
),
|
|
22
|
-
`${accession}_${config.type}.${format}`
|
|
23
|
-
);
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
class DownloadPanel extends LitElement {
|
|
28
|
-
open: boolean;
|
|
29
|
-
format: string;
|
|
30
|
-
config?: DownloadConfig;
|
|
31
|
-
accession?: string;
|
|
32
|
-
|
|
33
|
-
constructor() {
|
|
34
|
-
super();
|
|
35
|
-
this.open = false;
|
|
36
|
-
this.format = 'json';
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
static get properties() {
|
|
40
|
-
return {
|
|
41
|
-
accession: { type: String },
|
|
42
|
-
config: { type: Array },
|
|
43
|
-
open: { type: Boolean },
|
|
44
|
-
format: { type: String },
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
static get styles() {
|
|
49
|
-
return css`
|
|
50
|
-
:host {
|
|
51
|
-
position: relative;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
:host button {
|
|
55
|
-
display: inline-block;
|
|
56
|
-
background-color: #FFF;
|
|
57
|
-
border: none;
|
|
58
|
-
padding: 0.2rem;
|
|
59
|
-
margin: 0;
|
|
60
|
-
text-decoration: none;
|
|
61
|
-
font-size: 1rem;
|
|
62
|
-
cursor: pointer;
|
|
63
|
-
text-align: center;
|
|
64
|
-
color: #00709b;
|
|
65
|
-
transition: opacity 250ms ease-in-out, transform 150ms ease;
|
|
66
|
-
opacity: 0.8
|
|
67
|
-
-webkit-appearance: none;
|
|
68
|
-
-moz-appearance: none;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
:host button:hover {
|
|
72
|
-
opacity:1;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
:host button svg {
|
|
76
|
-
width: 1.5rem;
|
|
77
|
-
height: 1.5rem;
|
|
78
|
-
transition: opacity 250ms ease-in-out, transform 150ms ease;
|
|
79
|
-
opacity: 0.8;
|
|
80
|
-
}
|
|
81
|
-
:host button svg:hover {
|
|
82
|
-
opacity: 1;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
.download-menu {
|
|
86
|
-
display: none;
|
|
87
|
-
position: absolute;
|
|
88
|
-
background-color: #fff;
|
|
89
|
-
padding: 1rem;
|
|
90
|
-
box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
|
|
91
|
-
transition: all 0.3s cubic-bezier(.25,.8,.25,1);
|
|
92
|
-
}
|
|
93
|
-
:host(:hover) .download-menu {
|
|
94
|
-
display: block;
|
|
95
|
-
}
|
|
96
|
-
.download-menu ul {
|
|
97
|
-
margin: 0;
|
|
98
|
-
padding: 0;
|
|
99
|
-
}
|
|
100
|
-
.download-menu li {
|
|
101
|
-
list-style: none;
|
|
102
|
-
margin: 0.5rem 0;
|
|
103
|
-
}
|
|
104
|
-
`;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
handleDownload() {
|
|
108
|
-
if (this.config && this.accession) {
|
|
109
|
-
downloadFiles(this.config, this.format, this.accession);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
handleSetFormat(format: string) {
|
|
114
|
-
this.format = format;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
downloadSVG() {
|
|
118
|
-
return svg`${unsafeHTML(downloadIcon)}`;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
render() {
|
|
122
|
-
return html`
|
|
123
|
-
<button title="Download">${this.downloadSVG()}</button>
|
|
124
|
-
<div class="${`download-menu ${this.open && `download-menu-open`}`}">
|
|
125
|
-
<ul>
|
|
126
|
-
<li>
|
|
127
|
-
<label
|
|
128
|
-
><input
|
|
129
|
-
type="radio"
|
|
130
|
-
name="download-type"
|
|
131
|
-
value="json"
|
|
132
|
-
checked
|
|
133
|
-
@click="${() => this.handleSetFormat('json')}"
|
|
134
|
-
/>JSON</label
|
|
135
|
-
>
|
|
136
|
-
</li>
|
|
137
|
-
<li>
|
|
138
|
-
<label
|
|
139
|
-
><input
|
|
140
|
-
type="radio"
|
|
141
|
-
name="download-type"
|
|
142
|
-
value="xml"
|
|
143
|
-
@click="${() => this.handleSetFormat('xml')}"
|
|
144
|
-
/>XML</label
|
|
145
|
-
>
|
|
146
|
-
</li>
|
|
147
|
-
<li>
|
|
148
|
-
<label
|
|
149
|
-
><input
|
|
150
|
-
type="radio"
|
|
151
|
-
name="download-type"
|
|
152
|
-
value="gff"
|
|
153
|
-
@click="${() => this.handleSetFormat('gff')}"
|
|
154
|
-
/>GFF</label
|
|
155
|
-
>
|
|
156
|
-
</li>
|
|
157
|
-
</ul>
|
|
158
|
-
<button @click="${this.handleDownload}">Download</button>
|
|
159
|
-
</div>
|
|
160
|
-
`;
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
export default DownloadPanel;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
declare module 'protvista-filter';
|
|
2
|
-
|
|
3
|
-
declare class ProtvistaFilter extends HTMLElement {
|
|
4
|
-
filters: {
|
|
5
|
-
name: string;
|
|
6
|
-
type: {
|
|
7
|
-
name: string;
|
|
8
|
-
text: string;
|
|
9
|
-
};
|
|
10
|
-
options: {
|
|
11
|
-
labels: string[];
|
|
12
|
-
colors: string[];
|
|
13
|
-
};
|
|
14
|
-
filterData: (data: any) => any;
|
|
15
|
-
}[];
|
|
16
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
declare module 'protvista-interpro-track';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
declare module 'protvista-manager';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
declare module 'protvista-navigation';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
declare module 'protvista-sequence';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
declare module 'protvista-variation-graph';
|