jbrowse-plugin-msaview 5.7.0 → 5.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/chunks/{AboutDialog-ZHJOECNZ.js → AboutDialog-N23GOSSA.js} +2 -2
  2. package/dist/chunks/{AboutDialog-ZHJOECNZ.js.map → AboutDialog-N23GOSSA.js.map} +1 -1
  3. package/dist/chunks/{AnnotationFileDialog-6LTHZI64.js → AnnotationFileDialog-FVQNLVEU.js} +2 -2
  4. package/dist/chunks/{AnnotationFileDialog-6LTHZI64.js.map → AnnotationFileDialog-FVQNLVEU.js.map} +1 -1
  5. package/dist/chunks/{ExportSVGDialog-VP5LUY7X.js → ExportSVGDialog-3SA6HFZB.js} +2 -2
  6. package/dist/chunks/{ExportSVGDialog-VP5LUY7X.js.map → ExportSVGDialog-3SA6HFZB.js.map} +1 -1
  7. package/dist/chunks/{FeatureDialog-YEOUA5YS.js → FeatureDialog-LSD37OFH.js} +1 -1
  8. package/dist/chunks/{FeatureDialog-YEOUA5YS.js.map → FeatureDialog-LSD37OFH.js.map} +1 -1
  9. package/dist/chunks/{GapThresholdDialog-3MOBT6NY.js → GapThresholdDialog-TD527ERL.js} +1 -1
  10. package/dist/chunks/{GapThresholdDialog-3MOBT6NY.js.map → GapThresholdDialog-TD527ERL.js.map} +1 -1
  11. package/dist/chunks/{GoToDialog-2L4KUO6R.js → GoToDialog-M5ICFHVT.js} +2 -2
  12. package/dist/chunks/{GoToDialog-2L4KUO6R.js.map → GoToDialog-M5ICFHVT.js.map} +1 -1
  13. package/dist/chunks/{HelpDialog-3KGMHUYG.js → HelpDialog-KB7HMUOR.js} +2 -2
  14. package/dist/chunks/{HelpDialog-3KGMHUYG.js.map → HelpDialog-KB7HMUOR.js.map} +1 -1
  15. package/dist/chunks/{MetadataDialog-LAVES424.js → MetadataDialog-CM2V36UG.js} +2 -2
  16. package/dist/chunks/{MetadataDialog-LAVES424.js.map → MetadataDialog-CM2V36UG.js.map} +1 -1
  17. package/dist/chunks/{MsaViewPanel-3R4SLB6M.js → MsaViewPanel-YVMUOMSJ.js} +2 -2
  18. package/dist/chunks/{TrackInfoDialog-RJDJ6NVE.js → TrackInfoDialog-KAER67NZ.js} +2 -2
  19. package/dist/chunks/{TrackInfoDialog-RJDJ6NVE.js.map → TrackInfoDialog-KAER67NZ.js.map} +1 -1
  20. package/dist/chunks/{TreeNodeInfoDialog-IWH7HU7R.js → TreeNodeInfoDialog-G4NOFRUB.js} +2 -2
  21. package/dist/chunks/{TreeNodeInfoDialog-IWH7HU7R.js.map → TreeNodeInfoDialog-G4NOFRUB.js.map} +1 -1
  22. package/dist/chunks/{chunk-DFVHVWTM.js → chunk-7ZQPYLN2.js} +1 -1
  23. package/dist/chunks/{chunk-DFVHVWTM.js.map → chunk-7ZQPYLN2.js.map} +1 -1
  24. package/dist/chunks/{chunk-UVY5VU6U.js → chunk-A6AI2XFP.js} +1 -1
  25. package/dist/chunks/{chunk-UVY5VU6U.js.map → chunk-A6AI2XFP.js.map} +1 -1
  26. package/dist/chunks/{chunk-BVAC5762.js → chunk-BICRHYID.js} +6 -6
  27. package/dist/chunks/{chunk-BVAC5762.js.map → chunk-BICRHYID.js.map} +4 -4
  28. package/dist/chunks/{chunk-CMRWVG7E.js → chunk-CH7JHGQF.js} +2 -2
  29. package/dist/chunks/{chunk-CMRWVG7E.js.map → chunk-CH7JHGQF.js.map} +1 -1
  30. package/dist/chunks/{chunk-EJCJ3TTF.js → chunk-DN4LFP5T.js} +1 -1
  31. package/dist/chunks/{chunk-EJCJ3TTF.js.map → chunk-DN4LFP5T.js.map} +1 -1
  32. package/dist/chunks/{chunk-OG5MRAUS.js → chunk-DXB6E5M4.js} +1 -1
  33. package/dist/chunks/{chunk-OG5MRAUS.js.map → chunk-DXB6E5M4.js.map} +1 -1
  34. package/dist/chunks/{chunk-35FE7DCA.js → chunk-J2OCCRDG.js} +2 -2
  35. package/dist/chunks/{chunk-35FE7DCA.js.map → chunk-J2OCCRDG.js.map} +1 -1
  36. package/dist/chunks/{chunk-HO3AGOGX.js → chunk-RFKEQQMZ.js} +1 -1
  37. package/dist/chunks/{chunk-HO3AGOGX.js.map → chunk-RFKEQQMZ.js.map} +1 -1
  38. package/dist/chunks/{chunk-NGMLSBBJ.js → chunk-SYZYE3AS.js} +1 -1
  39. package/dist/chunks/{chunk-NGMLSBBJ.js.map → chunk-SYZYE3AS.js.map} +1 -1
  40. package/dist/chunks/chunk-WNIBTLFE.js +2 -0
  41. package/dist/chunks/{chunk-TIHSPFDA.js.map → chunk-WNIBTLFE.js.map} +2 -2
  42. package/dist/chunks/{chunk-L4YUAU73.js → chunk-XZBGVA3Q.js} +1 -1
  43. package/dist/chunks/{chunk-L4YUAU73.js.map → chunk-XZBGVA3Q.js.map} +1 -1
  44. package/dist/chunks/{chunk-GEFXJOLW.js → chunk-YLUFN5D7.js} +2 -2
  45. package/dist/chunks/{chunk-GEFXJOLW.js.map → chunk-YLUFN5D7.js.map} +1 -1
  46. package/dist/chunks/{dist-LYE6BRGC.js → dist-OFRIFLPB.js} +2 -2
  47. package/dist/chunks/{dist-S26YAMK2.js → dist-QVW6GF25.js} +1 -1
  48. package/dist/chunks/{dist-S26YAMK2.js.map → dist-QVW6GF25.js.map} +1 -1
  49. package/dist/chunks/{model-IH7IQHGD.js → model-GRN6F5EO.js} +2 -2
  50. package/dist/chunks/{renderToSvg-HKGHZ7XL.js → renderToSvg-DDCUEDRY.js} +2 -2
  51. package/dist/jbrowse-plugin-msaview.esm.js +1 -1
  52. package/dist/jbrowse-plugin-msaview.esm.js.map +1 -1
  53. package/dist/version.d.ts +1 -1
  54. package/dist/version.js +1 -1
  55. package/package.json +2 -2
  56. package/src/version.ts +1 -1
  57. package/dist/chunks/chunk-TIHSPFDA.js +0 -2
  58. /package/dist/chunks/{MsaViewPanel-3R4SLB6M.js.map → MsaViewPanel-YVMUOMSJ.js.map} +0 -0
  59. /package/dist/chunks/{dist-LYE6BRGC.js.map → dist-OFRIFLPB.js.map} +0 -0
  60. /package/dist/chunks/{model-IH7IQHGD.js.map → model-GRN6F5EO.js.map} +0 -0
  61. /package/dist/chunks/{renderToSvg-HKGHZ7XL.js.map → renderToSvg-DDCUEDRY.js.map} +0 -0
@@ -1,2 +1,2 @@
1
- import{a as l}from"./chunk-TIHSPFDA.js";import{a as i}from"./chunk-DNFD5II2.js";import{a as m}from"./chunk-BX4Z274Q.js";import{a}from"./chunk-J6KYLXRD.js";import{b as r}from"./chunk-FY3BTKY4.js";var e=r(a(),1),o=r(i(),1),t=r(m(),1);function c({onClose:n}){return e.default.createElement(o.Dialog,{open:!0,title:"About",onClose:()=>{n()}},e.default.createElement(t.DialogContent,null,e.default.createElement(t.Typography,null,"MSAView ",l," (",e.default.createElement(t.Link,{target:"_blank",rel:"noopener",href:"https://github.com/gmod/react-msaview"},"Github"),")"),e.default.createElement("ul",null,e.default.createElement("li",null,e.default.createElement(t.Typography,null,"We use some color schemes from the"," ",e.default.createElement(t.Link,{target:"_blank",rel:"noopener",href:"https://github.com/biotite-dev/biotite"},"biotite")," ","project, and their license is reproduced"," ",e.default.createElement(t.Link,{target:"_blank",rel:"noopener",href:"https://github.com/biotite-dev/biotite/blob/master/LICENSE.rst"},"here"))),e.default.createElement("li",null,e.default.createElement(t.Typography,null,"See this page for some information on jalview colorings"," ",e.default.createElement(t.Link,{target:"_blank",rel:"noopener",href:"https://www.jalview.org/help/html/colourSchemes/"},"here"))),e.default.createElement("li",null,e.default.createElement(t.Typography,null,"See this page for some info on the clustal, cinema, maeditor, and lesk color schemes"," ",e.default.createElement(t.Link,{target:"_blank",rel:"noopener",href:"http://www.bioinformatics.nl/~berndb/aacolour.html"},"here"))),e.default.createElement("li",null,e.default.createElement(t.Typography,null,"See this paper about the flower color scheme"," ",e.default.createElement(t.Link,{target:"_blank",rel:"noopener",href:"https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7245768/"},"here"))))))}export{c as default};
2
- //# sourceMappingURL=AboutDialog-ZHJOECNZ.js.map
1
+ import{a as l}from"./chunk-WNIBTLFE.js";import{a as i}from"./chunk-DNFD5II2.js";import{a as m}from"./chunk-BX4Z274Q.js";import{a}from"./chunk-J6KYLXRD.js";import{b as r}from"./chunk-FY3BTKY4.js";var e=r(a(),1),o=r(i(),1),t=r(m(),1);function c({onClose:n}){return e.default.createElement(o.Dialog,{open:!0,title:"About",onClose:()=>{n()}},e.default.createElement(t.DialogContent,null,e.default.createElement(t.Typography,null,"MSAView ",l," (",e.default.createElement(t.Link,{target:"_blank",rel:"noopener",href:"https://github.com/gmod/react-msaview"},"Github"),")"),e.default.createElement("ul",null,e.default.createElement("li",null,e.default.createElement(t.Typography,null,"We use some color schemes from the"," ",e.default.createElement(t.Link,{target:"_blank",rel:"noopener",href:"https://github.com/biotite-dev/biotite"},"biotite")," ","project, and their license is reproduced"," ",e.default.createElement(t.Link,{target:"_blank",rel:"noopener",href:"https://github.com/biotite-dev/biotite/blob/master/LICENSE.rst"},"here"))),e.default.createElement("li",null,e.default.createElement(t.Typography,null,"See this page for some information on jalview colorings"," ",e.default.createElement(t.Link,{target:"_blank",rel:"noopener",href:"https://www.jalview.org/help/html/colourSchemes/"},"here"))),e.default.createElement("li",null,e.default.createElement(t.Typography,null,"See this page for some info on the clustal, cinema, maeditor, and lesk color schemes"," ",e.default.createElement(t.Link,{target:"_blank",rel:"noopener",href:"http://www.bioinformatics.nl/~berndb/aacolour.html"},"here"))),e.default.createElement("li",null,e.default.createElement(t.Typography,null,"See this paper about the flower color scheme"," ",e.default.createElement(t.Link,{target:"_blank",rel:"noopener",href:"https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7245768/"},"here"))))))}export{c as default};
2
+ //# sourceMappingURL=AboutDialog-N23GOSSA.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../node_modules/.pnpm/react-msaview@9.3.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/dialogs/AboutDialog.tsx"],
3
+ "sources": ["../../node_modules/.pnpm/react-msaview@9.4.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/dialogs/AboutDialog.tsx"],
4
4
  "sourcesContent": ["import React from 'react'\n\nimport { Dialog } from '@jbrowse/core/ui'\nimport { DialogContent, Link, Typography } from '@mui/material'\n\nimport { version } from '../../version.ts'\n\nexport default function AboutDialog({ onClose }: { onClose: () => void }) {\n return (\n <Dialog\n open\n title=\"About\"\n onClose={() => {\n onClose()\n }}\n >\n <DialogContent>\n <Typography>\n MSAView {version} (\n <Link\n target=\"_blank\"\n rel=\"noopener\"\n href=\"https://github.com/gmod/react-msaview\"\n >\n Github\n </Link>\n )\n </Typography>\n\n <ul>\n <li>\n <Typography>\n We use some color schemes from the{' '}\n <Link\n target=\"_blank\"\n rel=\"noopener\"\n href=\"https://github.com/biotite-dev/biotite\"\n >\n biotite\n </Link>{' '}\n project, and their license is reproduced{' '}\n <Link\n target=\"_blank\"\n rel=\"noopener\"\n href=\"https://github.com/biotite-dev/biotite/blob/master/LICENSE.rst\"\n >\n here\n </Link>\n </Typography>\n </li>\n <li>\n <Typography>\n See this page for some information on jalview colorings{' '}\n <Link\n target=\"_blank\"\n rel=\"noopener\"\n href=\"https://www.jalview.org/help/html/colourSchemes/\"\n >\n here\n </Link>\n </Typography>\n </li>\n <li>\n <Typography>\n See this page for some info on the clustal, cinema, maeditor, and\n lesk color schemes{' '}\n <Link\n target=\"_blank\"\n rel=\"noopener\"\n href=\"http://www.bioinformatics.nl/~berndb/aacolour.html\"\n >\n here\n </Link>\n </Typography>\n </li>\n <li>\n <Typography>\n See this paper about the flower color scheme{' '}\n <Link\n target=\"_blank\"\n rel=\"noopener\"\n href=\"https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7245768/\"\n >\n here\n </Link>\n </Typography>\n </li>\n </ul>\n </DialogContent>\n </Dialog>\n )\n}\n"],
