react-msaview 3.1.11 → 3.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/bundle/index.js +31 -31
  2. package/dist/components/SequenceTextArea.js +4 -0
  3. package/dist/components/SequenceTextArea.js.map +1 -1
  4. package/dist/components/dialogs/DomainDialog.d.ts +6 -0
  5. package/dist/components/dialogs/DomainDialog.js +19 -0
  6. package/dist/components/dialogs/DomainDialog.js.map +1 -0
  7. package/dist/components/dialogs/InterProScanPanel.d.ts +7 -0
  8. package/dist/components/dialogs/{InterProScanDialog.js → InterProScanPanel.js} +36 -8
  9. package/dist/components/dialogs/InterProScanPanel.js.map +1 -0
  10. package/dist/components/dialogs/TabPanel.d.ts +6 -0
  11. package/dist/components/dialogs/TabPanel.js +6 -0
  12. package/dist/components/dialogs/TabPanel.js.map +1 -0
  13. package/dist/components/dialogs/{InterProScanDialog.d.ts → UserProvidedResultPanel.d.ts} +2 -2
  14. package/dist/components/dialogs/UserProvidedResultPanel.js +56 -0
  15. package/dist/components/dialogs/UserProvidedResultPanel.js.map +1 -0
  16. package/dist/components/header/Header.js +0 -2
  17. package/dist/components/header/Header.js.map +1 -1
  18. package/dist/components/header/HeaderMenuExtra.js +36 -25
  19. package/dist/components/header/HeaderMenuExtra.js.map +1 -1
  20. package/dist/components/header/HeaderStatusArea.d.ts +1 -1
  21. package/dist/components/header/HeaderStatusArea.js +3 -2
  22. package/dist/components/header/HeaderStatusArea.js.map +1 -1
  23. package/dist/components/msa/MSACanvasBlock.js +1 -1
  24. package/dist/components/msa/renderBoxFeatureCanvasBlock.js +2 -2
  25. package/dist/components/msa/renderMSABlock.js +4 -4
  26. package/dist/fetchUtils.d.ts +1 -1
  27. package/dist/fetchUtils.js.map +1 -1
  28. package/dist/launchInterProScan.d.ts +9 -3
  29. package/dist/launchInterProScan.js +58 -21
  30. package/dist/launchInterProScan.js.map +1 -1
  31. package/dist/model.d.ts +11 -33
  32. package/dist/model.js +4 -65
  33. package/dist/model.js.map +1 -1
  34. package/dist/renderToSvg.js +0 -23
  35. package/dist/renderToSvg.js.map +1 -1
  36. package/dist/version.d.ts +1 -1
  37. package/dist/version.js +1 -1
  38. package/package.json +1 -1
  39. package/src/components/SequenceTextArea.tsx +8 -0
  40. package/src/components/dialogs/DomainDialog.tsx +38 -0
  41. package/src/components/dialogs/{InterProScanDialog.tsx → InterProScanPanel.tsx} +41 -10
  42. package/src/components/dialogs/TabPanel.tsx +19 -0
  43. package/src/components/dialogs/UserProvidedResultPanel.tsx +119 -0
  44. package/src/components/header/Header.tsx +0 -2
  45. package/src/components/header/HeaderMenuExtra.tsx +41 -28
  46. package/src/components/header/HeaderStatusArea.tsx +7 -2
  47. package/src/components/msa/MSACanvasBlock.tsx +1 -1
  48. package/src/components/msa/renderBoxFeatureCanvasBlock.ts +2 -2
  49. package/src/components/msa/renderMSABlock.ts +4 -4
  50. package/src/fetchUtils.ts +2 -2
  51. package/src/launchInterProScan.ts +70 -23
  52. package/src/model.ts +5 -86
  53. package/src/renderToSvg.tsx +0 -24
  54. package/src/version.ts +1 -1
  55. package/dist/components/dialogs/InterProScanDialog.js.map +0 -1