5
5
  "mappings": "mMAAA,IAAAA,EAAkB,SAElBC,EAAuB,SACvBC,EAAgD,SAIlC,SAAPC,EAA6B,CAAE,QAAAC,CAAO,EAA2B,CACtE,OACE,EAAAC,QAAA,cAAC,SAAM,CACL,KAAI,GACJ,MAAM,QACN,QAAS,IAAK,CACZD,EAAO,CACT,CAAC,EAED,EAAAC,QAAA,cAAC,gBAAa,KACZ,EAAAA,QAAA,cAAC,aAAU,gBACAC,OACT,EAAAD,QAAA,cAAC,OAAI,CACH,OAAO,SACP,IAAI,WACJ,KAAK,uCAAuC,EAAA,QAAA,OAOhD,EAAAA,QAAA,cAAA,KAAA,KACE,EAAAA,QAAA,cAAA,KAAA,KACE,EAAAA,QAAA,cAAC,aAAU,0CAC0B,IACnC,EAAAA,QAAA,cAAC,OAAI,CACH,OAAO,SACP,IAAI,WACJ,KAAK,wCAAwC,EAAA,SAAA,EAGvC,+CACiC,IACzC,EAAAA,QAAA,cAAC,OAAI,CACH,OAAO,SACP,IAAI,WACJ,KAAK,gEAAgE,EAAA,MAAA,CAGhE,CACI,EAEf,EAAAA,QAAA,cAAA,KAAA,KACE,EAAAA,QAAA,cAAC,aAAU,+DAC+C,IACxD,EAAAA,QAAA,cAAC,OAAI,CACH,OAAO,SACP,IAAI,WACJ,KAAK,kDAAkD,EAAA,MAAA,CAGlD,CACI,EAEf,EAAAA,QAAA,cAAA,KAAA,KACE,EAAAA,QAAA,cAAC,aAAU,4FAEU,IACnB,EAAAA,QAAA,cAAC,OAAI,CACH,OAAO,SACP,IAAI,WACJ,KAAK,oDAAoD,EAAA,MAAA,CAGpD,CACI,EAEf,EAAAA,QAAA,cAAA,KAAA,KACE,EAAAA,QAAA,cAAC,aAAU,oDACoC,IAC7C,EAAAA,QAAA,cAAC,OAAI,CACH,OAAO,SACP,IAAI,WACJ,KAAK,uDAAuD,EAAA,MAAA,CAGvD,CACI,CACV,CACF,CACS,CAGtB",
6
6
  "names": ["import_react", "import_ui", "import_material", "AboutDialog", "onClose", "React", "version"]
@@ -1,2 +1,2 @@
1
- import{g as d}from"./chunk-L4YUAU73.js";import"./chunk-K55ZVN73.js";import"./chunk-73KAPCJ2.js";import{a as x}from"./chunk-CVLB4VFP.js";import{a as C}from"./chunk-DNFD5II2.js";import{a as w}from"./chunk-BX4Z274Q.js";import{a as y}from"./chunk-J6KYLXRD.js";import{b as i}from"./chunk-FY3BTKY4.js";var e=i(y(),1),c=i(C(),1),t=i(w(),1),E=i(x(),1);var T="https://gmod.org/JBrowseMSA/tutorials/protein_family";async function b(l){let o=await fetch(l);if(!o.ok)throw new Error(`HTTP ${o.status} fetching ${l} ${await o.text()}`);return o.text()}var k=(0,E.observer)(function({handleClose:l,model:o}){let[r,h]=(0,e.useState)(),[a,g]=(0,e.useState)("file"),[s,F]=(0,e.useState)(""),[m,u]=(0,e.useState)(),[v,f]=(0,e.useState)(!1);return e.default.createElement(c.Dialog,{maxWidth:"xl",title:"Open annotation file",onClose:()=>{l()},open:!0},e.default.createElement(t.DialogContent,null,m?e.default.createElement(c.ErrorMessage,{error:m}):null,e.default.createElement(t.Typography,null,"Open a GFF3 file of annotations, such as the one `react-msaview-cli interpro` writes, or the JSON an InterProScan run returns."," ",e.default.createElement(t.Link,{href:T,target:"_blank",rel:"noopener noreferrer"},"How to make one")),e.default.createElement("div",{style:{display:"flex",margin:30}},e.default.createElement(t.FormControl,{component:"fieldset"},e.default.createElement(t.RadioGroup,{value:a,onChange:n=>{g(n.target.value)}},e.default.createElement(t.FormControlLabel,{value:"url",control:e.default.createElement(t.Radio,null),label:"URL"}),e.default.createElement(t.FormControlLabel,{value:"file",control:e.default.createElement(t.Radio,null),label:"File"}))),a==="url"?e.default.createElement("div",null,e.default.createElement(t.Typography,null,"Open an annotation file from a URL"),e.default.createElement(t.TextField,{label:"URL",value:s,onChange:n=>{F(n.target.value)}})):e.default.createElement("div",{style:{paddingTop:20}},e.default.createElement(t.Typography,null,"Open an annotation file from your local drive"),e.default.createElement(t.Button,{variant:"outlined",component:"label"},"Choose File",e.default.createElement("input",{type:"file",hidden:!0,onChange:({target:n})=>{let p=n.files?.[0];p&&h(p)}})),r?e.default.createElement(t.Typography,null,r.name):null))),e.default.createElement(t.DialogActions,null,e.default.createElement(t.Button,{variant:"contained",color:"primary",disabled:v||(a==="file"?!r:!s.trim()),onClick:()=>{(async()=>{f(!0),u(void 0);try{let n=await(a==="file"&&r?r.text():b(s));o.setGFFFilehandle(void 0),o.setGFF(d(n)),o.setShowDomains(!0),o.setCellFill("domain"),l()}catch(n){console.error(n),u(n)}finally{f(!1)}})()}},"Open annotations"),e.default.createElement(t.Button,{variant:"contained",color:"secondary",onClick:()=>{l()}},"Cancel")))}),O=k;export{O as default};
2
- //# sourceMappingURL=AnnotationFileDialog-6LTHZI64.js.map
1
+ import{g as d}from"./chunk-XZBGVA3Q.js";import"./chunk-K55ZVN73.js";import"./chunk-73KAPCJ2.js";import{a as x}from"./chunk-CVLB4VFP.js";import{a as C}from"./chunk-DNFD5II2.js";import{a as w}from"./chunk-BX4Z274Q.js";import{a as y}from"./chunk-J6KYLXRD.js";import{b as i}from"./chunk-FY3BTKY4.js";var e=i(y(),1),c=i(C(),1),t=i(w(),1),E=i(x(),1);var T="https://gmod.org/JBrowseMSA/tutorials/protein_family";async function b(l){let o=await fetch(l);if(!o.ok)throw new Error(`HTTP ${o.status} fetching ${l} ${await o.text()}`);return o.text()}var k=(0,E.observer)(function({handleClose:l,model:o}){let[r,h]=(0,e.useState)(),[a,g]=(0,e.useState)("file"),[s,F]=(0,e.useState)(""),[m,u]=(0,e.useState)(),[v,f]=(0,e.useState)(!1);return e.default.createElement(c.Dialog,{maxWidth:"xl",title:"Open annotation file",onClose:()=>{l()},open:!0},e.default.createElement(t.DialogContent,null,m?e.default.createElement(c.ErrorMessage,{error:m}):null,e.default.createElement(t.Typography,null,"Open a GFF3 file of annotations, such as the one `react-msaview-cli interpro` writes, or the JSON an InterProScan run returns."," ",e.default.createElement(t.Link,{href:T,target:"_blank",rel:"noopener noreferrer"},"How to make one")),e.default.createElement("div",{style:{display:"flex",margin:30}},e.default.createElement(t.FormControl,{component:"fieldset"},e.default.createElement(t.RadioGroup,{value:a,onChange:n=>{g(n.target.value)}},e.default.createElement(t.FormControlLabel,{value:"url",control:e.default.createElement(t.Radio,null),label:"URL"}),e.default.createElement(t.FormControlLabel,{value:"file",control:e.default.createElement(t.Radio,null),label:"File"}))),a==="url"?e.default.createElement("div",null,e.default.createElement(t.Typography,null,"Open an annotation file from a URL"),e.default.createElement(t.TextField,{label:"URL",value:s,onChange:n=>{F(n.target.value)}})):e.default.createElement("div",{style:{paddingTop:20}},e.default.createElement(t.Typography,null,"Open an annotation file from your local drive"),e.default.createElement(t.Button,{variant:"outlined",component:"label"},"Choose File",e.default.createElement("input",{type:"file",hidden:!0,onChange:({target:n})=>{let p=n.files?.[0];p&&h(p)}})),r?e.default.createElement(t.Typography,null,r.name):null))),e.default.createElement(t.DialogActions,null,e.default.createElement(t.Button,{variant:"contained",color:"primary",disabled:v||(a==="file"?!r:!s.trim()),onClick:()=>{(async()=>{f(!0),u(void 0);try{let n=await(a==="file"&&r?r.text():b(s));o.setGFFFilehandle(void 0),o.setGFF(d(n)),o.setShowDomains(!0),o.setCellFill("domain"),l()}catch(n){console.error(n),u(n)}finally{f(!1)}})()}},"Open annotations"),e.default.createElement(t.Button,{variant:"contained",color:"secondary",onClick:()=>{l()}},"Cancel")))}),O=k;export{O as default};
2
+ //# sourceMappingURL=AnnotationFileDialog-FVQNLVEU.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../node_modules/.pnpm/react-msaview@9.3.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/dialogs/AnnotationFileDialog.tsx"],
3
+ "sources": ["../../node_modules/.pnpm/react-msaview@9.4.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/dialogs/AnnotationFileDialog.tsx"],
4
4
  "sourcesContent": ["import React, { useState } from 'react'\n\nimport { Dialog, ErrorMessage } from '@jbrowse/core/ui'\nimport {\n Button,\n DialogActions,\n DialogContent,\n FormControl,\n FormControlLabel,\n Link,\n Radio,\n RadioGroup,\n TextField,\n Typography,\n} from '@mui/material'\nimport { observer } from 'mobx-react'\nimport { annotationTextToGFF } from 'msa-parsers'\n\nimport type { MsaViewModel } from '../../model.ts'\n\nconst domainsTutorial = 'https://gmod.org/JBrowseMSA/tutorials/protein_family'\n\nasync function fetchText(url: string) {\n const response = await fetch(url)\n if (!response.ok) {\n throw new Error(\n `HTTP ${response.status} fetching ${url} ${await response.text()}`,\n )\n }\n return response.text()\n}\n\nconst AnnotationFileDialog = observer(function ({\n handleClose,\n model,\n}: {\n handleClose: () => void\n model: MsaViewModel\n}) {\n const [file, setFile] = useState<File>()\n const [choice, setChoice] = useState('file')\n const [url, setUrl] = useState('')\n const [error, setError] = useState<unknown>()\n const [loading, setLoading] = useState(false)\n\n // the error is shown here rather than notified: the standalone app and the\n // MSAViewer component have no jbrowse session to notify, and asking one for\n // its notify() threw out of the success path into the catch, which threw\n // again on the same missing session\n return (\n <Dialog\n maxWidth=\"xl\"\n title=\"Open annotation file\"\n onClose={() => {\n handleClose()\n }}\n open\n >\n <DialogContent>\n {error ? <ErrorMessage error={error} /> : null}\n <Typography>\n Open a GFF3 file of annotations, such as the one `react-msaview-cli\n interpro` writes, or the JSON an InterProScan run returns.{' '}\n <Link\n href={domainsTutorial}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n How to make one\n </Link>\n </Typography>\n\n <div style={{ display: 'flex', margin: 30 }}>\n <FormControl component=\"fieldset\">\n <RadioGroup\n value={choice}\n onChange={event => {\n setChoice(event.target.value)\n }}\n >\n <FormControlLabel value=\"url\" control={<Radio />} label=\"URL\" />\n <FormControlLabel value=\"file\" control={<Radio />} label=\"File\" />\n </RadioGroup>\n </FormControl>\n {choice === 'url' ? (\n <div>\n <Typography>Open an annotation file from a URL</Typography>\n <TextField\n label=\"URL\"\n value={url}\n onChange={event => {\n setUrl(event.target.value)\n }}\n />\n </div>\n ) : (\n <div style={{ paddingTop: 20 }}>\n <Typography>\n Open an annotation file from your local drive\n </Typography>\n <Button variant=\"outlined\" component=\"label\">\n Choose File\n <input\n type=\"file\"\n hidden\n onChange={({ target }) => {\n const chosen = target.files?.[0]\n if (chosen) {\n setFile(chosen)\n }\n }}\n />\n </Button>\n {file ? <Typography>{file.name}</Typography> : null}\n </div>\n )}\n </div>\n </DialogContent>\n <DialogActions>\n <Button\n variant=\"contained\"\n color=\"primary\"\n disabled={loading || (choice === 'file' ? !file : !url.trim())}\n onClick={() => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n ;(async () => {\n setLoading(true)\n setError(undefined)\n try {\n const text = await (choice === 'file' && file\n ? file.text()\n : fetchText(url))\n // through the model's own GFF text, so the annotations travel\n // in the snapshot and the shared URL like every other layer. A\n // filehandle left set would make the snapshot drop that text\n model.setGFFFilehandle(undefined)\n model.setGFF(annotationTextToGFF(text))\n model.setShowDomains(true)\n model.setCellFill('domain')\n handleClose()\n } catch (e) {\n console.error(e)\n setError(e)\n } finally {\n setLoading(false)\n }\n })()\n }}\n >\n Open annotations\n </Button>\n <Button\n variant=\"contained\"\n color=\"secondary\"\n onClick={() => {\n handleClose()\n }}\n >\n Cancel\n </Button>\n </DialogActions>\n </Dialog>\n )\n})\n\nexport default AnnotationFileDialog\n"],
5
5
  "mappings": "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",
6
6
  "names": ["import_react", "import_ui", "import_material", "import_mobx_react", "domainsTutorial", "fetchText", "url", "response", "AnnotationFileDialog", "handleClose", "model", "file", "setFile", "choice", "setChoice", "setUrl", "error", "setError", "loading", "setLoading", "React", "event", "target", "chosen", "text", "annotationTextToGFF", "e", "AnnotationFileDialog_default"]
@@ -1,2 +1,2 @@
1
- import{a as p}from"./chunk-HO3AGOGX.js";import{$ as y,_ as v}from"./chunk-NGMLSBBJ.js";import{a as L}from"./chunk-CVLB4VFP.js";import{a as D}from"./chunk-DNFD5II2.js";import{a as V}from"./chunk-BX4Z274Q.js";import{a as I}from"./chunk-J6KYLXRD.js";import{b as l}from"./chunk-FY3BTKY4.js";var t=l(I(),1),i=l(D(),1),e=l(V(),1),k=l(L(),1);function z(r){requestAnimationFrame(()=>{requestAnimationFrame(r)})}var P=(0,k.observer)(function({model:r,onClose:c}){let[s,C]=(0,t.useState)(!0),[n,T]=(0,t.useState)(!0),[o,b]=(0,t.useState)("viewport"),[E,w]=(0,t.useState)(),[m,h]=(0,t.useState)(!1),d=(0,e.useTheme)(),{turnedOnTracks:M,numColumns:S,leaves:A,showMsaLetters:F}=r,g=M.length>0,x=y(r,v(r,{theme:d,exportType:"entire",includeTracks:n})),f=F&&o==="entire"?S*A.length:0,G=f>1e5;return t.default.createElement(i.Dialog,{onClose:()=>{c()},open:!0,title:"Export SVG"},t.default.createElement(e.DialogContent,null,E?t.default.createElement(i.ErrorMessage,{error:E}):null,t.default.createElement(e.Typography,null,"Settings:"),t.default.createElement(p,{label:"Include minimap?",disabled:o==="entire",checked:s,onChange:()=>{C(!s)}}),g?t.default.createElement(p,{label:"Include tracks?",checked:n,onChange:()=>{T(!n)}}):null,t.default.createElement("div",null,t.default.createElement(e.FormControl,null,t.default.createElement(e.FormLabel,null,"Export type"),t.default.createElement(e.RadioGroup,{value:o,onChange:a=>{let{value:u}=a.target;(u==="entire"||u==="viewport")&&b(u)}},t.default.createElement(e.FormControlLabel,{value:"entire",control:t.default.createElement(e.Radio,null),label:"Entire MSA"}),t.default.createElement(e.FormControlLabel,{value:"viewport",control:t.default.createElement(e.Radio,null),label:"Current viewport only"})))),G?t.default.createElement(e.Alert,{severity:"warning",style:{marginTop:8}},"The entire MSA is ",Math.round(x.width),"x",Math.round(x.height)," pixels and draws"," ",Math.round(f/1e3),"k residue letters, each its own SVG element. Export may be slow or fail \u2014 zooming out far enough to hide the letters exports the same alignment as an image instead."):null),t.default.createElement(e.DialogActions,null,t.default.createElement(e.Button,{variant:"contained",color:"primary",disabled:m,startIcon:m?t.default.createElement(e.CircularProgress,{size:16,color:"inherit"}):null,onClick:()=>{h(!0),z(()=>{r.exportSVG({theme:d,includeMinimap:s,includeTracks:g&&n,exportType:o}).then(()=>{c()}).catch(a=>{console.error(a),w(a)}).finally(()=>{h(!1)})})}},m?"Exporting\u2026":"Export"),t.default.createElement(e.Button,{variant:"contained",color:"secondary",onClick:()=>{c()}},"Cancel")))}),B=P;export{B as default};
2
- //# sourceMappingURL=ExportSVGDialog-VP5LUY7X.js.map
1
+ import{a as p}from"./chunk-RFKEQQMZ.js";import{$ as y,_ as v}from"./chunk-SYZYE3AS.js";import{a as L}from"./chunk-CVLB4VFP.js";import{a as D}from"./chunk-DNFD5II2.js";import{a as V}from"./chunk-BX4Z274Q.js";import{a as I}from"./chunk-J6KYLXRD.js";import{b as l}from"./chunk-FY3BTKY4.js";var t=l(I(),1),i=l(D(),1),e=l(V(),1),k=l(L(),1);function z(r){requestAnimationFrame(()=>{requestAnimationFrame(r)})}var P=(0,k.observer)(function({model:r,onClose:c}){let[s,C]=(0,t.useState)(!0),[n,T]=(0,t.useState)(!0),[o,b]=(0,t.useState)("viewport"),[E,w]=(0,t.useState)(),[m,h]=(0,t.useState)(!1),d=(0,e.useTheme)(),{turnedOnTracks:M,numColumns:S,leaves:A,showMsaLetters:F}=r,g=M.length>0,x=y(r,v(r,{theme:d,exportType:"entire",includeTracks:n})),f=F&&o==="entire"?S*A.length:0,G=f>1e5;return t.default.createElement(i.Dialog,{onClose:()=>{c()},open:!0,title:"Export SVG"},t.default.createElement(e.DialogContent,null,E?t.default.createElement(i.ErrorMessage,{error:E}):null,t.default.createElement(e.Typography,null,"Settings:"),t.default.createElement(p,{label:"Include minimap?",disabled:o==="entire",checked:s,onChange:()=>{C(!s)}}),g?t.default.createElement(p,{label:"Include tracks?",checked:n,onChange:()=>{T(!n)}}):null,t.default.createElement("div",null,t.default.createElement(e.FormControl,null,t.default.createElement(e.FormLabel,null,"Export type"),t.default.createElement(e.RadioGroup,{value:o,onChange:a=>{let{value:u}=a.target;(u==="entire"||u==="viewport")&&b(u)}},t.default.createElement(e.FormControlLabel,{value:"entire",control:t.default.createElement(e.Radio,null),label:"Entire MSA"}),t.default.createElement(e.FormControlLabel,{value:"viewport",control:t.default.createElement(e.Radio,null),label:"Current viewport only"})))),G?t.default.createElement(e.Alert,{severity:"warning",style:{marginTop:8}},"The entire MSA is ",Math.round(x.width),"x",Math.round(x.height)," pixels and draws"," ",Math.round(f/1e3),"k residue letters, each its own SVG element. Export may be slow or fail \u2014 zooming out far enough to hide the letters exports the same alignment as an image instead."):null),t.default.createElement(e.DialogActions,null,t.default.createElement(e.Button,{variant:"contained",color:"primary",disabled:m,startIcon:m?t.default.createElement(e.CircularProgress,{size:16,color:"inherit"}):null,onClick:()=>{h(!0),z(()=>{r.exportSVG({theme:d,includeMinimap:s,includeTracks:g&&n,exportType:o}).then(()=>{c()}).catch(a=>{console.error(a),w(a)}).finally(()=>{h(!1)})})}},m?"Exporting\u2026":"Export"),t.default.createElement(e.Button,{variant:"contained",color:"secondary",onClick:()=>{c()}},"Cancel")))}),B=P;export{B as default};
2
+ //# sourceMappingURL=ExportSVGDialog-3SA6HFZB.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../node_modules/.pnpm/react-msaview@9.3.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/dialogs/ExportSVGDialog.tsx"],
3
+ "sources": ["../../node_modules/.pnpm/react-msaview@9.4.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/dialogs/ExportSVGDialog.tsx"],
4
4
  "sourcesContent": ["import React, { useState } from 'react'\n\nimport { Dialog, ErrorMessage } from '@jbrowse/core/ui'\nimport {\n Alert,\n Button,\n CircularProgress,\n DialogActions,\n DialogContent,\n FormControl,\n FormControlLabel,\n FormLabel,\n Radio,\n RadioGroup,\n Typography,\n useTheme,\n} from '@mui/material'\nimport { observer } from 'mobx-react'\n\nimport { exportPageSize, getLayout } from '../../exportLayout.ts'\nimport Checkbox2 from '../Checkbox2.tsx'\n\nimport type { MsaViewModel } from '../../model.ts'\n\n// Run after the browser has painted. A requestAnimationFrame callback still\n// runs *before* the frame it was queued for, so one alone hands the main thread\n// to the render with the spinner not yet on screen; the second fires once that\n// frame is out.\nfunction afterPaint(fn: () => void) {\n requestAnimationFrame(() => {\n requestAnimationFrame(fn)\n })\n}\n\nconst ExportSVGDialog = observer(function ({\n model,\n onClose,\n}: {\n model: MsaViewModel\n onClose: () => void\n}) {\n const [includeMinimap, setIncludeMinimap] = useState(true)\n const [includeTracks, setIncludeTracks] = useState(true)\n const [exportType, setExportType] = useState<'entire' | 'viewport'>(\n 'viewport',\n )\n const [error, setError] = useState<unknown>()\n const [exporting, setExporting] = useState(false)\n const theme = useTheme()\n const { turnedOnTracks, numColumns, leaves, showMsaLetters } = model\n const hasTracks = turnedOnTracks.length > 0\n const entire = exportPageSize(\n model,\n getLayout(model, { theme, exportType: 'entire', includeTracks }),\n )\n // the background is one raster image whatever its size, so what the figure\n // actually costs is its residue letters: each is an svg element of its own.\n // Past roughly this many the export runs to tens of seconds and can exhaust\n // the tab's memory outright\n const glyphs =\n showMsaLetters && exportType === 'entire' ? numColumns * leaves.length : 0\n const isLargeExport = glyphs > 100_000\n return (\n <Dialog\n onClose={() => {\n onClose()\n }}\n open\n title=\"Export SVG\"\n >\n <DialogContent>\n {error ? <ErrorMessage error={error} /> : null}\n <Typography>Settings:</Typography>\n <Checkbox2\n label=\"Include minimap?\"\n disabled={exportType === 'entire'}\n checked={includeMinimap}\n onChange={() => {\n setIncludeMinimap(!includeMinimap)\n }}\n />\n {hasTracks ? (\n <Checkbox2\n label=\"Include tracks?\"\n checked={includeTracks}\n onChange={() => {\n setIncludeTracks(!includeTracks)\n }}\n />\n ) : null}\n <div>\n <FormControl>\n <FormLabel>Export type</FormLabel>\n <RadioGroup\n value={exportType}\n onChange={event => {\n const { value } = event.target\n if (value === 'entire' || value === 'viewport') {\n setExportType(value)\n }\n }}\n >\n <FormControlLabel\n value=\"entire\"\n control={<Radio />}\n label=\"Entire MSA\"\n />\n <FormControlLabel\n value=\"viewport\"\n control={<Radio />}\n label=\"Current viewport only\"\n />\n </RadioGroup>\n </FormControl>\n </div>\n {isLargeExport ? (\n <Alert severity=\"warning\" style={{ marginTop: 8 }}>\n The entire MSA is {Math.round(entire.width)}x\n {Math.round(entire.height)} pixels and draws{' '}\n {Math.round(glyphs / 1000)}k residue letters, each its own SVG\n element. Export may be slow or fail \u2014 zooming out far enough to hide\n the letters exports the same alignment as an image instead.\n </Alert>\n ) : null}\n </DialogContent>\n <DialogActions>\n <Button\n variant=\"contained\"\n color=\"primary\"\n // rendering runs on the main thread and a large figure holds it for\n // seconds; without this the button stays live through the freeze and\n // a second click starts a second export\n disabled={exporting}\n startIcon={\n exporting ? <CircularProgress size={16} color=\"inherit\" /> : null\n }\n onClick={() => {\n setExporting(true)\n afterPaint(() => {\n void model\n .exportSVG({\n theme,\n includeMinimap,\n includeTracks: hasTracks && includeTracks,\n exportType,\n })\n .then(() => {\n onClose()\n })\n .catch((e: unknown) => {\n console.error(e)\n setError(e)\n })\n .finally(() => {\n setExporting(false)\n })\n })\n }}\n >\n {exporting ? 'Exporting\u2026' : 'Export'}\n </Button>\n <Button\n variant=\"contained\"\n color=\"secondary\"\n onClick={() => {\n onClose()\n }}\n >\n Cancel\n </Button>\n </DialogActions>\n </Dialog>\n )\n})\n\nexport default ExportSVGDialog\n"],
5
5
  "mappings": "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",
6
6
  "names": ["import_react", "import_ui", "import_material", "import_mobx_react", "afterPaint", "fn", "ExportSVGDialog", "model", "onClose", "includeMinimap", "setIncludeMinimap", "includeTracks", "setIncludeTracks", "exportType", "setExportType", "error", "setError", "exporting", "setExporting", "theme", "turnedOnTracks", "numColumns", "leaves", "showMsaLetters", "hasTracks", "entire", "exportPageSize", "getLayout", "glyphs", "isLargeExport", "React", "Checkbox2", "event", "value", "e", "ExportSVGDialog_default"]
@@ -1,2 +1,2 @@
1
1
  import{a as C}from"./chunk-CVLB4VFP.js";import{a as k}from"./chunk-DNFD5II2.js";import{a as F}from"./chunk-BX4Z274Q.js";import{a as T}from"./chunk-J6KYLXRD.js";import{b as c}from"./chunk-FY3BTKY4.js";var e=c(T(),1),p=c(k(),1),t=c(F(),1),s=c(C(),1);function w(n,a){return[n.accession,n.name,n.description].some(o=>o?.toLowerCase().includes(a))}var x=(0,s.observer)(function({model:n,accessions:a}){let o=m=>{for(let u of a)n.setFilter(u,m)};return e.default.createElement("div",null,e.default.createElement(t.Button,{onClick:()=>{o(!0)}},"Toggle all on"),e.default.createElement(t.Button,{onClick:()=>{o(!1)}},"Toggle all off"))}),v=(0,s.observer)(function({model:n}){let{annotationTypes:a,annotations:o,featureColors:m,fillPalette:u}=n,[E,h]=(0,e.useState)(""),g=E.trim().toLowerCase(),d=[...a.values()].filter(l=>!g||w(l,g)),i=new Map,f=new Map;for(let l of o){let{accession:r}=l;i.set(r,(i.get(r)??0)+1),f.has(r)||f.set(r,m.get(l)?.fill??u[r])}return e.default.createElement(e.default.Fragment,null,e.default.createElement(t.TextField,{label:"Filter",size:"small",value:E,onChange:l=>{h(l.target.value)}}),e.default.createElement(x,{model:n,accessions:d.map(l=>l.accession)}),e.default.createElement(t.Table,{size:"small"},e.default.createElement(t.TableHead,null,e.default.createElement(t.TableRow,null,e.default.createElement(t.TableCell,{padding:"checkbox"}),e.default.createElement(t.TableCell,null,"color"),e.default.createElement(t.TableCell,null,"accession"),e.default.createElement(t.TableCell,null,"name"),e.default.createElement(t.TableCell,null,"count"),e.default.createElement(t.TableCell,null,"description"))),e.default.createElement(t.TableBody,null,d.map(({accession:l,name:r,description:b})=>e.default.createElement(t.TableRow,{key:l},e.default.createElement(t.TableCell,{padding:"checkbox"},e.default.createElement(t.Checkbox,{checked:!n.featureOff(l),onChange:()=>{n.setFilter(l,n.featureOff(l))}})),e.default.createElement(t.TableCell,null,e.default.createElement("div",{style:{width:20,height:20,background:f.get(l)}})),e.default.createElement(t.TableCell,null,l),e.default.createElement(t.TableCell,null,r),e.default.createElement(t.TableCell,null,i.get(l)),e.default.createElement(t.TableCell,null,b))))))}),y=(0,s.observer)(function({onClose:n,model:a}){return e.default.createElement(p.Dialog,{onClose:()=>{n()},open:!0,title:"Feature filters",maxWidth:"xl"},e.default.createElement(t.DialogContent,null,e.default.createElement(v,{model:a})))}),D=y;export{D as default};