@@ -19,7 +19,10 @@ export default function SequenceTextArea({ str }) {
19
19
  const { classes } = useStyles();
20
20
  const [copied, setCopied] = useState(false);
21
21
  const [showGaps, setShowGaps] = useState(false);
22
+ const [showEmpty, setShowEmpty] = useState(false);
22
23
  const disp = str
24
+ .map(([s1, s2]) => [s1, showGaps ? s2 : s2.replaceAll('-', '')])
25
+ .filter(f => (showEmpty ? true : !!f[1]))
23
26
  .map(([s1, s2]) => `>${s1}\n${showGaps ? s2 : s2.replaceAll('-', '')}`)
24
27
  .join('\n');
25
28
  return (React.createElement(React.Fragment, null,
@@ -29,6 +32,7 @@ export default function SequenceTextArea({ str }) {
29
32
  setTimeout(() => setCopied(false), 500);
30
33
  } }, copied ? 'Copied!' : 'Copy to clipboard'),
31
34
  React.createElement(Checkbox2, { label: "Show gaps", checked: showGaps, onChange: () => setShowGaps(!showGaps) }),
35
+ React.createElement(Checkbox2, { label: "Show empty", checked: showEmpty, onChange: () => setShowEmpty(!showEmpty) }),
32
36
  React.createElement(TextField, { variant: "outlined", multiline: true, className: classes.dialogContent, minRows: 5, maxRows: 10, fullWidth: true, value: disp, InputProps: {
33
37
  readOnly: true,
34
38
  classes: {
@@ -1 +1 @@
1
- {"version":3,"file":"SequenceTextArea.js","sourceRoot":"","sources":["../../src/components/SequenceTextArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,IAAI,MAAM,mBAAmB,CAAA;AAEpC,SAAS;AACT,OAAO,SAAS,MAAM,aAAa,CAAA;AAEnC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;IAC7B,YAAY,EAAE;QACZ,UAAU,EAAE,aAAa;QACzB,QAAQ,EAAE,YAAY;KACvB;IACD,aAAa,EAAE;QACb,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,CAAC;QACT,QAAQ,EAAE,MAAM;KACjB;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EAAE,GAAG,EAA+B;IAC3E,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE/C,MAAM,IAAI,GAAG,GAAG;SACb,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;SACtE,IAAI,CAAC,IAAI,CAAC,CAAA;IACb,OAAO,CACL;QACE,oBAAC,MAAM,IACL,KAAK,EAAC,SAAS,EACf,OAAO,EAAC,WAAW,EACnB,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,CAAC,IAAI,CAAC,CAAA;gBACV,SAAS,CAAC,IAAI,CAAC,CAAA;gBACf,UAAU,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAA;YACzC,CAAC,IAEA,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAClC;QACT,oBAAC,SAAS,IACR,KAAK,EAAC,WAAW,EACjB,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,GACtC;QACF,oBAAC,SAAS,IACR,OAAO,EAAC,UAAU,EAClB,SAAS,QACT,SAAS,EAAE,OAAO,CAAC,aAAa,EAChC,OAAO,EAAE,CAAC,EACV,OAAO,EAAE,EAAE,EACX,SAAS,QACT,KAAK,EAAE,IAAI,EACX,UAAU,EAAE;gBACV,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE;oBACP,KAAK,EAAE,OAAO,CAAC,YAAY;iBAC5B;aACF,GACD,CACD,CACJ,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"SequenceTextArea.js","sourceRoot":"","sources":["../../src/components/SequenceTextArea.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import { MsaViewModel } from '../../model';
3
+ export default function LaunchDomainViewDialog({ handleClose, model, }: {
4
+ handleClose: () => void;
5
+ model: MsaViewModel;
6
+ }): React.JSX.Element;
@@ -0,0 +1,19 @@
1
+ import React, { useState } from 'react';
2
+ import { Dialog } from '@jbrowse/core/ui';
3
+ import { Tab, Tabs } from '@mui/material';
4
+ // locals
5
+ import InterProScanPanel from './InterProScanPanel';
6
+ import UserProvidedResultPanel from './UserProvidedResultPanel';
7
+ import TabPanel from './TabPanel';
8
+ export default function LaunchDomainViewDialog({ handleClose, model, }) {
9
+ const [choice, setChoice] = useState(0);
10
+ return (React.createElement(Dialog, { maxWidth: "xl", title: "Launch protein view", onClose: () => handleClose(), open: true },
11
+ React.createElement(Tabs, { value: choice, onChange: (_, val) => setChoice(val) },
12
+ React.createElement(Tab, { value: 0, label: "Automatic lookup" }),
13
+ React.createElement(Tab, { value: 1, label: "Manual" })),
14
+ React.createElement(TabPanel, { value: choice, index: 0 },
15
+ React.createElement(InterProScanPanel, { model: model, handleClose: handleClose })),
16
+ React.createElement(TabPanel, { value: choice, index: 1 },
17
+ React.createElement(UserProvidedResultPanel, { model: model, handleClose: handleClose }))));
18
+ }
19
+ //# sourceMappingURL=DomainDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DomainDialog.js","sourceRoot":"","sources":["../../../src/components/dialogs/DomainDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAEzC,SAAS;AACT,OAAO,iBAAiB,MAAM,qBAAqB,CAAA;AACnD,OAAO,uBAAuB,MAAM,2BAA2B,CAAA;AAC/D,OAAO,QAAQ,MAAM,YAAY,CAAA;AAGjC,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAC7C,WAAW,EACX,KAAK,GAIN;IACC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IACvC,OAAO,CACL,oBAAC,MAAM,IACL,QAAQ,EAAC,IAAI,EACb,KAAK,EAAC,qBAAqB,EAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,EAC5B,IAAI;QAEJ,oBAAC,IAAI,IAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC;YACvD,oBAAC,GAAG,IAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAC,kBAAkB,GAAG;YAC1C,oBAAC,GAAG,IAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAC,QAAQ,GAAG,CAC3B;QACP,oBAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;YAC/B,oBAAC,iBAAiB,IAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,GAAI,CACpD;QACX,oBAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;YAC/B,oBAAC,uBAAuB,IAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,GAAI,CAC1D,CACJ,CACV,CAAA;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { MsaViewModel } from '../../model';
3
+ declare const InterProScanDialog: ({ handleClose, model, }: {
4
+ handleClose: () => void;
5
+ model: MsaViewModel;
6
+ }) => React.JSX.Element;
7
+ export default InterProScanDialog;
@@ -1,8 +1,9 @@
1
1
  import React, { useState } from 'react';
2
2
  import { observer } from 'mobx-react';
3
- import { Dialog } from '@jbrowse/core/ui';
4
3
  import { Button, DialogActions, DialogContent, Typography } from '@mui/material';
5
- const FeatureTypeDialog = observer(function ({ onClose, model, }) {
4
+ import { getSession } from '@jbrowse/core/util';
5
+ import { launchInterProScan } from '../../launchInterProScan';
6
+ const InterProScanDialog = observer(function ({ handleClose, model, }) {
6
7
  const [vals, setVals] = useState([
7
8
  {
8
9
  name: 'NCBIfam',
@@ -131,7 +132,7 @@ const FeatureTypeDialog = observer(function ({ onClose, model, }) {
131
132
  ]);
132
133
  const programs = vals.filter(e => e.checked).map(e => e.name);
133
134
  const [show, setShow] = useState(false);
134
- return (React.createElement(Dialog, { onClose: () => onClose(), open: true, title: "Feature types", maxWidth: "xl" },
135
+ return (React.createElement(React.Fragment, null,
135
136
  React.createElement(DialogContent, null,
136
137
  React.createElement(Typography, null, "This will run InterProScan on all rows of the current MSA"),
137
138
  React.createElement(Button, { onClick: () => setShow(!show) },
@@ -153,11 +154,38 @@ const FeatureTypeDialog = observer(function ({ onClose, model, }) {
153
154
  React.createElement("td", null, name),
154
155
  React.createElement("td", null, category)))))))) : null),
155
156
  React.createElement(DialogActions, null,
156
- React.createElement(Button, { variant: "contained", color: "secondary", onClick: () => onClose() }, "Cancel"),
157
+ React.createElement(Button, { variant: "contained", color: "secondary", onClick: () => handleClose() }, "Cancel"),
157
158
  React.createElement(Button, { variant: "contained", color: "primary", onClick: () => {
158
- model.queryInterProScan(programs).catch(e => model.setError(e));
159
- onClose();
159
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
160
+ ;
161
+ (async () => {
162
+ try {
163
+ const { rows } = model;
164
+ if (rows.length > 140) {
165
+ throw new Error('Too many sequences, please run InterProScan offline');
166
+ }
167
+ await launchInterProScan({
168
+ algorithm: 'interproscan',
169
+ programs: programs,
170
+ seq: rows
171
+ .map(row => [row[0], row[1].replaceAll('-', '')])
172
+ .filter(f => !!f[1])
173
+ .map(row => `>${row[0]}\n${row[1]}`)
174
+ .join('\n'),
175
+ onProgress: arg => model.setStatus(arg),
176
+ model,
177
+ });
178
+ }
179
+ catch (e) {
180
+ console.error(e);
181
+ getSession(model).notifyError(`${e}`, e);
182
+ }
183
+ finally {
184
+ model.setStatus();
185
+ }
186
+ })();
187
+ handleClose();
160
188
  } }, "Send sequences to InterProScan"))));
161
189
  });
162
- export default FeatureTypeDialog;
163
- //# sourceMappingURL=InterProScanDialog.js.map
190
+ export default InterProScanDialog;
191
+ //# sourceMappingURL=InterProScanPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InterProScanPanel.js","sourceRoot":"","sources":["../../../src/components/dialogs/InterProScanPanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export default function TabPanel({ children, value, index, ...other }: {
3
+ children?: React.ReactNode;
4
+ index: number;
5
+ value: number;
6
+ }): React.JSX.Element;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ // this is from MUI example
3
+ export default function TabPanel({ children, value, index, ...other }) {
4
+ return (React.createElement("div", { role: "tabpanel", hidden: value !== index, ...other }, value === index && React.createElement("div", null, children)));
5
+ }
6
+ //# sourceMappingURL=TabPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabPanel.js","sourceRoot":"","sources":["../../../src/components/dialogs/TabPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,2BAA2B;AAC3B,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,QAAQ,EACR,KAAK,EACL,KAAK,EACL,GAAG,KAAK,EAKT;IACC,OAAO,CACL,6BAAK,IAAI,EAAC,UAAU,EAAC,MAAM,EAAE,KAAK,KAAK,KAAK,KAAM,KAAK,IACpD,KAAK,KAAK,KAAK,IAAI,iCAAM,QAAQ,CAAO,CACrC,CACP,CAAA;AACH,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { MsaViewModel } from '../../model';
3
- declare const FeatureTypeDialog: ({ onClose, model, }: {
4
- onClose: () => void;
3
+ declare const FeatureTypeDialog: ({ handleClose, model, }: {
4
+ handleClose: () => void;
5
5
  model: MsaViewModel;
6
6
  }) => React.JSX.Element;
7
7
  export default FeatureTypeDialog;
@@ -0,0 +1,56 @@
1
+ import React, { useState } from 'react';
2
+ import { observer } from 'mobx-react';
3
+ import { Button, DialogActions, DialogContent, FormControlLabel, FormControl, Radio, RadioGroup, TextField, Typography, } from '@mui/material';
4
+ import { getSession } from '@jbrowse/core/util';
5
+ import { jsonfetch } from '../../fetchUtils';
6
+ const FeatureTypeDialog = observer(function ({ handleClose, model, }) {
7
+ const [file, setFile] = useState();
8
+ const [choice, setChoice] = useState('file');
9
+ const [interProURL, setInterProURL] = useState('');
10
+ return (React.createElement(React.Fragment, null,
11
+ React.createElement(DialogContent, null,
12
+ React.createElement("div", { style: { display: 'flex', margin: 30 } },
13
+ React.createElement(Typography, null, "Open a JSON file of InterProScan results that you run remotely on EBI servers or locally"),
14
+ React.createElement(FormControl, { component: "fieldset" },
15
+ React.createElement(RadioGroup, { value: choice, onChange: event => setChoice(event.target.value) },
16
+ React.createElement(FormControlLabel, { value: "url", control: React.createElement(Radio, null), label: "URL" }),
17
+ React.createElement(FormControlLabel, { value: "file", control: React.createElement(Radio, null), label: "File" }))),
18
+ choice === 'url' ? (React.createElement("div", null,
19
+ React.createElement(Typography, null, "Open a InterProScan JSON file remote URL"),
20
+ React.createElement(TextField, { label: "URL", value: interProURL, onChange: event => setInterProURL(event.target.value) }))) : null,
21
+ choice === 'file' ? (React.createElement("div", { style: { paddingTop: 20 } },
22
+ React.createElement(Typography, null, "Open a InterProScan JSON file file from your local drive"),
23
+ React.createElement(Button, { variant: "outlined", component: "label" },
24
+ "Choose File",
25
+ React.createElement("input", { type: "file", hidden: true, onChange: ({ target }) => {
26
+ const file = target?.files?.[0];
27
+ if (file) {
28
+ setFile(file);
29
+ }
30
+ } })))) : null)),
31
+ React.createElement(DialogActions, null,
32
+ React.createElement(Button, { variant: "contained", color: "primary", onClick: () => {
33
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
34
+ ;
35
+ (async () => {
36
+ try {
37
+ const ret = file
38
+ ? JSON.parse(await file.text())
39
+ : await jsonfetch(interProURL);
40
+ model.setLoadedInterProAnnotations(Object.fromEntries(ret.results.map(r => [r.xref[0].id, r])));
41
+ model.setShowDomains(true);
42
+ getSession(model).notify('Loaded interproscan results', 'success');
43
+ }
44
+ catch (e) {
45
+ console.error(e);
46
+ getSession(model).notifyError(`${e}`, e);
47
+ }
48
+ finally {
49
+ model.setStatus();
50
+ }
51
+ })();
52
+ handleClose();
53
+ } }, "Open results"))));
54
+ });
55
+ export default FeatureTypeDialog;
56
+ //# sourceMappingURL=UserProvidedResultPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserProvidedResultPanel.js","sourceRoot":"","sources":["../../../src/components/dialogs/UserProvidedResultPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EACL,MAAM,EACN,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,KAAK,EACL,UAAU,EACV,SAAS,EACT,UAAU,GACX,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAI/C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAG5C,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,EAC3C,WAAW,EACX,KAAK,GAIN;IACC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,EAAQ,CAAA;IACxC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC5C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAElD,OAAO,CACL;QACE,oBAAC,aAAa;YACZ,6BAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;gBACzC,oBAAC,UAAU,mGAGE;gBAEb,oBAAC,WAAW,IAAC,SAAS,EAAC,UAAU;oBAC/B,oBAAC,UAAU,IACT,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;wBAEhD,oBAAC,gBAAgB,IAAC,KAAK,EAAC,KAAK,EAAC,OAAO,EAAE,oBAAC,KAAK,OAAG,EAAE,KAAK,EAAC,KAAK,GAAG;wBAChE,oBAAC,gBAAgB,IAAC,KAAK,EAAC,MAAM,EAAC,OAAO,EAAE,oBAAC,KAAK,OAAG,EAAE,KAAK,EAAC,MAAM,GAAG,CACvD,CACD;gBACb,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,CAClB;oBACE,oBAAC,UAAU,mDAAsD;oBACjE,oBAAC,SAAS,IACR,KAAK,EAAC,KAAK,EACX,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GACrD,CACE,CACP,CAAC,CAAC,CAAC,IAAI;gBACP,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CACnB,6BAAK,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;oBAC5B,oBAAC,UAAU,mEAEE;oBACb,oBAAC,MAAM,IAAC,OAAO,EAAC,UAAU,EAAC,SAAS,EAAC,OAAO;;wBAE1C,+BACE,IAAI,EAAC,MAAM,EACX,MAAM,QACN,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;gCACvB,MAAM,IAAI,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;gCAC/B,IAAI,IAAI,EAAE,CAAC;oCACT,OAAO,CAAC,IAAI,CAAC,CAAA;gCACf,CAAC;4BACH,CAAC,GACD,CACK,CACL,CACP,CAAC,CAAC,CAAC,IAAI,CACJ,CACQ;QAChB,oBAAC,aAAa;YACZ,oBAAC,MAAM,IACL,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,SAAS,EACf,OAAO,EAAE,GAAG,EAAE;oBACZ,mEAAmE;oBACnE,CAAC;oBAAA,CAAC,KAAK,IAAI,EAAE;wBACX,IAAI,CAAC;4BACH,MAAM,GAAG,GAAyB,IAAI;gCACpC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gCAC/B,CAAC,CAAC,MAAM,SAAS,CAAC,WAAW,CAAC,CAAA;4BAEhC,KAAK,CAAC,4BAA4B,CAChC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAC5D,CAAA;4BACD,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;4BAC1B,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CACtB,6BAA6B,EAC7B,SAAS,CACV,CAAA;wBACH,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC;4BACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;4BAChB,UAAU,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;wBAC1C,CAAC;gCAAS,CAAC;4BACT,KAAK,CAAC,SAAS,EAAE,CAAA;wBACnB,CAAC;oBACH,CAAC,CAAC,EAAE,CAAA;oBACJ,WAAW,EAAE,CAAA;gBACf,CAAC,mBAGM,CACK,CACf,CACJ,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,iBAAiB,CAAA"}
@@ -8,12 +8,10 @@ import ZoomControls from './ZoomControls';
8
8
  import MultiAlignmentSelector from './MultiAlignmentSelector';
9
9
  import HeaderInfoArea from './HeaderInfoArea';
10
10
  import HeaderStatusArea from './HeaderStatusArea';
11
- import HeaderMenu from './HeaderMenu';
12
11
  import HeaderMenuExtra from './HeaderMenuExtra';
13
12
  const AboutDialog = lazy(() => import('../dialogs/AboutDialog'));
14
13
  const Header = observer(function ({ model }) {
15
14
  return (React.createElement("div", { style: { display: 'flex' } },
16
- React.createElement(HeaderMenu, { model: model }),
17
15
  React.createElement(ZoomControls, { model: model }),
18
16
  React.createElement(HeaderMenuExtra, { model: model }),
19
17
  React.createElement(MultiAlignmentSelector, { model: model }),
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/components/header/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAKrC,QAAQ;AACR,OAAO,IAAI,MAAM,0BAA0B,CAAA;AAE3C,SAAS;AACT,OAAO,YAAY,MAAM,gBAAgB,CAAA;AACzC,OAAO,sBAAsB,MAAM,0BAA0B,CAAA;AAC7D,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAC7C,OAAO,gBAAgB,MAAM,oBAAoB,CAAA;AACjD,OAAO,UAAU,MAAM,cAAc,CAAA;AACrC,OAAO,eAAe,MAAM,mBAAmB,CAAA;AAE/C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAA;AAEhE,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,EAAE,KAAK,EAA2B;IAClE,OAAO,CACL,6BAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;QAC7B,oBAAC,UAAU,IAAC,KAAK,EAAE,KAAK,GAAI;QAC5B,oBAAC,YAAY,IAAC,KAAK,EAAE,KAAK,GAAI;QAC9B,oBAAC,eAAe,IAAC,KAAK,EAAE,KAAK,GAAI;QACjC,oBAAC,sBAAsB,IAAC,KAAK,EAAE,KAAK,GAAI;QACxC,oBAAC,cAAc,IAAC,KAAK,EAAE,KAAK,GAAI;QAChC,oBAAC,MAAM,OAAG;QACV,oBAAC,gBAAgB,IAAC,KAAK,EAAE,KAAK,GAAI;QAClC,oBAAC,UAAU,IACT,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAEvE,oBAAC,IAAI,OAAG,CACG,CACT,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,SAAS,MAAM;IACb,OAAO,6BAAK,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAI,CAAA;AACpC,CAAC;AAED,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/components/header/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAKrC,QAAQ;AACR,OAAO,IAAI,MAAM,0BAA0B,CAAA;AAE3C,SAAS;AACT,OAAO,YAAY,MAAM,gBAAgB,CAAA;AACzC,OAAO,sBAAsB,MAAM,0BAA0B,CAAA;AAC7D,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAC7C,OAAO,gBAAgB,MAAM,oBAAoB,CAAA;AACjD,OAAO,eAAe,MAAM,mBAAmB,CAAA;AAE/C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAA;AAEhE,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,EAAE,KAAK,EAA2B;IAClE,OAAO,CACL,6BAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;QAC7B,oBAAC,YAAY,IAAC,KAAK,EAAE,KAAK,GAAI;QAC9B,oBAAC,eAAe,IAAC,KAAK,EAAE,KAAK,GAAI;QACjC,oBAAC,sBAAsB,IAAC,KAAK,EAAE,KAAK,GAAI;QACxC,oBAAC,cAAc,IAAC,KAAK,EAAE,KAAK,GAAI;QAChC,oBAAC,MAAM,OAAG;QACV,oBAAC,gBAAgB,IAAC,KAAK,EAAE,KAAK,GAAI;QAClC,oBAAC,UAAU,IACT,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAEvE,oBAAC,IAAI,OAAG,CACG,CACT,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,SAAS,MAAM;IACb,OAAO,6BAAK,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAI,CAAA;AACpC,CAAC;AAED,eAAe,MAAM,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import React, { lazy } from 'react';
2
2
  import { observer } from 'mobx-react';
3
3
  import CascadingMenuButton from '@jbrowse/core/ui/CascadingMenuButton';
4
+ // locals
4
5
  // icons
5
6
  import MoreVert from '@mui/icons-material/MoreVert';
6
7
  import Sort from '@mui/icons-material/Sort';
@@ -9,13 +10,40 @@ import FilterAlt from '@mui/icons-material/FilterAlt';
9
10
  import Search from '@mui/icons-material/Search';
10
11
  import PhotoCamera from '@mui/icons-material/PhotoCamera';
11
12
  import RestartAlt from '@mui/icons-material/RestartAlt';
13
+ import FolderOpen from '@mui/icons-material/FolderOpen';
14
+ import Settings from '@mui/icons-material/Settings';
15
+ import Assignment from '@mui/icons-material/Assignment';
16
+ import List from '@mui/icons-material/List';
12
17
  // lazies
18
+ const SettingsDialog = lazy(() => import('../dialogs/SettingsDialog'));
19
+ const MetadataDialog = lazy(() => import('../dialogs/MetadataDialog'));
20
+ const TracklistDialog = lazy(() => import('../dialogs/TracklistDialog'));
13
21
  const ExportSVGDialog = lazy(() => import('../dialogs/ExportSVGDialog'));
14
22
  const FeatureFilterDialog = lazy(() => import('../dialogs/FeatureDialog'));
15
- const InterProScanDialog = lazy(() => import('../dialogs/InterProScanDialog'));
23
+ const DomainDialog = lazy(() => import('../dialogs/DomainDialog'));
16
24
  const HeaderMenuExtra = observer(function ({ model }) {
17
- const { featureMode, subFeatureRows, noAnnotations, interProScanJobIds } = model;
25
+ const { showDomains, subFeatureRows, noAnnotations } = model;
18
26
  return (React.createElement(CascadingMenuButton, { menuItems: [
27
+ {
28
+ label: 'Return to import form',
29
+ icon: FolderOpen,
30
+ onClick: () => model.reset(),
31
+ },
32
+ {
33
+ label: 'Settings',
34
+ onClick: () => model.queueDialog(onClose => [SettingsDialog, { model, onClose }]),
35
+ icon: Settings,
36
+ },
37
+ {
38
+ label: 'Metadata',
39
+ onClick: () => model.queueDialog(onClose => [MetadataDialog, { model, onClose }]),
40
+ icon: Assignment,
41
+ },
42
+ {
43
+ label: 'Extra tracks',
44
+ onClick: () => model.queueDialog(onClose => [TracklistDialog, { model, onClose }]),
45
+ icon: List,
46
+ },
19
47
  {
20
48
  label: 'Reset zoom to default',
21
49
  icon: RestartAlt,
@@ -36,9 +64,9 @@ const HeaderMenuExtra = observer(function ({ model }) {
36
64
  {
37
65
  label: 'Show domains' + (noAnnotations ? ' (no domains loaded)' : ''),
38
66
  icon: Visibility,
39
- checked: featureMode,
67
+ checked: showDomains,
40
68
  type: 'checkbox',
41
- onClick: () => model.setFeatureMode(!featureMode),
69
+ onClick: () => model.setShowDomains(!showDomains),
42
70
  },
43
71
  {
44
72
  label: 'Use sub-row layout',
@@ -58,30 +86,13 @@ const HeaderMenuExtra = observer(function ({ model }) {
58
86
  },
59
87
  },
60
88
  {
61
- label: 'Query InterProScan for domains...',
89
+ label: 'View domains',
62
90
  icon: Search,
63
- onClick: () => model.queueDialog(onClose => [
64
- InterProScanDialog,
65
- { onClose, model },
91
+ onClick: () => model.queueDialog(handleClose => [
92
+ DomainDialog,
93
+ { handleClose, model },
66
94
  ]),
67
95
  },
68
- {
69
- label: 'Load previous InterProScan results...',
70
- icon: Search,
71
- type: 'subMenu',
72
- subMenu: interProScanJobIds.length
73
- ? interProScanJobIds.map(({ jobId, date }) => ({
74
- label: new Date(date).toLocaleString('en-US') + ' - ' + jobId,
75
- onClick: () => model.loadInterProScanResults(jobId),
76
- }))
77
- : [
78
- {
79
- label: 'No previous searches',
80
- disabled: true,
81
- onClick: () => { },
82
- },
83
- ],
84
- },
85
96
  ],
86
97
  },
87
98
  ...(model.extraViewMenuItems?.() || []),
@@ -1 +1 @@
1
- {"version":3,"file":"HeaderMenuExtra.js","sourceRoot":"","sources":["../../../src/components/header/HeaderMenuExtra.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HeaderMenuExtra.js","sourceRoot":"","sources":["../../../src/components/header/HeaderMenuExtra.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { MsaViewModel } from '../../model';
3
- declare const HeaderStatusArea: ({ model }: {
3
+ declare const HeaderStatusArea: ({ model, }: {
4
4
  model: MsaViewModel;
5
5
  }) => React.JSX.Element | null;
6
6
  export default HeaderStatusArea;
@@ -2,17 +2,18 @@ import React from 'react';
2
2
  import { Typography } from '@mui/material';
3
3
  import { observer } from 'mobx-react';
4
4
  import { makeStyles } from 'tss-react/mui';
5
+ import { LoadingEllipses } from '@jbrowse/core/ui';
5
6
  const useStyles = makeStyles()({
6
7
  margin: {
7
8
  margin: 'auto',
8
9
  marginLeft: 10,
9
10
  },
10
11
  });
11
- const HeaderStatusArea = observer(({ model }) => {
12
+ const HeaderStatusArea = observer(function ({ model, }) {
12
13
  const { status } = model;
13
14
  const { classes } = useStyles();
14
15
  return status ? (React.createElement(Typography, { className: classes.margin },
15
- status.msg,
16
+ React.createElement(LoadingEllipses, { message: status.msg, component: "span" }),
16
17
  ' ',
17
18
  status.url ? (React.createElement("a", { href: status.url, target: "_blank", rel: "noreferrer" }, "(status)")) : null)) : null;
18
19
  });
@@ -1 +1 @@
1
- {"version":3,"file":"HeaderStatusArea.js","sourceRoot":"","sources":["../../../src/components/header/HeaderStatusArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAK1C,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,EAAE;QACN,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,EAAE;KACf;CACF,CAAC,CAAA;AAEF,MAAM,gBAAgB,GAAG,QAAQ,CAAC,CAAC,EAAE,KAAK,EAA2B,EAAE,EAAE;IACvE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;IACxB,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,OAAO,MAAM,CAAC,CAAC,CAAC,CACd,oBAAC,UAAU,IAAC,SAAS,EAAE,OAAO,CAAC,MAAM;QAClC,MAAM,CAAC,GAAG;QAAE,GAAG;QACf,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CACZ,2BAAG,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,YAAY,eAEjD,CACL,CAAC,CAAC,CAAC,IAAI,CACG,CACd,CAAC,CAAC,CAAC,IAAI,CAAA;AACV,CAAC,CAAC,CAAA;AAEF,eAAe,gBAAgB,CAAA"}
1
+ {"version":3,"file":"HeaderStatusArea.js","sourceRoot":"","sources":["../../../src/components/header/HeaderStatusArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAKlD,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,EAAE;QACN,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,EAAE;KACf;CACF,CAAC,CAAA;AAEF,MAAM,gBAAgB,GAAG,QAAQ,CAAC,UAAU,EAC1C,KAAK,GAGN;IACC,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;IACxB,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,OAAO,MAAM,CAAC,CAAC,CAAC,CACd,oBAAC,UAAU,IAAC,SAAS,EAAE,OAAO,CAAC,MAAM;QACnC,oBAAC,eAAe,IAAC,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,SAAS,EAAC,MAAM,GAAG;QAAC,GAAG;QAC5D,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CACZ,2BAAG,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,YAAY,eAEjD,CACL,CAAC,CAAC,CAAC,IAAI,CACG,CACd,CAAC,CAAC,CAAC,IAAI,CAAA;AACV,CAAC,CAAC,CAAA;AAEF,eAAe,gBAAgB,CAAA"}
@@ -19,7 +19,7 @@ const MSABlock = observer(function ({ model, offsetX, offsetY, }) {
19
19
  return autorun(() => {
20
20
  ctx.resetTransform();
21
21
  ctx.clearRect(0, 0, blockSize, blockSize);
22
- if (model.featureMode) {
22
+ if (model.showDomains) {
23
23
  renderBoxFeatureCanvasBlock({
24
24
  ctx,
25
25
  offsetX,
@@ -1,6 +1,6 @@
1
1
  export function renderBoxFeatureCanvasBlock({ model, offsetX, offsetY, ctx, highResScaleFactorOverride, blockSizeYOverride, }) {
2
- const { hierarchy, blockSize, rowHeight, highResScaleFactor, featureMode } = model;
3
- if (featureMode) {
2
+ const { hierarchy, blockSize, rowHeight, highResScaleFactor, showDomains } = model;
3
+ if (showDomains) {
4
4
  const k = highResScaleFactorOverride || highResScaleFactor;
5
5
  const by = blockSizeYOverride || blockSize;
6
6
  ctx.resetTransform();
@@ -1,6 +1,6 @@
1
1
  import { getClustalXColor, getPercentIdentityColor } from '../../colorSchemes';
2
2
  export function renderMSABlock({ model, offsetX, offsetY, contrastScheme, ctx, theme, highResScaleFactorOverride, blockSizeXOverride, blockSizeYOverride, }) {
3
- const { hierarchy, colWidth, blockSize, rowHeight, fontSize, highResScaleFactor, featureMode, } = model;
3
+ const { hierarchy, colWidth, blockSize, rowHeight, fontSize, highResScaleFactor, showDomains, } = model;
4
4
  const k = highResScaleFactorOverride || highResScaleFactor;
5
5
  const bx = blockSizeXOverride || blockSize;
6
6
  const by = blockSizeYOverride || blockSize;
@@ -15,7 +15,7 @@ export function renderMSABlock({ model, offsetX, offsetY, contrastScheme, ctx, t
15
15
  const xStart = Math.max(0, Math.floor(offsetX / colWidth));
16
16
  const xEnd = Math.max(0, Math.ceil((offsetX + bx) / colWidth));
17
17
  const visibleLeaves = leaves.slice(yStart, yEnd);
18
- if (!featureMode) {
18
+ if (!showDomains) {
19
19
  drawTiles({
20
20
  model,
21
21
  ctx,
@@ -61,7 +61,7 @@ function drawTiles({ model, offsetX, ctx, visibleLeaves, theme, xStart, xEnd, })
61
61
  }
62
62
  }
63
63
  function drawText({ model, offsetX, contrastScheme, ctx, visibleLeaves, xStart, xEnd, }) {
64
- const { bgColor, featureMode, colorScheme, columns, colWidth, rowHeight } = model;
64
+ const { bgColor, showDomains, colorScheme, columns, colWidth, rowHeight } = model;
65
65
  if (rowHeight >= 5 && colWidth > rowHeight / 2) {
66
66
  for (const node of visibleLeaves) {
67
67
  const { data: { name }, } = node;
@@ -73,7 +73,7 @@ function drawText({ model, offsetX, contrastScheme, ctx, visibleLeaves, xStart,
73
73
  const contrast = contrastScheme[letter.toUpperCase()] || 'black';
74
74
  const x = i * colWidth + offsetX - (offsetX % colWidth);
75
75
  // note: -rowHeight/4 matches +rowHeight/4 in tree
76
- ctx.fillStyle = featureMode
76
+ ctx.fillStyle = showDomains
77
77
  ? 'black'
78
78
  : bgColor
79
79
  ? contrast
@@ -1,5 +1,5 @@
1
1
  export declare function myfetch(url: string, args?: RequestInit): Promise<Response>;
2
2
  export declare function textfetch(url: string, args?: RequestInit): Promise<string>;
3
- export declare function jsonfetch(url: string, args?: RequestInit): Promise<any>;
3
+ export declare function jsonfetch<T>(url: string, args?: RequestInit): Promise<T>;
4
4
  export declare function arraybufferfetch(url: string): Promise<ArrayBuffer>;
5
5
  export declare function timeout(time: number): Promise<unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"fetchUtils.js","sourceRoot":"","sources":["../src/fetchUtils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAW,EAAE,IAAkB;IAC3D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAEvC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,QAAQ,QAAQ,CAAC,MAAM,aAAa,GAAG,IAAI,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,CACnE,CAAA;IACH,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,IAAkB;IAC7D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACzC,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,IAAkB;IAC7D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACzC,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAW;IAChD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAA;IAC9B,OAAO,GAAG,CAAC,WAAW,EAAE,CAAA;AAC1B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;AAClD,CAAC"}
1
+ {"version":3,"file":"fetchUtils.js","sourceRoot":"","sources":["../src/fetchUtils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAW,EAAE,IAAkB;IAC3D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAEvC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,QAAQ,QAAQ,CAAC,MAAM,aAAa,GAAG,IAAI,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,CACnE,CAAA;IACH,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,IAAkB;IAC7D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACzC,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAI,GAAW,EAAE,IAAkB;IAChE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACzC,OAAO,QAAQ,CAAC,IAAI,EAAO,CAAA;AAC7B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAW;IAChD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAA;IAC9B,OAAO,GAAG,CAAC,WAAW,EAAE,CAAA;AAC1B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;AAClD,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { MsaViewModel } from './model';
1
2
  export interface InterProScanResults {
2
3
  matches: {
3
4
  signature: {
@@ -20,7 +21,7 @@ export interface InterProScanResponse {
20
21
  results: InterProScanResults[];
21
22
  }
22
23
  export declare function loadInterProScanResults(jobId: string): Promise<InterProScanResponse>;
23
- export declare function launchInterProScan({ algorithm, seq, programs, onJobId, onProgress, }: {
24
+ export declare function launchInterProScan({ algorithm, seq, programs, onJobId, onProgress, model, }: {
24
25
  algorithm: string;
25
26
  seq: string;
26
27
  programs: string[];
@@ -28,5 +29,10 @@ export declare function launchInterProScan({ algorithm, seq, programs, onJobId,
28
29
  msg: string;
29
30
  url?: string;
30
31
  }) => void;
31
- onJobId: (arg: string) => void;
32
- }): Promise<InterProScanResponse>;
32
+ onJobId?: (arg: string) => void;
33
+ model: MsaViewModel;
34
+ }): Promise<void>;
35
+ export declare function loadInterProScanResultsWithStatus({ jobId, model, }: {
36
+ jobId: string;
37
+ model: MsaViewModel;
38
+ }): Promise<void>;