2
- //# sourceMappingURL=FeatureDialog-YEOUA5YS.js.map
2
+ //# sourceMappingURL=FeatureDialog-LSD37OFH.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../node_modules/.pnpm/react-msaview@9.3.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/dialogs/FeatureDialog.tsx"],
3
+ "sources": ["../../node_modules/.pnpm/react-msaview@9.4.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/dialogs/FeatureDialog.tsx"],
4
4
  "sourcesContent": ["import React, { useState } from 'react'\n\nimport { Dialog } from '@jbrowse/core/ui'\nimport {\n Button,\n Checkbox,\n DialogContent,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n TextField,\n} from '@mui/material'\nimport { observer } from 'mobx-react'\n\nimport type { MsaViewModel } from '../../model.ts'\nimport type { Annotation } from '../../types.ts'\n\nfunction matches(type: Annotation, query: string) {\n return [type.accession, type.name, type.description].some(field =>\n field?.toLowerCase().includes(query),\n )\n}\n\nconst Toggles = observer(function ({\n model,\n accessions,\n}: {\n model: MsaViewModel\n accessions: string[]\n}) {\n const setAll = (shown: boolean) => {\n for (const accession of accessions) {\n model.setFilter(accession, shown)\n }\n }\n return (\n <div>\n <Button\n onClick={() => {\n setAll(true)\n }}\n >\n Toggle all on\n </Button>\n\n <Button\n onClick={() => {\n setAll(false)\n }}\n >\n Toggle all off\n </Button>\n </div>\n )\n})\n\nconst FeatureTable = observer(function ({ model }: { model: MsaViewModel }) {\n const { annotationTypes, annotations, featureColors, fillPalette } = model\n const [query, setQuery] = useState('')\n const needle = query.trim().toLowerCase()\n const types = [...annotationTypes.values()].filter(\n type => !needle || matches(type, needle),\n )\n const counts = new Map<string, number>()\n const swatches = new Map<string, string>()\n for (const annot of annotations) {\n const { accession } = annot\n counts.set(accession, (counts.get(accession) ?? 0) + 1)\n if (!swatches.has(accession)) {\n swatches.set(\n accession,\n featureColors.get(annot)?.fill ?? fillPalette[accession]!,\n )\n }\n }\n return (\n <>\n <TextField\n label=\"Filter\"\n size=\"small\"\n value={query}\n onChange={event => {\n setQuery(event.target.value)\n }}\n />\n <Toggles model={model} accessions={types.map(t => t.accession)} />\n <Table size=\"small\">\n <TableHead>\n <TableRow>\n <TableCell padding=\"checkbox\" />\n <TableCell>color</TableCell>\n <TableCell>accession</TableCell>\n <TableCell>name</TableCell>\n <TableCell>count</TableCell>\n <TableCell>description</TableCell>\n </TableRow>\n </TableHead>\n <TableBody>\n {types.map(({ accession, name, description }) => (\n <TableRow key={accession}>\n <TableCell padding=\"checkbox\">\n <Checkbox\n checked={!model.featureOff(accession)}\n onChange={() => {\n model.setFilter(accession, model.featureOff(accession))\n }}\n />\n </TableCell>\n <TableCell>\n <div\n style={{\n width: 20,\n height: 20,\n background: swatches.get(accession),\n }}\n />\n </TableCell>\n <TableCell>{accession}</TableCell>\n <TableCell>{name}</TableCell>\n <TableCell>{counts.get(accession)}</TableCell>\n <TableCell>{description}</TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </>\n )\n})\n\nconst FeatureTypeDialog = observer(function ({\n onClose,\n model,\n}: {\n onClose: () => void\n model: MsaViewModel\n}) {\n return (\n <Dialog\n onClose={() => {\n onClose()\n }}\n open\n title=\"Feature filters\"\n maxWidth=\"xl\"\n >\n <DialogContent>\n <FeatureTable model={model} />\n </DialogContent>\n </Dialog>\n )\n})\n\nexport default FeatureTypeDialog\n"],
5
5
  "mappings": "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",
6
6
  "names": ["import_react", "import_ui", "import_material", "import_mobx_react", "matches", "type", "query", "field", "Toggles", "model", "accessions", "setAll", "shown", "accession", "React", "FeatureTable", "annotationTypes", "annotations", "featureColors", "fillPalette", "setQuery", "needle", "types", "counts", "swatches", "annot", "event", "t", "name", "description", "FeatureTypeDialog", "onClose", "FeatureDialog_default"]
@@ -1,2 +1,2 @@
1
1
  import{a as c}from"./chunk-CVLB4VFP.js";import{a as v}from"./chunk-DNFD5II2.js";import{a as d}from"./chunk-BX4Z274Q.js";import{a as m}from"./chunk-J6KYLXRD.js";import{b as t}from"./chunk-FY3BTKY4.js";var a=t(m(),1),h=t(v(),1),e=t(d(),1),y=t(c(),1);var r=t(m(),1),o=t(d(),1),u=t(c(),1),w=(0,u.observer)(function({model:n}){let[f,s]=(0,r.useState)(),p=f??n.allowedGappyness;return r.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8}},r.default.createElement(o.Typography,{style:{whiteSpace:"nowrap"}},"\u2265",p,"% gaps"),r.default.createElement(o.Slider,{"data-testid":"gappyness_slider",style:{width:200,marginInline:10},min:1,max:100,value:p,onChange:(E,l)=>{s(l)},onChangeCommitted:(E,l)=>{n.setAllowedGappyness(l),s(void 0)}}))}),g=w;var C=(0,y.observer)(function({model:i,onClose:n}){return a.default.createElement(h.Dialog,{open:!0,onClose:n,title:"Hide gappy columns"},a.default.createElement(e.DialogContent,null,a.default.createElement(e.Typography,{variant:"body2",sx:{mb:2}},"The viewer hides each column where at least this share of the rows has a gap."),a.default.createElement(g,{model:i})),a.default.createElement(e.DialogActions,null,a.default.createElement(e.Button,{variant:"contained",onClick:n},"Close")))}),x=C;export{x as default};
2
- //# sourceMappingURL=GapThresholdDialog-3MOBT6NY.js.map
2
+ //# sourceMappingURL=GapThresholdDialog-TD527ERL.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../node_modules/.pnpm/react-msaview@9.3.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/dialogs/GapThresholdDialog.tsx", "../../node_modules/.pnpm/react-msaview@9.3.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/dialogs/GappynessSlider.tsx"],
3
+ "sources": ["../../node_modules/.pnpm/react-msaview@9.4.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/dialogs/GapThresholdDialog.tsx", "../../node_modules/.pnpm/react-msaview@9.4.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/dialogs/GappynessSlider.tsx"],
4
4
  "sourcesContent": ["import React from 'react'\n\nimport { Dialog } from '@jbrowse/core/ui'\nimport { Button, DialogActions, DialogContent, Typography } from '@mui/material'\nimport { observer } from 'mobx-react'\n\nimport GappynessSlider from './GappynessSlider.tsx'\n\nimport type { MsaViewModel } from '../../model.ts'\n\nconst GapThresholdDialog = observer(function ({\n model,\n onClose,\n}: {\n model: MsaViewModel\n onClose: () => void\n}) {\n return (\n <Dialog open onClose={onClose} title=\"Hide gappy columns\">\n <DialogContent>\n <Typography variant=\"body2\" sx={{ mb: 2 }}>\n The viewer hides each column where at least this share of the rows has\n a gap.\n </Typography>\n <GappynessSlider model={model} />\n </DialogContent>\n <DialogActions>\n <Button variant=\"contained\" onClick={onClose}>\n Close\n </Button>\n </DialogActions>\n </Dialog>\n )\n})\n\nexport default GapThresholdDialog\n", "import React, { useState } from 'react'\n\nimport { Slider, Typography } from '@mui/material'\nimport { observer } from 'mobx-react'\n\nimport type { MsaViewModel } from '../../model.ts'\n\nconst GappynessSlider = observer(function GappynessSlider({\n model,\n}: {\n model: MsaViewModel\n}) {\n const [dragValue, setDragValue] = useState<number>()\n const value = dragValue ?? model.allowedGappyness\n return (\n <div style={{ display: 'flex', alignItems: 'center', gap: 8 }}>\n {/* the threshold is inclusive: blanks are columns whose gap count is at\n least ceil(allowedGappyness% of the rows), so at 100 it hides the\n columns that are entirely gaps rather than nothing */}\n <Typography style={{ whiteSpace: 'nowrap' }}>\n &ge;{value}% gaps\n </Typography>\n <Slider\n // In JBrowse other MUI Sliders share the page, so `.MuiSlider-thumb`\n // can match the wrong one. Tests and screenshot specs target\n // `[data-testid=\"gappyness_slider\"] input`, the hidden range input that\n // takes focus and arrow/PageUp/PageDown.\n //\n // Not `slotProps={{ input: ... }}`: that widens `onChange`'s `val` to\n // `number | number[]`, which setAllowedGappyness rejects.\n //\n // The thumb follows local state while dragging and the model takes the\n // value on release, since each write recomputes the gap columns over\n // the whole alignment.\n data-testid=\"gappyness_slider\"\n style={{ width: 200, marginInline: 10 }}\n min={1}\n max={100}\n value={value}\n onChange={(_, val) => {\n setDragValue(val)\n }}\n onChangeCommitted={(_, val) => {\n model.setAllowedGappyness(val)\n setDragValue(undefined)\n }}\n />\n </div>\n )\n})\n\nexport default GappynessSlider\n"],
5
5
  "mappings": "wMAAA,IAAAA,EAAkB,SAElBC,EAAuB,SACvBC,EAAiE,SACjEC,EAAyB,SCJzB,IAAAC,EAAgC,SAEhCC,EAAmC,SACnCC,EAAyB,SAInBC,KAAkB,YAAS,SAAyB,CACxD,MAAAC,CAAK,EAGN,CACC,GAAM,CAACC,EAAWC,CAAY,KAAI,YAAQ,EACpCC,EAAQF,GAAaD,EAAM,iBACjC,OACE,EAAAI,QAAA,cAAA,MAAA,CAAK,MAAO,CAAE,QAAS,OAAQ,WAAY,SAAU,IAAK,CAAC,CAAE,EAI3D,EAAAA,QAAA,cAAC,aAAU,CAAC,MAAO,CAAE,WAAY,QAAQ,CAAE,WACpCD,YAEP,EAAAC,QAAA,cAAC,wBAYa,mBACZ,MAAO,CAAE,MAAO,IAAK,aAAc,EAAE,EACrC,IAAK,EACL,IAAK,IACL,MAAOD,EACP,SAAU,CAACE,EAAGC,IAAO,CACnBJ,EAAaI,CAAG,CAClB,EACA,kBAAmB,CAACD,EAAGC,IAAO,CAC5BN,EAAM,oBAAoBM,CAAG,EAC7BJ,EAAa,MAAS,CACxB,CAAC,CAAA,CACD,CAGR,CAAC,EAEDK,EAAeR,EDzCf,IAAMS,KAAqB,YAAS,SAAU,CAC5C,MAAAC,EACA,QAAAC,CAAO,EAIR,CACC,OACE,EAAAC,QAAA,cAAC,SAAM,CAAC,KAAI,GAAC,QAASD,EAAS,MAAM,oBAAoB,EACvD,EAAAC,QAAA,cAAC,gBAAa,KACZ,EAAAA,QAAA,cAAC,aAAU,CAAC,QAAQ,QAAQ,GAAI,CAAE,GAAI,CAAC,CAAE,EAAA,+EAAA,EAIzC,EAAAA,QAAA,cAACC,EAAe,CAAC,MAAOH,CAAK,CAAA,CAAI,EAEnC,EAAAE,QAAA,cAAC,gBAAa,KACZ,EAAAA,QAAA,cAAC,SAAM,CAAC,QAAQ,YAAY,QAASD,CAAO,EAAA,OAAA,CAEnC,CACK,CAGtB,CAAC,EAEDG,EAAeL",
6
6
  "names": ["import_react", "import_ui", "import_material", "import_mobx_react", "import_react", "import_material", "import_mobx_react", "GappynessSlider", "model", "dragValue", "setDragValue", "value", "React", "_", "val", "GappynessSlider_default", "GapThresholdDialog", "model", "onClose", "React", "GappynessSlider_default", "GapThresholdDialog_default"]
@@ -1,2 +1,2 @@
1
- import{b as r}from"./chunk-UVY5VU6U.js";import"./chunk-CVLB4VFP.js";import{a}from"./chunk-DNFD5II2.js";import{a as u}from"./chunk-BX4Z274Q.js";import{a as i}from"./chunk-J6KYLXRD.js";import{b as t}from"./chunk-FY3BTKY4.js";var o=t(i(),1),l=t(a(),1),m=t(u(),1);function f({model:n,onClose:e}){return o.default.createElement(l.Dialog,{open:!0,onClose:e,title:"Go to row or column",maxWidth:"xs",fullWidth:!0},o.default.createElement(m.DialogContent,null,o.default.createElement(r,{model:n,onFound:e})))}export{f as default};
2
- //# sourceMappingURL=GoToDialog-2L4KUO6R.js.map
1
+ import{b as r}from"./chunk-A6AI2XFP.js";import"./chunk-CVLB4VFP.js";import{a}from"./chunk-DNFD5II2.js";import{a as u}from"./chunk-BX4Z274Q.js";import{a as i}from"./chunk-J6KYLXRD.js";import{b as t}from"./chunk-FY3BTKY4.js";var o=t(i(),1),l=t(a(),1),m=t(u(),1);function f({model:n,onClose:e}){return o.default.createElement(l.Dialog,{open:!0,onClose:e,title:"Go to row or column",maxWidth:"xs",fullWidth:!0},o.default.createElement(m.DialogContent,null,o.default.createElement(r,{model:n,onFound:e})))}export{f as default};
2
+ //# sourceMappingURL=GoToDialog-M5ICFHVT.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../node_modules/.pnpm/react-msaview@9.3.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/dialogs/GoToDialog.tsx"],
3
+ "sources": ["../../node_modules/.pnpm/react-msaview@9.4.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/dialogs/GoToDialog.tsx"],
4
4
  "sourcesContent": ["import React from 'react'\n\nimport { Dialog } from '@jbrowse/core/ui'\nimport { DialogContent } from '@mui/material'\n\nimport GoToBox from './GoToBox.tsx'\n\nimport type { MsaViewModel } from '../../model.ts'\n\nexport default function GoToDialog({\n model,\n onClose,\n}: {\n model: MsaViewModel\n onClose: () => void\n}) {\n return (\n <Dialog\n open\n onClose={onClose}\n title=\"Go to row or column\"\n maxWidth=\"xs\"\n fullWidth\n >\n <DialogContent>\n <GoToBox model={model} onFound={onClose} />\n </DialogContent>\n </Dialog>\n )\n}\n"],
5
5
  "mappings": "+NAAA,IAAAA,EAAkB,SAElBC,EAAuB,SACvBC,EAA8B,SAMhB,SAAPC,EAA4B,CACjC,MAAAC,EACA,QAAAC,CAAO,EAIR,CACC,OACE,EAAAC,QAAA,cAAC,SAAM,CACL,KAAI,GACJ,QAASD,EACT,MAAM,sBACN,SAAS,KACT,UAAS,EAAA,EAET,EAAAC,QAAA,cAAC,gBAAa,KACZ,EAAAA,QAAA,cAACC,EAAO,CAAC,MAAOH,EAAO,QAASC,CAAO,CAAA,CAAI,CAC7B,CAGtB",
6
6
  "names": ["import_react", "import_ui", "import_material", "GoToDialog", "model", "onClose", "React", "GoToBox_default"]
@@ -1,2 +1,2 @@
1
- import{a as i,b as m}from"./chunk-DFVHVWTM.js";import{a as n}from"./chunk-TIHSPFDA.js";import{a as E}from"./chunk-DNFD5II2.js";import{a as b}from"./chunk-BX4Z274Q.js";import{a as p}from"./chunk-J6KYLXRD.js";import{b as a}from"./chunk-FY3BTKY4.js";var e=a(p(),1),u=a(E(),1),t=a(b(),1);var f=(0,e.lazy)(()=>import("./AboutDialog-ZHJOECNZ.js"));function c({title:o,rows:l}){return e.default.createElement(e.default.Fragment,null,e.default.createElement(t.Typography,{variant:"subtitle2",sx:{mt:1}},o),e.default.createElement(t.Table,{size:"small","aria-label":o},e.default.createElement(t.TableBody,null,l.map(({label:r,action:s})=>e.default.createElement(t.TableRow,{key:r},e.default.createElement(t.TableCell,{sx:{whiteSpace:"nowrap",fontWeight:500}},r),e.default.createElement(t.TableCell,null,s))))))}function g({model:o,onClose:l}){return e.default.createElement(u.Dialog,{open:!0,title:"Mouse & keyboard",onClose:l},e.default.createElement(t.DialogContent,null,e.default.createElement(c,{title:"Mouse",rows:m}),e.default.createElement(c,{title:"Keyboard (click the alignment first)",rows:i})),e.default.createElement(t.DialogActions,null,e.default.createElement(t.Typography,{variant:"caption",sx:{mr:"auto",pl:1}},"MSAView ",n),e.default.createElement(t.Button,{onClick:()=>{o.queueDialog(r=>[f,{onClose:r}]),l()}},"About & credits"),e.default.createElement(t.Button,{variant:"contained",onClick:l},"Close")))}export{g as default};
2
- //# sourceMappingURL=HelpDialog-3KGMHUYG.js.map
1
+ import{a as i,b as m}from"./chunk-7ZQPYLN2.js";import{a as n}from"./chunk-WNIBTLFE.js";import{a as E}from"./chunk-DNFD5II2.js";import{a as b}from"./chunk-BX4Z274Q.js";import{a as p}from"./chunk-J6KYLXRD.js";import{b as a}from"./chunk-FY3BTKY4.js";var e=a(p(),1),u=a(E(),1),t=a(b(),1);var f=(0,e.lazy)(()=>import("./AboutDialog-N23GOSSA.js"));function c({title:o,rows:l}){return e.default.createElement(e.default.Fragment,null,e.default.createElement(t.Typography,{variant:"subtitle2",sx:{mt:1}},o),e.default.createElement(t.Table,{size:"small","aria-label":o},e.default.createElement(t.TableBody,null,l.map(({label:r,action:s})=>e.default.createElement(t.TableRow,{key:r},e.default.createElement(t.TableCell,{sx:{whiteSpace:"nowrap",fontWeight:500}},r),e.default.createElement(t.TableCell,null,s))))))}function g({model:o,onClose:l}){return e.default.createElement(u.Dialog,{open:!0,title:"Mouse & keyboard",onClose:l},e.default.createElement(t.DialogContent,null,e.default.createElement(c,{title:"Mouse",rows:m}),e.default.createElement(c,{title:"Keyboard (click the alignment first)",rows:i})),e.default.createElement(t.DialogActions,null,e.default.createElement(t.Typography,{variant:"caption",sx:{mr:"auto",pl:1}},"MSAView ",n),e.default.createElement(t.Button,{onClick:()=>{o.queueDialog(r=>[f,{onClose:r}]),l()}},"About & credits"),e.default.createElement(t.Button,{variant:"contained",onClick:l},"Close")))}export{g as default};
2
+ //# sourceMappingURL=HelpDialog-KB7HMUOR.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../node_modules/.pnpm/react-msaview@9.3.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/dialogs/HelpDialog.tsx"],
3
+ "sources": ["../../node_modules/.pnpm/react-msaview@9.4.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/dialogs/HelpDialog.tsx"],
4
4
  "sourcesContent": ["import React, { lazy } from 'react'\n\nimport { Dialog } from '@jbrowse/core/ui'\nimport {\n Button,\n DialogActions,\n DialogContent,\n Table,\n TableBody,\n TableCell,\n TableRow,\n Typography,\n} from '@mui/material'\n\nimport { version } from '../../version.ts'\nimport { keyboardControls, mouseControls } from '../controls.ts'\n\nimport type { MsaViewModel } from '../../model.ts'\nimport type { Control } from '../controls.ts'\n\nconst AboutDialog = lazy(() => import('./AboutDialog.tsx'))\n\nfunction ControlTable({ title, rows }: { title: string; rows: Control[] }) {\n return (\n <>\n <Typography variant=\"subtitle2\" sx={{ mt: 1 }}>\n {title}\n </Typography>\n <Table size=\"small\" aria-label={title}>\n <TableBody>\n {rows.map(({ label, action }) => (\n <TableRow key={label}>\n <TableCell sx={{ whiteSpace: 'nowrap', fontWeight: 500 }}>\n {label}\n </TableCell>\n <TableCell>{action}</TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </>\n )\n}\n\nexport default function HelpDialog({\n model,\n onClose,\n}: {\n model: MsaViewModel\n onClose: () => void\n}) {\n return (\n <Dialog open title=\"Mouse & keyboard\" onClose={onClose}>\n <DialogContent>\n <ControlTable title=\"Mouse\" rows={mouseControls} />\n <ControlTable\n title=\"Keyboard (click the alignment first)\"\n rows={keyboardControls}\n />\n </DialogContent>\n <DialogActions>\n <Typography variant=\"caption\" sx={{ mr: 'auto', pl: 1 }}>\n MSAView {version}\n </Typography>\n <Button\n onClick={() => {\n model.queueDialog(done => [AboutDialog, { onClose: done }])\n onClose()\n }}\n >\n About & credits\n </Button>\n <Button variant=\"contained\" onClick={onClose}>\n Close\n </Button>\n </DialogActions>\n </Dialog>\n )\n}\n"],
5
5
  "mappings": "uPAAA,IAAAA,EAA4B,SAE5BC,EAAuB,SACvBC,EASO,SAQP,IAAMC,KAAc,QAAK,IAAM,OAAO,2BAAmB,CAAC,EAE1D,SAASC,EAAa,CAAE,MAAAC,EAAO,KAAAC,CAAI,EAAsC,CACvE,OACE,EAAAC,QAAA,cAAA,EAAAA,QAAA,SAAA,KACE,EAAAA,QAAA,cAAC,aAAU,CAAC,QAAQ,YAAY,GAAI,CAAE,GAAI,CAAC,CAAE,EAC1CF,CAAK,EAER,EAAAE,QAAA,cAAC,QAAK,CAAC,KAAK,QAAO,aAAaF,CAAK,EACnC,EAAAE,QAAA,cAAC,YAAS,KACPD,EAAK,IAAI,CAAC,CAAE,MAAAE,EAAO,OAAAC,CAAM,IACxB,EAAAF,QAAA,cAAC,WAAQ,CAAC,IAAKC,CAAK,EAClB,EAAAD,QAAA,cAAC,YAAS,CAAC,GAAI,CAAE,WAAY,SAAU,WAAY,GAAG,CAAE,EACrDC,CAAK,EAER,EAAAD,QAAA,cAAC,YAAS,KAAEE,CAAM,CAAa,CAElC,CAAC,CACQ,CACN,CAGd,CAEc,SAAPC,EAA4B,CACjC,MAAAC,EACA,QAAAC,CAAO,EAIR,CACC,OACE,EAAAL,QAAA,cAAC,SAAM,CAAC,KAAI,GAAC,MAAM,mBAAmB,QAASK,CAAO,EACpD,EAAAL,QAAA,cAAC,gBAAa,KACZ,EAAAA,QAAA,cAACH,EAAY,CAAC,MAAM,QAAQ,KAAMS,CAAa,CAAA,EAC/C,EAAAN,QAAA,cAACH,EAAY,CACX,MAAM,uCACN,KAAMU,CAAgB,CAAA,CACtB,EAEJ,EAAAP,QAAA,cAAC,gBAAa,KACZ,EAAAA,QAAA,cAAC,aAAU,CAAC,QAAQ,UAAU,GAAI,CAAE,GAAI,OAAQ,GAAI,CAAC,CAAE,aAC5CQ,CAAO,EAElB,EAAAR,QAAA,cAAC,SAAM,CACL,QAAS,IAAK,CACZI,EAAM,YAAYK,GAAQ,CAACb,EAAa,CAAE,QAASa,CAAI,CAAE,CAAC,EAC1DJ,EAAO,CACT,CAAC,EAAA,iBAAA,EAIH,EAAAL,QAAA,cAAC,SAAM,CAAC,QAAQ,YAAY,QAASK,CAAO,EAAA,OAAA,CAEnC,CACK,CAGtB",
6
6
  "names": ["import_react", "import_ui", "import_material", "AboutDialog", "ControlTable", "title", "rows", "React", "label", "action", "HelpDialog", "model", "onClose", "mouseControls", "keyboardControls", "version", "done"]
@@ -1,2 +1,2 @@
1
- import{a as p,b as d,c as m,d as h}from"./chunk-35FE7DCA.js";import"./chunk-OG5MRAUS.js";import"./chunk-L4YUAU73.js";import"./chunk-HO3AGOGX.js";import"./chunk-K55ZVN73.js";import"./chunk-73KAPCJ2.js";import"./chunk-GEFXJOLW.js";import"./chunk-EJCJ3TTF.js";import{a as O}from"./chunk-CVLB4VFP.js";import{a as N}from"./chunk-DNFD5II2.js";import{a as L}from"./chunk-BX4Z274Q.js";import{a as R}from"./chunk-J6KYLXRD.js";import{b as a}from"./chunk-FY3BTKY4.js";var r=a(R(),1),T=a(N(),1),c=a(L(),1),M=a(O(),1);var E={General:"Alignment",Accessions:"Row accessions",Dbxref:"Row cross-references"},C={ID:"Identifier",AC:"Accession",DE:"Description",AU:"Authors",SE:"Source of seed",SS:"Source of structure",BM:"Build method",SM:"Search method",GA:"Gathering threshold",TC:"Trusted cutoff",NC:"Noise cutoff",TP:"Family type",CL:"Clan",MB:"Clan members",PI:"Previous identifiers",DR:"Database references",CC:"Comment",WK:"Wikipedia",NE:"Pfam family nested in this one",NL:"Nesting location",NH:"Tree (Newick)",SQ:"Number of sequences",RC:"Reference comment",RN:"Reference number",RM:"PubMed ID",RT:"Reference title",RA:"Reference authors",RL:"Reference journal",CB:"Curation: build",DC:"Database comment",DW:"Database web link",OS:"Organism",OC:"Organism classification",AM:"Alignment method",FT:"Feature",SO:"Sequence Ontology term"},y={RT:"Title",RA:"Authors",RL:"Journal",RM:"PubMed",RC:"Comment"},A=new Set(["NH"]);var D=a(R(),1);var g=["RM","RT","RA","RL","RC"];function x(e){return/^\d+$/.test(e)?D.default.createElement("a",{href:`https://pubmed.ncbi.nlm.nih.gov/${e}/`,target:"_blank",rel:"noreferrer"},e):e}function j(e){let o=e.RN;if(!Array.isArray(o)||o.length===0)return e;let s=g.filter(n=>e[n]!=null);if(!s.every(n=>{let i=e[n];return Array.isArray(i)&&i.length===o.length}))return e;let f=Object.fromEntries(Object.entries(e).filter(([n])=>n!=="RN"&&!g.includes(n))),t=Object.fromEntries(o.map((n,i)=>[n,Object.fromEntries(s.map(u=>{let b=e[u][i];return[y[u],u==="RM"?x(b):b]}))]));return{...f,References:t}}function S(e){return e&&typeof e=="object"?j(e):{}}var v=(0,M.observer)(function({model:e,onClose:o}){let s=Object.entries(e.header).filter(([,t])=>t!=null&&!d(t)),l=Object.fromEntries(s.filter(([,t])=>!p(t))),f=s.filter(([,t])=>p(t));return r.default.createElement(T.Dialog,{onClose:()=>{o()},open:!0,title:"Metadata",maxWidth:"xl"},r.default.createElement(c.DialogContent,null,s.length===0?r.default.createElement(c.Typography,null,"This alignment has no metadata."):r.default.createElement(r.default.Fragment,null,Object.keys(l).length>0?r.default.createElement(m,{record:l}):null,f.map(([t,n])=>r.default.createElement("div",{key:t},r.default.createElement(c.Typography,{variant:"h6"},E[t]??t),t==="General"?r.default.createElement(m,{record:S(n),labels:C,monospaceKeys:A}):r.default.createElement(m,{record:n})))),r.default.createElement(c.Typography,{variant:"h6"},"Sequences"),r.default.createElement(h,{str:e.rows})))}),I=v;export{I as default};
2
- //# sourceMappingURL=MetadataDialog-LAVES424.js.map
1
+ import{a as p,b as d,c as m,d as h}from"./chunk-J2OCCRDG.js";import"./chunk-DXB6E5M4.js";import"./chunk-XZBGVA3Q.js";import"./chunk-RFKEQQMZ.js";import"./chunk-K55ZVN73.js";import"./chunk-73KAPCJ2.js";import"./chunk-YLUFN5D7.js";import"./chunk-DN4LFP5T.js";import{a as O}from"./chunk-CVLB4VFP.js";import{a as N}from"./chunk-DNFD5II2.js";import{a as L}from"./chunk-BX4Z274Q.js";import{a as R}from"./chunk-J6KYLXRD.js";import{b as a}from"./chunk-FY3BTKY4.js";var r=a(R(),1),T=a(N(),1),c=a(L(),1),M=a(O(),1);var E={General:"Alignment",Accessions:"Row accessions",Dbxref:"Row cross-references"},C={ID:"Identifier",AC:"Accession",DE:"Description",AU:"Authors",SE:"Source of seed",SS:"Source of structure",BM:"Build method",SM:"Search method",GA:"Gathering threshold",TC:"Trusted cutoff",NC:"Noise cutoff",TP:"Family type",CL:"Clan",MB:"Clan members",PI:"Previous identifiers",DR:"Database references",CC:"Comment",WK:"Wikipedia",NE:"Pfam family nested in this one",NL:"Nesting location",NH:"Tree (Newick)",SQ:"Number of sequences",RC:"Reference comment",RN:"Reference number",RM:"PubMed ID",RT:"Reference title",RA:"Reference authors",RL:"Reference journal",CB:"Curation: build",DC:"Database comment",DW:"Database web link",OS:"Organism",OC:"Organism classification",AM:"Alignment method",FT:"Feature",SO:"Sequence Ontology term"},y={RT:"Title",RA:"Authors",RL:"Journal",RM:"PubMed",RC:"Comment"},A=new Set(["NH"]);var D=a(R(),1);var g=["RM","RT","RA","RL","RC"];function x(e){return/^\d+$/.test(e)?D.default.createElement("a",{href:`https://pubmed.ncbi.nlm.nih.gov/${e}/`,target:"_blank",rel:"noreferrer"},e):e}function j(e){let o=e.RN;if(!Array.isArray(o)||o.length===0)return e;let s=g.filter(n=>e[n]!=null);if(!s.every(n=>{let i=e[n];return Array.isArray(i)&&i.length===o.length}))return e;let f=Object.fromEntries(Object.entries(e).filter(([n])=>n!=="RN"&&!g.includes(n))),t=Object.fromEntries(o.map((n,i)=>[n,Object.fromEntries(s.map(u=>{let b=e[u][i];return[y[u],u==="RM"?x(b):b]}))]));return{...f,References:t}}function S(e){return e&&typeof e=="object"?j(e):{}}var v=(0,M.observer)(function({model:e,onClose:o}){let s=Object.entries(e.header).filter(([,t])=>t!=null&&!d(t)),l=Object.fromEntries(s.filter(([,t])=>!p(t))),f=s.filter(([,t])=>p(t));return r.default.createElement(T.Dialog,{onClose:()=>{o()},open:!0,title:"Metadata",maxWidth:"xl"},r.default.createElement(c.DialogContent,null,s.length===0?r.default.createElement(c.Typography,null,"This alignment has no metadata."):r.default.createElement(r.default.Fragment,null,Object.keys(l).length>0?r.default.createElement(m,{record:l}):null,f.map(([t,n])=>r.default.createElement("div",{key:t},r.default.createElement(c.Typography,{variant:"h6"},E[t]??t),t==="General"?r.default.createElement(m,{record:S(n),labels:C,monospaceKeys:A}):r.default.createElement(m,{record:n})))),r.default.createElement(c.Typography,{variant:"h6"},"Sequences"),r.default.createElement(h,{str:e.rows})))}),I=v;export{I as default};
2
+ //# sourceMappingURL=MetadataDialog-CM2V36UG.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../node_modules/.pnpm/react-msaview@9.3.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/dialogs/MetadataDialog.tsx", "../../node_modules/.pnpm/react-msaview@9.3.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/dialogs/metadataLabels.ts", "../../node_modules/.pnpm/react-msaview@9.3.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/dialogs/metadataRecord.tsx"],
3
+ "sources": ["../../node_modules/.pnpm/react-msaview@9.4.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/dialogs/MetadataDialog.tsx", "../../node_modules/.pnpm/react-msaview@9.4.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/dialogs/metadataLabels.ts", "../../node_modules/.pnpm/react-msaview@9.4.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/dialogs/metadataRecord.tsx"],
4
4
  "sourcesContent": ["import React from 'react'\n\nimport { Dialog } from '@jbrowse/core/ui'\nimport { DialogContent, Typography } from '@mui/material'\nimport { observer } from 'mobx-react'\n\nimport MetadataTable, { isEmpty, isRecord } from '../MetadataTable.tsx'\nimport SequenceTextArea from '../SequenceTextArea.tsx'\nimport { gfLabels, monospaceKeys, sectionLabels } from './metadataLabels.ts'\nimport { groupGeneral } from './metadataRecord.tsx'\n\nimport type { MsaViewModel } from '../../model.ts'\n\nconst MetadataDialog = observer(function ({\n model,\n onClose,\n}: {\n model: MsaViewModel\n onClose: () => void\n}) {\n const entries = Object.entries(model.header).filter(\n ([, value]) => value != null && !isEmpty(value),\n )\n const fields = Object.fromEntries(\n entries.filter(([, value]) => !isRecord(value)),\n )\n const sections = entries.filter(([, value]) => isRecord(value))\n return (\n <Dialog\n onClose={() => {\n onClose()\n }}\n open\n title=\"Metadata\"\n maxWidth=\"xl\"\n >\n <DialogContent>\n {entries.length === 0 ? (\n <Typography>This alignment has no metadata.</Typography>\n ) : (\n <>\n {Object.keys(fields).length > 0 ? (\n <MetadataTable record={fields} />\n ) : null}\n {sections.map(([section, value]) => (\n <div key={section}>\n <Typography variant=\"h6\">\n {sectionLabels[section] ?? section}\n </Typography>\n {section === 'General' ? (\n <MetadataTable\n record={groupGeneral(value)}\n labels={gfLabels}\n monospaceKeys={monospaceKeys}\n />\n ) : (\n <MetadataTable record={value as Record<string, unknown>} />\n )}\n </div>\n ))}\n </>\n )}\n <Typography variant=\"h6\">Sequences</Typography>\n <SequenceTextArea str={model.rows} />\n </DialogContent>\n </Dialog>\n )\n})\n\nexport default MetadataDialog\n", "export const sectionLabels: Record<string, string> = {\n General: 'Alignment',\n Accessions: 'Row accessions',\n Dbxref: 'Row cross-references',\n}\n\nexport const gfLabels: Record<string, string> = {\n ID: 'Identifier',\n AC: 'Accession',\n DE: 'Description',\n AU: 'Authors',\n SE: 'Source of seed',\n SS: 'Source of structure',\n BM: 'Build method',\n SM: 'Search method',\n GA: 'Gathering threshold',\n TC: 'Trusted cutoff',\n NC: 'Noise cutoff',\n TP: 'Family type',\n CL: 'Clan',\n MB: 'Clan members',\n PI: 'Previous identifiers',\n DR: 'Database references',\n CC: 'Comment',\n WK: 'Wikipedia',\n NE: 'Pfam family nested in this one',\n NL: 'Nesting location',\n NH: 'Tree (Newick)',\n SQ: 'Number of sequences',\n RC: 'Reference comment',\n RN: 'Reference number',\n RM: 'PubMed ID',\n RT: 'Reference title',\n RA: 'Reference authors',\n RL: 'Reference journal',\n CB: 'Curation: build',\n DC: 'Database comment',\n DW: 'Database web link',\n OS: 'Organism',\n OC: 'Organism classification',\n AM: 'Alignment method',\n FT: 'Feature',\n SO: 'Sequence Ontology term',\n}\n\nexport const referenceFieldLabels: Record<string, string> = {\n RT: 'Title',\n RA: 'Authors',\n RL: 'Journal',\n RM: 'PubMed',\n RC: 'Comment',\n}\n\nexport const monospaceKeys = new Set(['NH'])\n", "import React from 'react'\n\nimport { referenceFieldLabels } from './metadataLabels.ts'\n\nconst referenceTags = ['RM', 'RT', 'RA', 'RL', 'RC'] as const\n\nfunction pubmed(id: string) {\n return /^\\d+$/.test(id) ? (\n <a\n href={`https://pubmed.ncbi.nlm.nih.gov/${id}/`}\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n {id}\n </a>\n ) : (\n id\n )\n}\n\nfunction groupReferences(general: Record<string, unknown>) {\n const numbers = general.RN\n if (!Array.isArray(numbers) || numbers.length === 0) {\n return general\n }\n const present = referenceTags.filter(tag => general[tag] != null)\n const aligned = present.every(tag => {\n const values = general[tag]\n return Array.isArray(values) && values.length === numbers.length\n })\n if (!aligned) {\n return general\n }\n const rest = Object.fromEntries(\n Object.entries(general).filter(\n ([tag]) =>\n tag !== 'RN' && !(referenceTags as readonly string[]).includes(tag),\n ),\n )\n const references = Object.fromEntries(\n numbers.map((number: string, i) => [\n number,\n Object.fromEntries(\n present.map(tag => {\n const value = (general[tag] as string[])[i]!\n return [\n referenceFieldLabels[tag],\n tag === 'RM' ? pubmed(value) : value,\n ]\n }),\n ),\n ]),\n )\n return { ...rest, References: references }\n}\n\nexport function groupGeneral(general: unknown) {\n return general && typeof general === 'object'\n ? groupReferences(general as Record<string, unknown>)\n : {}\n}\n"],
5
5
  "mappings": "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",
6
6
  "names": ["import_react", "import_ui", "import_material", "import_mobx_react", "sectionLabels", "gfLabels", "referenceFieldLabels", "monospaceKeys", "import_react", "referenceTags", "pubmed", "id", "React", "groupReferences", "general", "numbers", "present", "tag", "values", "rest", "references", "number", "value", "referenceFieldLabels", "groupGeneral", "MetadataDialog", "model", "onClose", "entries", "value", "isEmpty", "fields", "isRecord", "sections", "React", "MetadataTable", "section", "sectionLabels", "groupGeneral", "gfLabels", "monospaceKeys", "SequenceTextArea", "MetadataDialog_default"]
@@ -1,2 +1,2 @@
1
- import{a as b,c as k,d as C}from"./chunk-KYQ2SO7B.js";import{d as M}from"./chunk-BVAC5762.js";import"./chunk-UVY5VU6U.js";import"./chunk-DFVHVWTM.js";import"./chunk-OG5MRAUS.js";import"./chunk-L4YUAU73.js";import"./chunk-FCWXYIFC.js";import{a as B}from"./chunk-M2AAIXY5.js";import"./chunk-6GRHBYHB.js";import"./chunk-QWXSEUZI.js";import"./chunk-K55ZVN73.js";import{a as L}from"./chunk-NSASZ5FM.js";import"./chunk-EKTRLQV7.js";import"./chunk-CMRWVG7E.js";import"./chunk-NGMLSBBJ.js";import"./chunk-73KAPCJ2.js";import"./chunk-EJCJ3TTF.js";import{a as y}from"./chunk-CVLB4VFP.js";import{a as P}from"./chunk-DNFD5II2.js";import{a as w}from"./chunk-BX4Z274Q.js";import{a as h}from"./chunk-J6KYLXRD.js";import{b as i}from"./chunk-FY3BTKY4.js";var e=i(h()),z=i(P()),E=i(y());var I=i(L());var o=i(h()),d=i(P()),n=i(w()),S=i(y()),x=i(L());var c=i(h()),J=i(w());function N({jobId:s}){let r=C(s)?k(s):b(s);return c.default.createElement(J.Typography,null,"Job ",s," (",c.default.createElement(B,{href:r},"see status"),")")}var v=N;var U=(0,x.makeStyles)()({margin:{padding:20},progressRow:{display:"flex",alignItems:"center",gap:12}}),D=(0,S.observer)(function({model:r}){let{progress:u,rid:a,error:m}=r,{classes:t}=U(),f=!r.launchCompleted,{blastParams:l,orthologParams:g}=r,p=l?`Running EBI ${l.searchProgram==="phmmer"?"phmmer":"BLAST"}`:g?g.source==="uniref"?"Building UniRef homolog alignment":"Building ortholog alignment":"Loading alignment";return o.default.createElement("div",{className:t.margin},m?o.default.createElement(o.default.Fragment,null,o.default.createElement(n.Typography,{variant:"h5"},f?`${p} failed`:"Alignment no longer available"),a?o.default.createElement(v,{jobId:a}):null,o.default.createElement(d.ErrorMessage,{error:m}),o.default.createElement("div",{className:t.progressRow},o.default.createElement(n.Button,{variant:"outlined",size:"small",onClick:()=>{r.retryLaunch()}},"Retry"),o.default.createElement(n.Button,{variant:"outlined",size:"small",onClick:()=>{r.cancelLaunch()}},"Dismiss"))):o.default.createElement(o.default.Fragment,null,o.default.createElement(d.LoadingEllipses,{message:p,variant:"h5"}),a?o.default.createElement(v,{jobId:a}):null,o.default.createElement("div",{className:t.progressRow},o.default.createElement(n.Typography,null,u||"Initializing"),o.default.createElement(n.Button,{variant:"outlined",size:"small",onClick:()=>{r.cancelLaunch()}},"Cancel"))))}),V=D;var $=(0,I.makeStyles)()({loadingContainer:{padding:20}}),q=(0,E.observer)(function({model:r}){let{classes:u}=$(),{blastParams:a,orthologParams:m,init:t,loadingStoredData:f}=r,l=a??m,g=!!l&&!r.launchCompleted,p=!!(r.data.msa||r.data.tree),T=!!l&&!!r.error&&!p,A=g||T||!!t&&!r.dataInitialized;return e.default.createElement("div",null,A?e.default.createElement(V,{model:r}):f&&!r.dataInitialized?e.default.createElement("div",{className:u.loadingContainer},e.default.createElement(z.LoadingEllipses,{message:"Loading MSA data",variant:"h6"})):e.default.createElement(M,{model:r}))}),X=q;export{X as default};
2
- //# sourceMappingURL=MsaViewPanel-3R4SLB6M.js.map
1
+ import{a as b,c as k,d as C}from"./chunk-KYQ2SO7B.js";import{d as M}from"./chunk-BICRHYID.js";import"./chunk-A6AI2XFP.js";import"./chunk-7ZQPYLN2.js";import"./chunk-DXB6E5M4.js";import"./chunk-XZBGVA3Q.js";import"./chunk-FCWXYIFC.js";import{a as B}from"./chunk-M2AAIXY5.js";import"./chunk-6GRHBYHB.js";import"./chunk-QWXSEUZI.js";import"./chunk-K55ZVN73.js";import{a as L}from"./chunk-NSASZ5FM.js";import"./chunk-EKTRLQV7.js";import"./chunk-CH7JHGQF.js";import"./chunk-SYZYE3AS.js";import"./chunk-73KAPCJ2.js";import"./chunk-DN4LFP5T.js";import{a as y}from"./chunk-CVLB4VFP.js";import{a as P}from"./chunk-DNFD5II2.js";import{a as w}from"./chunk-BX4Z274Q.js";import{a as h}from"./chunk-J6KYLXRD.js";import{b as i}from"./chunk-FY3BTKY4.js";var e=i(h()),z=i(P()),E=i(y());var I=i(L());var o=i(h()),d=i(P()),n=i(w()),S=i(y()),x=i(L());var c=i(h()),J=i(w());function N({jobId:s}){let r=C(s)?k(s):b(s);return c.default.createElement(J.Typography,null,"Job ",s," (",c.default.createElement(B,{href:r},"see status"),")")}var v=N;var U=(0,x.makeStyles)()({margin:{padding:20},progressRow:{display:"flex",alignItems:"center",gap:12}}),D=(0,S.observer)(function({model:r}){let{progress:u,rid:a,error:m}=r,{classes:t}=U(),f=!r.launchCompleted,{blastParams:l,orthologParams:g}=r,p=l?`Running EBI ${l.searchProgram==="phmmer"?"phmmer":"BLAST"}`:g?g.source==="uniref"?"Building UniRef homolog alignment":"Building ortholog alignment":"Loading alignment";return o.default.createElement("div",{className:t.margin},m?o.default.createElement(o.default.Fragment,null,o.default.createElement(n.Typography,{variant:"h5"},f?`${p} failed`:"Alignment no longer available"),a?o.default.createElement(v,{jobId:a}):null,o.default.createElement(d.ErrorMessage,{error:m}),o.default.createElement("div",{className:t.progressRow},o.default.createElement(n.Button,{variant:"outlined",size:"small",onClick:()=>{r.retryLaunch()}},"Retry"),o.default.createElement(n.Button,{variant:"outlined",size:"small",onClick:()=>{r.cancelLaunch()}},"Dismiss"))):o.default.createElement(o.default.Fragment,null,o.default.createElement(d.LoadingEllipses,{message:p,variant:"h5"}),a?o.default.createElement(v,{jobId:a}):null,o.default.createElement("div",{className:t.progressRow},o.default.createElement(n.Typography,null,u||"Initializing"),o.default.createElement(n.Button,{variant:"outlined",size:"small",onClick:()=>{r.cancelLaunch()}},"Cancel"))))}),V=D;var $=(0,I.makeStyles)()({loadingContainer:{padding:20}}),q=(0,E.observer)(function({model:r}){let{classes:u}=$(),{blastParams:a,orthologParams:m,init:t,loadingStoredData:f}=r,l=a??m,g=!!l&&!r.launchCompleted,p=!!(r.data.msa||r.data.tree),T=!!l&&!!r.error&&!p,A=g||T||!!t&&!r.dataInitialized;return e.default.createElement("div",null,A?e.default.createElement(V,{model:r}):f&&!r.dataInitialized?e.default.createElement("div",{className:u.loadingContainer},e.default.createElement(z.LoadingEllipses,{message:"Loading MSA data",variant:"h6"})):e.default.createElement(M,{model:r}))}),X=q;export{X as default};
2
+ //# sourceMappingURL=MsaViewPanel-YVMUOMSJ.js.map
@@ -1,2 +1,2 @@
1
- import{a as l}from"./chunk-GEFXJOLW.js";import{a as k}from"./chunk-EJCJ3TTF.js";import{a as p}from"./chunk-CVLB4VFP.js";import{a as f}from"./chunk-DNFD5II2.js";import{a as g}from"./chunk-BX4Z274Q.js";import{a as d}from"./chunk-J6KYLXRD.js";import{b as o}from"./chunk-FY3BTKY4.js";var e=o(d(),1),c=o(f(),1),i=o(k(),1),t=o(g(),1),m=o(p(),1);var E=(0,i.makeStyles)()(a=>({textArea:{padding:a.spacing(2),overflow:"auto",background:a.palette.action.selected,wordBreak:"break-word"}})),x=(0,m.observer)(function({model:a,onClose:n}){let{name:s,data:r}=a,{classes:u}=E();return e.default.createElement(c.Dialog,{open:!0,onClose:n,fullWidth:!0,maxWidth:"lg",title:`Track info - ${s}`},e.default.createElement(t.DialogContent,null,r===void 0?e.default.createElement(t.Typography,null,"This track has no text data."):e.default.createElement(e.default.Fragment,null,e.default.createElement(l,{text:r}),e.default.createElement("pre",{className:u.textArea},r))),e.default.createElement(t.DialogActions,null,e.default.createElement(t.Button,{variant:"contained",onClick:n,color:"secondary"},"Close")))}),h=x;export{h as default};
2
- //# sourceMappingURL=TrackInfoDialog-RJDJ6NVE.js.map
1
+ import{a as l}from"./chunk-YLUFN5D7.js";import{a as k}from"./chunk-DN4LFP5T.js";import{a as p}from"./chunk-CVLB4VFP.js";import{a as f}from"./chunk-DNFD5II2.js";import{a as g}from"./chunk-BX4Z274Q.js";import{a as d}from"./chunk-J6KYLXRD.js";import{b as o}from"./chunk-FY3BTKY4.js";var e=o(d(),1),c=o(f(),1),i=o(k(),1),t=o(g(),1),m=o(p(),1);var E=(0,i.makeStyles)()(a=>({textArea:{padding:a.spacing(2),overflow:"auto",background:a.palette.action.selected,wordBreak:"break-word"}})),x=(0,m.observer)(function({model:a,onClose:n}){let{name:s,data:r}=a,{classes:u}=E();return e.default.createElement(c.Dialog,{open:!0,onClose:n,fullWidth:!0,maxWidth:"lg",title:`Track info - ${s}`},e.default.createElement(t.DialogContent,null,r===void 0?e.default.createElement(t.Typography,null,"This track has no text data."):e.default.createElement(e.default.Fragment,null,e.default.createElement(l,{text:r}),e.default.createElement("pre",{className:u.textArea},r))),e.default.createElement(t.DialogActions,null,e.default.createElement(t.Button,{variant:"contained",onClick:n,color:"secondary"},"Close")))}),h=x;export{h as default};
2
+ //# sourceMappingURL=TrackInfoDialog-KAER67NZ.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../node_modules/.pnpm/react-msaview@9.3.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/dialogs/TrackInfoDialog.tsx"],
3
+ "sources": ["../../node_modules/.pnpm/react-msaview@9.4.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/dialogs/TrackInfoDialog.tsx"],
4
4
  "sourcesContent": ["import React from 'react'\n\nimport { Dialog } from '@jbrowse/core/ui'\nimport { makeStyles } from '@jbrowse/core/util/tss-react'\nimport { Button, DialogActions, DialogContent, Typography } from '@mui/material'\nimport { observer } from 'mobx-react'\n\nimport CopyButton from '../CopyButton.tsx'\n\nimport type { BasicTrack } from '../../types.ts'\n\nconst useStyles = makeStyles()(theme => ({\n textArea: {\n padding: theme.spacing(2),\n overflow: 'auto',\n background: theme.palette.action.selected,\n wordBreak: 'break-word',\n },\n}))\n\nconst TrackInfoDialog = observer(function ({\n model,\n onClose,\n}: {\n model: BasicTrack['model']\n onClose: () => void\n}) {\n const { name, data } = model\n const { classes } = useStyles()\n return (\n <Dialog\n open\n onClose={onClose}\n fullWidth\n maxWidth=\"lg\"\n title={`Track info - ${name}`}\n >\n <DialogContent>\n {/* the bar tracks (conservation) are computed per column and carry no\n text of their own, so there is nothing to show or copy for them */}\n {data === undefined ? (\n <Typography>This track has no text data.</Typography>\n ) : (\n <>\n <CopyButton text={data} />\n <pre className={classes.textArea}>{data}</pre>\n </>\n )}\n </DialogContent>\n <DialogActions>\n <Button variant=\"contained\" onClick={onClose} color=\"secondary\">\n Close\n </Button>\n </DialogActions>\n </Dialog>\n )\n})\n\nexport default TrackInfoDialog\n"],
5
5
  "mappings": "wRAAA,IAAAA,EAAkB,SAElBC,EAAuB,SACvBC,EAA2B,SAC3BC,EAAiE,SACjEC,EAAyB,SAMzB,IAAMC,KAAY,cAAU,EAAGC,IAAU,CACvC,SAAU,CACR,QAASA,EAAM,QAAQ,CAAC,EACxB,SAAU,OACV,WAAYA,EAAM,QAAQ,OAAO,SACjC,UAAW,eAEb,EAEIC,KAAkB,YAAS,SAAU,CACzC,MAAAC,EACA,QAAAC,CAAO,EAIR,CACC,GAAM,CAAE,KAAAC,EAAM,KAAAC,CAAI,EAAKH,EACjB,CAAE,QAAAI,CAAO,EAAKP,EAAS,EAC7B,OACE,EAAAQ,QAAA,cAAC,SAAM,CACL,KAAI,GACJ,QAASJ,EACT,UAAS,GACT,SAAS,KACT,MAAO,gBAAgBC,CAAI,EAAE,EAE7B,EAAAG,QAAA,cAAC,gBAAa,KAGXF,IAAS,OACR,EAAAE,QAAA,cAAC,aAAU,KAAA,8BAAA,EAEX,EAAAA,QAAA,cAAA,EAAAA,QAAA,SAAA,KACE,EAAAA,QAAA,cAACC,EAAU,CAAC,KAAMH,CAAI,CAAA,EACtB,EAAAE,QAAA,cAAA,MAAA,CAAK,UAAWD,EAAQ,QAAQ,EAAGD,CAAI,CAAO,CAEjD,EAEH,EAAAE,QAAA,cAAC,gBAAa,KACZ,EAAAA,QAAA,cAAC,SAAM,CAAC,QAAQ,YAAY,QAASJ,EAAS,MAAM,WAAW,EAAA,OAAA,CAEtD,CACK,CAGtB,CAAC,EAEDM,EAAeR",
6
6
  "names": ["import_react", "import_ui", "import_tss_react", "import_material", "import_mobx_react", "useStyles", "theme", "TrackInfoDialog", "model", "onClose", "name", "data", "classes", "React", "CopyButton", "TrackInfoDialog_default"]
@@ -1,2 +1,2 @@
1
- import{c as n,d as c}from"./chunk-35FE7DCA.js";import"./chunk-OG5MRAUS.js";import"./chunk-L4YUAU73.js";import"./chunk-HO3AGOGX.js";import"./chunk-K55ZVN73.js";import"./chunk-73KAPCJ2.js";import"./chunk-GEFXJOLW.js";import"./chunk-EJCJ3TTF.js";import{a as g}from"./chunk-CVLB4VFP.js";import{a as h}from"./chunk-DNFD5II2.js";import{a as x}from"./chunk-BX4Z274Q.js";import{a as d}from"./chunk-J6KYLXRD.js";import{b as r}from"./chunk-FY3BTKY4.js";var e=r(d(),1),i=r(h(),1),t=r(x(),1),f=r(g(),1);var T=(0,f.observer)(function({info:u,model:o,nodeName:a,onClose:E}){let{rows:p}=o,l=o.rowDataOf(a),m=p.find(s=>s[0]===a);return e.default.createElement(i.Dialog,{onClose:()=>{E()},open:!0,title:"Tree node info",maxWidth:"xl"},e.default.createElement(t.DialogContent,null,e.default.createElement(t.Typography,{variant:"h6"},"Attributes"),e.default.createElement(n,{record:{nodeName:a,...u}}),e.default.createElement(t.Typography,{variant:"h6"},"Sequence"),m?e.default.createElement(c,{str:[m]}):e.default.createElement(t.Typography,null,"Sequence not found"),l?e.default.createElement(e.default.Fragment,null,e.default.createElement(t.Typography,{variant:"h6"},"Extra metadata"),e.default.createElement(n,{record:l})):null))}),b=T;export{b as default};
2
- //# sourceMappingURL=TreeNodeInfoDialog-IWH7HU7R.js.map
1
+ import{c as n,d as c}from"./chunk-J2OCCRDG.js";import"./chunk-DXB6E5M4.js";import"./chunk-XZBGVA3Q.js";import"./chunk-RFKEQQMZ.js";import"./chunk-K55ZVN73.js";import"./chunk-73KAPCJ2.js";import"./chunk-YLUFN5D7.js";import"./chunk-DN4LFP5T.js";import{a as g}from"./chunk-CVLB4VFP.js";import{a as h}from"./chunk-DNFD5II2.js";import{a as x}from"./chunk-BX4Z274Q.js";import{a as d}from"./chunk-J6KYLXRD.js";import{b as r}from"./chunk-FY3BTKY4.js";var e=r(d(),1),i=r(h(),1),t=r(x(),1),f=r(g(),1);var T=(0,f.observer)(function({info:u,model:o,nodeName:a,onClose:E}){let{rows:p}=o,l=o.rowDataOf(a),m=p.find(s=>s[0]===a);return e.default.createElement(i.Dialog,{onClose:()=>{E()},open:!0,title:"Tree node info",maxWidth:"xl"},e.default.createElement(t.DialogContent,null,e.default.createElement(t.Typography,{variant:"h6"},"Attributes"),e.default.createElement(n,{record:{nodeName:a,...u}}),e.default.createElement(t.Typography,{variant:"h6"},"Sequence"),m?e.default.createElement(c,{str:[m]}):e.default.createElement(t.Typography,null,"Sequence not found"),l?e.default.createElement(e.default.Fragment,null,e.default.createElement(t.Typography,{variant:"h6"},"Extra metadata"),e.default.createElement(n,{record:l})):null))}),b=T;export{b as default};
2
+ //# sourceMappingURL=TreeNodeInfoDialog-G4NOFRUB.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../node_modules/.pnpm/react-msaview@9.3.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/tree/dialogs/TreeNodeInfoDialog.tsx"],
3
+ "sources": ["../../node_modules/.pnpm/react-msaview@9.4.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/tree/dialogs/TreeNodeInfoDialog.tsx"],
4
4
  "sourcesContent": ["import React from 'react'\n\nimport { Dialog } from '@jbrowse/core/ui'\nimport { DialogContent, Typography } from '@mui/material'\nimport { observer } from 'mobx-react'\n\nimport MetadataTable from '../../MetadataTable.tsx'\nimport SequenceTextArea from '../../SequenceTextArea.tsx'\n\nimport type { MsaViewModel } from '../../../model.ts'\n\nconst TreeNodeInfoDialog = observer(function ({\n info,\n model,\n nodeName,\n onClose,\n}: {\n info: Record<string, unknown>\n model: MsaViewModel\n nodeName: string\n onClose: () => void\n}) {\n const { rows } = model\n const metadata = model.rowDataOf(nodeName)\n const res = rows.find(f => f[0] === nodeName)\n return (\n <Dialog\n onClose={() => {\n onClose()\n }}\n open\n title=\"Tree node info\"\n maxWidth=\"xl\"\n >\n <DialogContent>\n <Typography variant=\"h6\">Attributes</Typography>\n <MetadataTable record={{ nodeName, ...info }} />\n <Typography variant=\"h6\">Sequence</Typography>\n {res ? (\n <SequenceTextArea str={[res]} />\n ) : (\n <Typography>Sequence not found</Typography>\n )}\n {metadata ? (\n <>\n <Typography variant=\"h6\">Extra metadata</Typography>\n <MetadataTable record={metadata} />\n </>\n ) : null}\n </DialogContent>\n </Dialog>\n )\n})\n\nexport default TreeNodeInfoDialog\n"],
5
5
  "mappings": "2bAAA,IAAAA,EAAkB,SAElBC,EAAuB,SACvBC,EAA0C,SAC1CC,EAAyB,SAOzB,IAAMC,KAAqB,YAAS,SAAU,CAC5C,KAAAC,EACA,MAAAC,EACA,SAAAC,EACA,QAAAC,CAAO,EAMR,CACC,GAAM,CAAE,KAAAC,CAAI,EAAKH,EACXI,EAAWJ,EAAM,UAAUC,CAAQ,EACnCI,EAAMF,EAAK,KAAKG,GAAKA,EAAE,CAAC,IAAML,CAAQ,EAC5C,OACE,EAAAM,QAAA,cAAC,SAAM,CACL,QAAS,IAAK,CACZL,EAAO,CACT,EACA,KAAI,GACJ,MAAM,iBACN,SAAS,IAAI,EAEb,EAAAK,QAAA,cAAC,gBAAa,KACZ,EAAAA,QAAA,cAAC,aAAU,CAAC,QAAQ,IAAI,EAAA,YAAA,EACxB,EAAAA,QAAA,cAACC,EAAa,CAAC,OAAQ,CAAE,SAAAP,EAAU,GAAGF,CAAI,CAAE,CAAA,EAC5C,EAAAQ,QAAA,cAAC,aAAU,CAAC,QAAQ,IAAI,EAAA,UAAA,EACvBF,EACC,EAAAE,QAAA,cAACE,EAAgB,CAAC,IAAK,CAACJ,CAAG,CAAC,CAAA,EAE5B,EAAAE,QAAA,cAAC,aAAU,KAAA,oBAAA,EAEZH,EACC,EAAAG,QAAA,cAAA,EAAAA,QAAA,SAAA,KACE,EAAAA,QAAA,cAAC,aAAU,CAAC,QAAQ,IAAI,EAAA,gBAAA,EACxB,EAAAA,QAAA,cAACC,EAAa,CAAC,OAAQJ,CAAQ,CAAA,CAAI,EAEnC,IAAI,CACM,CAGtB,CAAC,EAEDM,EAAeZ",
6
6
  "names": ["import_react", "import_ui", "import_material", "import_mobx_react", "TreeNodeInfoDialog", "info", "model", "nodeName", "onClose", "rows", "metadata", "res", "f", "React", "MetadataTable", "SequenceTextArea", "TreeNodeInfoDialog_default"]
@@ -1,2 +1,2 @@
1
1
  var o=["ArrowLeft","ArrowRight","ArrowUp","ArrowDown"],a=[{label:"Arrow keys",action:"Scroll one cell",keys:o},{label:"Shift + arrow keys",action:"Scroll one page",keys:o,shiftKey:!0},{label:"+ and -",action:"Zoom in and out",keys:["+","=","-"]},{label:"0",action:"Reset to the default cell size",keys:["0"]},{label:"Home and End",action:"Jump to the first and last column",keys:["Home","End"]},{label:"Escape",action:"Clear the selection",keys:["Escape"]}],l={label:"Shift + drag",action:"Select a block of cells"},t=[{label:"Drag",action:"Pan the alignment"},{label:"Wheel",action:"Scroll, or zoom with Zoom on scroll checked"},{label:"Ctrl + wheel",action:"Zoom at the cursor"},l,{label:"Drag along a track",action:"Select a range of columns across every row"},{label:"Click a tree node",action:"Collapse, rotate, reroot or show only that clade"},{label:"Click the tree overview",action:"Show only the clade under the pointer"},{label:"Drag a divider",action:"Resize the tree area or a track"}],r=["Alignment",...[...a,l].map(e=>`${e.label}: ${e.action}`)].join(". ");export{a,t as b,r as c};
2
- //# sourceMappingURL=chunk-DFVHVWTM.js.map
2
+ //# sourceMappingURL=chunk-7ZQPYLN2.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../node_modules/.pnpm/react-msaview@9.3.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/controls.ts"],
3
+ "sources": ["../../node_modules/.pnpm/react-msaview@9.4.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/controls.ts"],
4
4
  "sourcesContent": ["export interface Control {\n label: string\n action: string\n}\n\nexport interface KeyControl extends Control {\n keys: string[]\n shiftKey?: boolean\n}\n\nconst arrows = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown']\n\nexport const keyboardControls: KeyControl[] = [\n { label: 'Arrow keys', action: 'Scroll one cell', keys: arrows },\n {\n label: 'Shift + arrow keys',\n action: 'Scroll one page',\n keys: arrows,\n shiftKey: true,\n },\n { label: '+ and -', action: 'Zoom in and out', keys: ['+', '=', '-'] },\n { label: '0', action: 'Reset to the default cell size', keys: ['0'] },\n {\n label: 'Home and End',\n action: 'Jump to the first and last column',\n keys: ['Home', 'End'],\n },\n { label: 'Escape', action: 'Clear the selection', keys: ['Escape'] },\n]\n\nconst selectCells: Control = {\n label: 'Shift + drag',\n action: 'Select a block of cells',\n}\n\nexport const mouseControls: Control[] = [\n { label: 'Drag', action: 'Pan the alignment' },\n {\n label: 'Wheel',\n action: 'Scroll, or zoom with Zoom on scroll checked',\n },\n { label: 'Ctrl + wheel', action: 'Zoom at the cursor' },\n selectCells,\n {\n label: 'Drag along a track',\n action: 'Select a range of columns across every row',\n },\n {\n label: 'Click a tree node',\n action: 'Collapse, rotate, reroot or show only that clade',\n },\n {\n label: 'Click the tree overview',\n action: 'Show only the clade under the pointer',\n },\n { label: 'Drag a divider', action: 'Resize the tree area or a track' },\n]\n\nexport const alignmentAriaLabel = [\n 'Alignment',\n ...[...keyboardControls, selectCells].map(c => `${c.label}: ${c.action}`),\n].join('. ')\n"],
5
5
  "mappings": "AAUA,IAAMA,EAAS,CAAC,YAAa,aAAc,UAAW,WAAW,EAEpDC,EAAiC,CAC5C,CAAE,MAAO,aAAc,OAAQ,kBAAmB,KAAMD,CAAM,EAC9D,CACE,MAAO,qBACP,OAAQ,kBACR,KAAMA,EACN,SAAU,IAEZ,CAAE,MAAO,UAAW,OAAQ,kBAAmB,KAAM,CAAC,IAAK,IAAK,GAAG,CAAC,EACpE,CAAE,MAAO,IAAK,OAAQ,iCAAkC,KAAM,CAAC,GAAG,CAAC,EACnE,CACE,MAAO,eACP,OAAQ,oCACR,KAAM,CAAC,OAAQ,KAAK,GAEtB,CAAE,MAAO,SAAU,OAAQ,sBAAuB,KAAM,CAAC,QAAQ,CAAC,GAG9DE,EAAuB,CAC3B,MAAO,eACP,OAAQ,2BAGGC,EAA2B,CACtC,CAAE,MAAO,OAAQ,OAAQ,mBAAmB,EAC5C,CACE,MAAO,QACP,OAAQ,+CAEV,CAAE,MAAO,eAAgB,OAAQ,oBAAoB,EACrDD,EACA,CACE,MAAO,qBACP,OAAQ,8CAEV,CACE,MAAO,oBACP,OAAQ,oDAEV,CACE,MAAO,0BACP,OAAQ,yCAEV,CAAE,MAAO,iBAAkB,OAAQ,iCAAiC,GAGzDE,EAAqB,CAChC,YACA,GAAG,CAAC,GAAGH,EAAkBC,CAAW,EAAE,IAAIG,GAAK,GAAGA,EAAE,KAAK,KAAKA,EAAE,MAAM,EAAE,GACxE,KAAK,IAAI",
6
6
  "names": ["arrows", "keyboardControls", "selectCells", "mouseControls", "alignmentAriaLabel", "c"]
@@ -1,2 +1,2 @@
1
1
  import{a as x}from"./chunk-CVLB4VFP.js";import{a as N}from"./chunk-BX4Z274Q.js";import{a as b}from"./chunk-J6KYLXRD.js";import{b as f}from"./chunk-FY3BTKY4.js";var c=f(b(),1),l=f(N(),1),h=f(x(),1);function d(e){let t=new Set(e.collapsed);return e.leaves.filter(({data:{id:n,name:o}})=>!(t.has(n)&&o===n)).map(n=>n.data.name)}function m(e,t,n=50){let o=t.toLowerCase();return e.filter(r=>r.toLowerCase().includes(o)).slice(0,n)}function S(e,t){let n=t.trim(),o=e.rowNamesSet.get(n);if(o!==void 0)return{row:o};let r=/^(.+):(\d+)$/.exec(n);if(r){let[,s="",u]=r,a=e.rowNamesSet.get(s),i=a===void 0?void 0:p(e,s,+u);return i===void 0?void 0:{row:a,col:i}}if(/^\d+$/.test(n)){let s=+n,{relativeTo:u,numColumns:a}=e,i=u?p(e,u,s):s>=1&&s<=a?s-1:void 0;return i===void 0?void 0:{col:i}}}function p(e,t,n){let o=e.seqPosIndex(t)?.[n-1];return o===void 0?void 0:e.globalColToVisibleCol(o)}function w(e,t){let n=S(e,t);if(n){let{row:o,col:r}=n,{rowHeight:s,colWidth:u,msaAreaHeight:a,msaAreaWidth:i}=e;o!==void 0&&e.setScrollY(-(o+.5)*s+a/2),r!==void 0&&e.setScrollX(-(r+.5)*u+i/2),e.setMousePos(r,o)}return n!==void 0}var g="Go to row or column";function C(e){let{slotProps:t,inputProps:n}=e;return t?{slotProps:{...t,htmlInput:{...t.htmlInput,"aria-label":g}}}:{inputProps:{...n,"aria-label":g}}}function T(e){e&&requestAnimationFrame(()=>{e.focus()})}function v(e){return d(e).length>1||e.numColumns>0}var I=(0,h.observer)(function({model:e,onFound:t}){let[n,o]=(0,c.useState)(!1);return c.default.createElement(l.Autocomplete,{freeSolo:!0,options:d(e),filterOptions:(r,{inputValue:s})=>m(r,s),value:null,blurOnSelect:!0,onInputChange:()=>{o(!1)},onChange:(r,s)=>{if(s){let u=w(e,s);o(!u),u&&t?.()}},renderInput:r=>c.default.createElement(l.TextField,{...r,inputRef:T,error:n,placeholder:"Row name or column number",helperText:n?"No row or column matches":"Or name:N for residue N of that row",...C(r)})})}),q=I;export{v as a,q as b};
2
- //# sourceMappingURL=chunk-UVY5VU6U.js.map
2
+ //# sourceMappingURL=chunk-A6AI2XFP.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../node_modules/.pnpm/react-msaview@9.3.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/dialogs/GoToBox.tsx", "../../node_modules/.pnpm/react-msaview@9.3.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/dialogs/goTo.ts"],
3
+ "sources": ["../../node_modules/.pnpm/react-msaview@9.4.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/dialogs/GoToBox.tsx", "../../node_modules/.pnpm/react-msaview@9.4.0_a4121c98828e538e8b3708814bbfe622/node_modules/react-msaview/src/components/dialogs/goTo.ts"],
4
4
  "sourcesContent": ["import React, { useState } from 'react'\n\nimport { Autocomplete, TextField } from '@mui/material'\nimport { observer } from 'mobx-react'\n\nimport { findableRowNames, goTo, rowNameSuggestions } from './goTo.ts'\n\nimport type { MsaViewModel } from '../../model.ts'\nimport type { AutocompleteRenderInputParams } from '@mui/material'\n\nconst label = 'Go to row or column'\n\n// MUI 9 hands renderInput `slotProps`; MUI 7, which every released JBrowse host\n// serves, hands it `inputProps` and no `slotProps` at all\nexport function labelledInput(params: AutocompleteRenderInputParams) {\n const { slotProps, inputProps } = params as Partial<\n AutocompleteRenderInputParams & { inputProps: object }\n >\n return slotProps\n ? {\n slotProps: {\n ...slotProps,\n htmlInput: { ...slotProps.htmlInput, 'aria-label': label },\n },\n }\n : { inputProps: { ...inputProps, 'aria-label': label } }\n}\n\n// the menu that opens the dialog hands focus back to its button as it closes,\n// after an autoFocus input would have taken it\nfunction focusNextFrame(el: HTMLInputElement | null) {\n if (el) {\n requestAnimationFrame(() => {\n el.focus()\n })\n }\n}\n\nexport function canGoTo(model: MsaViewModel) {\n return findableRowNames(model).length > 1 || model.numColumns > 0\n}\n\nconst GoToBox = observer(function ({\n model,\n onFound,\n}: {\n model: MsaViewModel\n onFound?: () => void\n}) {\n const [missed, setMissed] = useState(false)\n return (\n <Autocomplete\n freeSolo\n options={findableRowNames(model)}\n filterOptions={(options, { inputValue }) =>\n rowNameSuggestions(options, inputValue)\n }\n value={null}\n blurOnSelect\n onInputChange={() => {\n setMissed(false)\n }}\n onChange={(_, text) => {\n if (text) {\n const found = goTo(model, text)\n setMissed(!found)\n if (found) {\n onFound?.()\n }\n }\n }}\n renderInput={params => (\n <TextField\n {...params}\n inputRef={focusNextFrame}\n error={missed}\n placeholder=\"Row name or column number\"\n helperText={\n missed\n ? 'No row or column matches'\n : 'Or name:N for residue N of that row'\n }\n {...labelledInput(params)}\n />\n )}\n />\n )\n})\n\nexport default GoToBox\n", "import type { MsaViewModel } from '../../model.ts'\n\nexport function findableRowNames(model: MsaViewModel) {\n const collapsed = new Set(model.collapsed)\n return model.leaves\n .filter(({ data: { id, name } }) => !(collapsed.has(id) && name === id))\n .map(leaf => leaf.data.name)\n}\n\n// not MUI's createFilterOptions: JBrowse hosts do not re-export it, so\n// jbrowse-plugin-msaview would fail to load\nexport function rowNameSuggestions(names: string[], input: string, limit = 50) {\n const query = input.toLowerCase()\n return names\n .filter(name => name.toLowerCase().includes(query))\n .slice(0, limit)\n}\n\n/**\n * The visible row and column a \"Go to\" entry names: a row by its name, the\n * column the ruler numbers N, or residue N of a row written `name:N`. A name\n * is tried whole first, so a row called `chr1:100` stays reachable.\n */\nfunction resolveGoTo(model: MsaViewModel, text: string) {\n const query = text.trim()\n const row = model.rowNamesSet.get(query)\n if (row !== undefined) {\n return { row }\n }\n const residue = /^(.+):(\\d+)$/.exec(query)\n if (residue) {\n const [, name = '', pos] = residue\n const rowIndex = model.rowNamesSet.get(name)\n const col =\n rowIndex === undefined ? undefined : columnOfResidue(model, name, +pos!)\n return col === undefined ? undefined : { row: rowIndex, col }\n }\n if (/^\\d+$/.test(query)) {\n const n = +query\n const { relativeTo, numColumns } = model\n const col = relativeTo\n ? columnOfResidue(model, relativeTo, n)\n : n >= 1 && n <= numColumns\n ? n - 1\n : undefined\n return col === undefined ? undefined : { col }\n }\n return undefined\n}\n\n// seqPosToVisibleCol maps a residue past the row's end to the column after\n// it; here that residue names nothing\nfunction columnOfResidue(model: MsaViewModel, name: string, pos: number) {\n const globalCol = model.seqPosIndex(name)?.[pos - 1]\n return globalCol === undefined\n ? undefined\n : model.globalColToVisibleCol(globalCol)\n}\n\n/** centers the view on the entry's target and lights it; false if none */\nexport function goTo(model: MsaViewModel, text: string) {\n const target = resolveGoTo(model, text)\n if (target) {\n const { row, col } = target\n const { rowHeight, colWidth, msaAreaHeight, msaAreaWidth } = model\n if (row !== undefined) {\n model.setScrollY(-(row + 0.5) * rowHeight + msaAreaHeight / 2)\n }\n if (col !== undefined) {\n model.setScrollX(-(col + 0.5) * colWidth + msaAreaWidth / 2)\n }\n model.setMousePos(col, row)\n }\n return target !== undefined\n}\n"],
5
5
  "mappings": "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",
6
6
  "names": ["import_react", "import_material", "import_mobx_react", "findableRowNames", "model", "collapsed", "id", "name", "leaf", "rowNameSuggestions", "names", "input", "limit", "query", "resolveGoTo", "text", "row", "residue", "pos", "rowIndex", "col", "columnOfResidue", "n", "relativeTo", "numColumns", "globalCol", "goTo", "target", "rowHeight", "colWidth", "msaAreaHeight", "msaAreaWidth", "label", "labelledInput", "params", "slotProps", "inputProps", "focusNextFrame", "el", "canGoTo", "model", "findableRowNames", "GoToBox", "onFound", "missed", "setMissed", "React", "options", "inputValue", "rowNameSuggestions", "_", "text", "found", "goTo", "GoToBox_default"]