jbrowse-plugin-msaview 1.0.18 → 2.0.1

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 (147) hide show
  1. package/CHANGELOG.md +6 -4
  2. package/README.md +6 -4
  3. package/dist/AddHighlightModel/GenomeMouseoverHighlight.d.ts +6 -0
  4. package/dist/AddHighlightModel/GenomeMouseoverHighlight.js +30 -0
  5. package/dist/AddHighlightModel/GenomeMouseoverHighlight.js.map +1 -0
  6. package/dist/AddHighlightModel/HighlightComponents.d.ts +7 -0
  7. package/dist/AddHighlightModel/HighlightComponents.js +12 -0
  8. package/dist/AddHighlightModel/HighlightComponents.js.map +1 -0
  9. package/dist/AddHighlightModel/MsaToGenomeHighlight.d.ts +7 -0
  10. package/dist/AddHighlightModel/MsaToGenomeHighlight.js +26 -0
  11. package/dist/AddHighlightModel/MsaToGenomeHighlight.js.map +1 -0
  12. package/dist/AddHighlightModel/index.d.ts +2 -0
  13. package/dist/AddHighlightModel/index.js +14 -0
  14. package/dist/AddHighlightModel/index.js.map +1 -0
  15. package/dist/AddHighlightModel/util.d.ts +9 -0
  16. package/dist/AddHighlightModel/util.js +14 -0
  17. package/dist/AddHighlightModel/util.js.map +1 -0
  18. package/dist/LaunchMsaView/components/LaunchMsaViewDialog.d.ts +7 -0
  19. package/dist/LaunchMsaView/components/LaunchMsaViewDialog.js +20 -0
  20. package/dist/LaunchMsaView/components/LaunchMsaViewDialog.js.map +1 -0
  21. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/NcbiBlastPanel.d.ts +8 -0
  22. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/NcbiBlastPanel.js +76 -0
  23. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/NcbiBlastPanel.js.map +1 -0
  24. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/calculateProteinSequence.d.ts +26 -0
  25. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/calculateProteinSequence.js +48 -0
  26. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/calculateProteinSequence.js.map +1 -0
  27. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/index.d.ts +2 -0
  28. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/index.js +3 -0
  29. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/index.js.map +1 -0
  30. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/ncbiBlastLaunchView.d.ts +8 -0
  31. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/ncbiBlastLaunchView.js +17 -0
  32. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/ncbiBlastLaunchView.js.map +1 -0
  33. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/useFeatureSequence.d.ts +20 -0
  34. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/useFeatureSequence.js +64 -0
  35. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/useFeatureSequence.js.map +1 -0
  36. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/util.d.ts +5 -0
  37. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/util.js +7 -0
  38. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/util.js.map +1 -0
  39. package/dist/LaunchMsaView/components/PreLoadedMSA/PreLoadedMSADataPanel.d.ts +8 -0
  40. package/dist/LaunchMsaView/components/PreLoadedMSA/PreLoadedMSADataPanel.js +90 -0
  41. package/dist/LaunchMsaView/components/PreLoadedMSA/PreLoadedMSADataPanel.js.map +1 -0
  42. package/dist/LaunchMsaView/components/PreLoadedMSA/fetchGeneList.d.ts +1 -0
  43. package/dist/LaunchMsaView/components/PreLoadedMSA/fetchGeneList.js +12 -0
  44. package/dist/LaunchMsaView/components/PreLoadedMSA/fetchGeneList.js.map +1 -0
  45. package/dist/LaunchMsaView/components/PreLoadedMSA/preCalculatedLaunchView.d.ts +9 -0
  46. package/dist/LaunchMsaView/components/PreLoadedMSA/preCalculatedLaunchView.js +36 -0
  47. package/dist/LaunchMsaView/components/PreLoadedMSA/preCalculatedLaunchView.js.map +1 -0
  48. package/dist/LaunchMsaView/components/TabUtils.d.ts +12 -0
  49. package/dist/LaunchMsaView/components/TabUtils.js +13 -0
  50. package/dist/LaunchMsaView/components/TabUtils.js.map +1 -0
  51. package/dist/LaunchMsaView/index.d.ts +2 -0
  52. package/dist/LaunchMsaView/index.js +50 -0
  53. package/dist/LaunchMsaView/index.js.map +1 -0
  54. package/dist/LaunchMsaView/util.d.ts +5 -0
  55. package/dist/LaunchMsaView/util.js +25 -0
  56. package/dist/LaunchMsaView/util.js.map +1 -0
  57. package/dist/MsaViewPanel/components/LoadingBLAST.d.ts +6 -0
  58. package/dist/MsaViewPanel/components/LoadingBLAST.js +36 -0
  59. package/dist/MsaViewPanel/components/LoadingBLAST.js.map +1 -0
  60. package/dist/MsaViewPanel/components/MsaViewPanel.d.ts +6 -0
  61. package/dist/MsaViewPanel/components/MsaViewPanel.js +10 -0
  62. package/dist/MsaViewPanel/components/MsaViewPanel.js.map +1 -0
  63. package/dist/MsaViewPanel/components/RIDLink.d.ts +5 -0
  64. package/dist/MsaViewPanel/components/RIDLink.js +17 -0
  65. package/dist/MsaViewPanel/components/RIDLink.js.map +1 -0
  66. package/dist/MsaViewPanel/doLaunchBlast.d.ts +7 -0
  67. package/dist/MsaViewPanel/doLaunchBlast.js +27 -0
  68. package/dist/MsaViewPanel/doLaunchBlast.js.map +1 -0
  69. package/dist/MsaViewPanel/genomeToMSA.d.ts +4 -0
  70. package/dist/MsaViewPanel/genomeToMSA.js +18 -0
  71. package/dist/MsaViewPanel/genomeToMSA.js.map +1 -0
  72. package/dist/MsaViewPanel/index.d.ts +2 -0
  73. package/dist/MsaViewPanel/index.js +16 -0
  74. package/dist/MsaViewPanel/index.js.map +1 -0
  75. package/dist/MsaViewPanel/model.d.ts +600 -0
  76. package/dist/MsaViewPanel/model.js +235 -0
  77. package/dist/MsaViewPanel/model.js.map +1 -0
  78. package/dist/MsaViewPanel/msaCoordToGenomeCoord.d.ts +9 -0
  79. package/dist/MsaViewPanel/msaCoordToGenomeCoord.js +20 -0
  80. package/dist/MsaViewPanel/msaCoordToGenomeCoord.js.map +1 -0
  81. package/dist/MsaViewPanel/util.d.ts +8 -0
  82. package/dist/MsaViewPanel/util.js +7 -0
  83. package/dist/MsaViewPanel/util.js.map +1 -0
  84. package/dist/OpenInNewIcon.d.ts +3 -0
  85. package/dist/OpenInNewIcon.js +8 -0
  86. package/dist/OpenInNewIcon.js.map +1 -0
  87. package/dist/TextField2.d.ts +4 -0
  88. package/dist/TextField2.js +8 -0
  89. package/dist/TextField2.js.map +1 -0
  90. package/dist/index.d.ts +8 -8
  91. package/dist/index.js +32 -7
  92. package/dist/index.js.map +1 -0
  93. package/dist/jbrowse-plugin-msaview.umd.production.min.js +93 -1
  94. package/dist/jbrowse-plugin-msaview.umd.production.min.js.map +7 -1
  95. package/dist/utils/fetch.d.ts +4 -0
  96. package/dist/utils/fetch.js +19 -0
  97. package/dist/utils/fetch.js.map +1 -0
  98. package/dist/utils/msa.d.ts +8 -0
  99. package/dist/utils/msa.js +75 -0
  100. package/dist/utils/msa.js.map +1 -0
  101. package/dist/utils/ncbiBlast.d.ts +20 -0
  102. package/dist/utils/ncbiBlast.js +66 -0
  103. package/dist/utils/ncbiBlast.js.map +1 -0
  104. package/package.json +51 -40
  105. package/src/AddHighlightModel/GenomeMouseoverHighlight.tsx +44 -0
  106. package/src/AddHighlightModel/HighlightComponents.tsx +24 -0
  107. package/src/AddHighlightModel/MsaToGenomeHighlight.tsx +50 -0
  108. package/src/AddHighlightModel/index.tsx +27 -0
  109. package/src/AddHighlightModel/util.ts +14 -0
  110. package/src/LaunchMsaView/components/LaunchMsaViewDialog.tsx +52 -0
  111. package/src/LaunchMsaView/components/NewNCBIBlastQuery/NcbiBlastPanel.tsx +160 -0
  112. package/src/LaunchMsaView/components/NewNCBIBlastQuery/calculateProteinSequence.ts +92 -0
  113. package/src/LaunchMsaView/components/NewNCBIBlastQuery/index.tsx +2 -0
  114. package/src/LaunchMsaView/components/NewNCBIBlastQuery/ncbiBlastLaunchView.ts +28 -0
  115. package/src/LaunchMsaView/components/NewNCBIBlastQuery/useFeatureSequence.ts +85 -0
  116. package/src/LaunchMsaView/components/NewNCBIBlastQuery/util.ts +7 -0
  117. package/src/LaunchMsaView/components/PreLoadedMSA/PreLoadedMSADataPanel.tsx +149 -0
  118. package/src/LaunchMsaView/components/PreLoadedMSA/fetchGeneList.ts +13 -0
  119. package/src/LaunchMsaView/components/PreLoadedMSA/preCalculatedLaunchView.ts +54 -0
  120. package/src/LaunchMsaView/components/TabUtils.tsx +30 -0
  121. package/src/LaunchMsaView/index.ts +61 -0
  122. package/src/LaunchMsaView/util.ts +30 -0
  123. package/src/MsaViewPanel/components/LoadingBLAST.tsx +59 -0
  124. package/src/MsaViewPanel/components/MsaViewPanel.tsx +22 -0
  125. package/src/MsaViewPanel/components/RIDLink.tsx +18 -0
  126. package/src/MsaViewPanel/doLaunchBlast.ts +38 -0
  127. package/src/MsaViewPanel/genomeToMSA.ts +21 -0
  128. package/src/MsaViewPanel/index.ts +19 -0
  129. package/src/MsaViewPanel/model.ts +290 -0
  130. package/src/MsaViewPanel/msaCoordToGenomeCoord.ts +29 -0
  131. package/src/MsaViewPanel/util.ts +13 -0
  132. package/src/OpenInNewIcon.tsx +11 -0
  133. package/src/TextField2.tsx +12 -0
  134. package/src/index.ts +12 -14
  135. package/src/utils/fetch.ts +25 -0
  136. package/src/utils/msa.ts +111 -0
  137. package/src/utils/ncbiBlast.ts +105 -0
  138. package/dist/config.json +0 -8
  139. package/dist/jbrowse-plugin-msaview.cjs.development.js +0 -168
  140. package/dist/jbrowse-plugin-msaview.cjs.development.js.map +0 -1
  141. package/dist/jbrowse-plugin-msaview.cjs.production.min.js +0 -2
  142. package/dist/jbrowse-plugin-msaview.cjs.production.min.js.map +0 -1
  143. package/dist/jbrowse-plugin-msaview.esm.js +0 -163
  144. package/dist/jbrowse-plugin-msaview.esm.js.map +0 -1
  145. package/dist/jbrowse-plugin-msaview.umd.development.js +0 -8659
  146. package/dist/jbrowse-plugin-msaview.umd.development.js.map +0 -1
  147. package/src/index.test.ts +0 -3
@@ -1 +0,0 @@
1
- {"version":3,"file":"jbrowse-plugin-msaview.umd.development.js","sources":["../node_modules/react-msaview/dist/components/data/seq2.js","../node_modules/react-msaview/dist/components/ImportForm.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/interopRequireWildcard.js","../node_modules/@material-ui/icons/utils/createSvgIcon.js","../node_modules/@material-ui/icons/Assignment.js","../node_modules/react-msaview/dist/components/Rubberband.js","../node_modules/normalize-wheel/src/UserAgent_DEPRECATED.js","../node_modules/normalize-wheel/src/ExecutionEnvironment.js","../node_modules/normalize-wheel/src/isEventSupported.js","../node_modules/normalize-wheel/src/normalizeWheel.js","../node_modules/normalize-wheel/index.js","../node_modules/quickselect/index.js","../node_modules/rbush/index.js","../node_modules/react-msaview/dist/components/MoreInfoDlg.js","../node_modules/react-msaview/dist/components/TreeCanvas.js","../node_modules/color-name/index.js","../node_modules/simple-swizzle/node_modules/is-arrayish/index.js","../node_modules/simple-swizzle/index.js","../node_modules/color-string/index.js","../node_modules/color-convert/node_modules/color-name/index.js","../node_modules/color-convert/conversions.js","../node_modules/color-convert/route.js","../node_modules/color-convert/index.js","../node_modules/color/index.js","../node_modules/react-msaview/dist/util.js","../node_modules/react-msaview/dist/colorSchemes.js","../node_modules/react-msaview/dist/components/MSACanvas.js","../node_modules/react-msaview/dist/components/Ruler.js","../node_modules/react-msaview/dist/components/TreeRuler.js","../node_modules/react-msaview/dist/components/SettingsDlg.js","../node_modules/react-msaview/dist/components/AboutDlg.js","../node_modules/react-msaview/dist/components/DetailsDlg.js","../node_modules/react-msaview/dist/components/TracklistDlg.js","../node_modules/@material-ui/icons/FolderOpen.js","../node_modules/@material-ui/icons/Settings.js","../node_modules/@material-ui/icons/Help.js","../node_modules/@material-ui/icons/List.js","../node_modules/react-msaview/dist/components/Header.js","../node_modules/@material-ui/icons/ArrowDropDown.js","../node_modules/toggle-selection/index.js","../node_modules/copy-to-clipboard/index.js","../node_modules/react-msaview/dist/components/TrackInfoDlg.js","../node_modules/react-msaview/dist/components/Track.js","../node_modules/@material-ui/icons/Delete.js","../node_modules/react-msaview/dist/components/AnnotationDlg.js","../node_modules/react-msaview/dist/components/ResizeHandles.js","../node_modules/react-msaview/dist/components/MSAView.js","../node_modules/d3-hierarchy/src/cluster.js","../node_modules/d3-hierarchy/src/hierarchy/count.js","../node_modules/d3-hierarchy/src/hierarchy/each.js","../node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","../node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","../node_modules/d3-hierarchy/src/hierarchy/find.js","../node_modules/d3-hierarchy/src/hierarchy/sum.js","../node_modules/d3-hierarchy/src/hierarchy/sort.js","../node_modules/d3-hierarchy/src/hierarchy/path.js","../node_modules/d3-hierarchy/src/hierarchy/ancestors.js","../node_modules/d3-hierarchy/src/hierarchy/descendants.js","../node_modules/d3-hierarchy/src/hierarchy/leaves.js","../node_modules/d3-hierarchy/src/hierarchy/links.js","../node_modules/d3-hierarchy/src/hierarchy/iterator.js","../node_modules/d3-hierarchy/src/hierarchy/index.js","../node_modules/d3-array/src/ascending.js","../node_modules/d3-array/src/max.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../node_modules/shortid/lib/random/random-from-seed.js","../node_modules/shortid/lib/alphabet.js","../node_modules/shortid/lib/random/random-byte-browser.js","../node_modules/nanoid/format.browser.js","../node_modules/shortid/lib/generate.js","../node_modules/shortid/lib/build.js","../node_modules/shortid/lib/is-valid.js","../node_modules/shortid/lib/index.js","../node_modules/shortid/index.js","../node_modules/@jbrowse/core/util/types/mst.js","../node_modules/@jbrowse/core/pluggableElementTypes/models/BaseViewModel.js","../node_modules/stockholm-js/src/Stockholm.js","../node_modules/stockholm-js/index.js","../node_modules/clustal-js/dist/util.js","../node_modules/clustal-js/dist/index.js","../node_modules/react-msaview/dist/parsers/ClustalMSA.js","../node_modules/react-msaview/dist/parseNewick.js","../node_modules/react-msaview/dist/parsers/StockholmMSA.js","../node_modules/react-msaview/dist/parsers/FastaMSA.js","../node_modules/react-msaview/dist/components/TextTrack.js","../node_modules/react-msaview/dist/layout.js","../node_modules/react-msaview/dist/components/BoxTrack.js","../node_modules/react-msaview/dist/model.js","../node_modules/@material-ui/icons/GridOn.js","../src/index.ts"],"sourcesContent":["export var smallMSA = \"CLUSTAL O(1.2.3) multiple sequence alignment\\nUniProt/Swiss-Prot|P26898|IL2RA_SHEEP MEPSLLMWRFFVFIVVPGCVTEACHDDPPSLRNA----------MFKVLRYE----VGTM\\nUniProt/Swiss-Prot|P01590|IL2RA_MOUSE MEPRLLMLGFLSLTIVPSCRAELCLYDPPEVPNA----------TFKALSYK----NGTI\\nUniProt/Swiss-Prot|P41690|IL2RA_FELCA MEPSLLLWGILTFVVVHGHVTELCDENPPDIQHA----------TFKALTYK----TGTM\\nUniProt/Swiss-Prot|P01589|IL2RA_HUMAN MDSYLLMWGLLTFIMVPGCQAELCDDDPPEIPHA----------TFKAMAYK----EGTM\\nUniProt/Swiss-Prot|Q5MNY4|IL2RA_MACMU MDPYLLMWGLLTFITVPGCQAELCDDDPPKITHA----------TFKAVAYK----EGTM\\nUniProt/Swiss-Prot|Q95118|IL2RG_BOVIN -----------------------------------LLMWGLLT-----------------\\nUniProt/Swiss-Prot|P40321|IL2RG_CANFA MLKPPLPLRSLLFLQLSLLGVGLNSTVPMPNGNEDIT------PDFFLTATPSETLSVSS\\nUniProt/Swiss-Prot|P26896|IL2RB_RAT MATVDLSWRLPLYILLLLLATT--------------------------------WVSAAV\\nUniProt/Swiss-Prot|Q8BZM1|GLMN_MOUSE PLPLRSLLFLQLPLLGVGLNP------------------PLPLRSLLFLQLPLLGVGLNP\\nUniProt/Swiss-Prot|P36835|IL2_CAPHI -----------LLGVGLNPKFLTP------------------------------------\\nUniProt/Swiss-Prot|Q7JFM4|IL2_AOTVO MLKPPLPLRSLLFLQLPLLGVGLNPKFLTPSGNEDIGGKPGTGGDFFLTSTPAGTLDVST\\nUniProt/Swiss-Prot|Q29416|IL2_CANFA --------------LFLQLSLLG-------------------------------------\\n\";\nexport var smallMSAOnly = \"CLUSTAL O(1.2.4) multiple sequence alignment\\n\\n\\nsp|P69905|HBA_HUMAN MVLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHFDLSHGSAQVKGHG\\t60\\nsp|P01942|HBA_MOUSE MVLSGEDKSNIKAAWGKIGGHGAEYGAEALERMFASFPTTKTYFPHFDVSHGSAQVKGHG\\t60\\nsp|P13786|HBAZ_CAPHI MSLTRTERTIILSLWSKISTQADVIGTETLERLFSCYPQAKTYFPHFDLHSGSAQLRAHG\\t60\\n * *: ::: : : *.*:. :. *:*:***:* .:* :********: ****::.**\\n\\nsp|P69905|HBA_HUMAN KKVADALTNAVAHVDDMPNALSALSDLHAHKLRVDPVNFKLLSHCLLVTLAAHLPAEFTP\\t120\\nsp|P01942|HBA_MOUSE KKVADALASAAGHLDDLPGALSALSDLHAHKLRVDPVNFKLLSHCLLVTLASHHPADFTP\\t120\\nsp|P13786|HBAZ_CAPHI SKVVAAVGDAVKSIDNVTSALSKLSELHAYVLRVDPVNFKFLSHCLLVTLASHFPADFTA\\t120\\n .**. *: .*. :*:: .*** **:***: *********:**********:* **:**\\n\\nsp|P69905|HBA_HUMAN AVHASLDKFLASVSTVLTSKYR\\t142\\nsp|P01942|HBA_MOUSE AVHASLDKFLASVSTVLTSKYR\\t142\\nsp|P13786|HBAZ_CAPHI DAHAAWDKFLSIVSGVLTEKYR\\t142\\n .**: ****: ** ***.***\";\nexport var smallTree = '(((UniProt/Swiss-Prot|P26898|IL2RA_SHEEP:0.24036,(UniProt/Swiss-Prot|P41690|IL2RA_FELCA:0.17737,(UniProt/Swiss-Prot|P01589|IL2RA_HUMAN:0.03906,UniProt/Swiss-Prot|Q5MNY4|IL2RA_MACMU:0.03787):0.13033):0.04964):0.02189,UniProt/Swiss-Prot|P01590|IL2RA_MOUSE:0.23072):0.06814,(((UniProt/Swiss-Prot|Q95118|IL2RG_BOVIN:0.09600,UniProt/Swiss-Prot|P40321|IL2RG_CANFA:0.09845):0.25333,UniProt/Swiss-Prot|Q29416|IL2_CANFA:-0.35055):0.10231,(UniProt/Swiss-Prot|P26896|IL2RB_RAT:0.33631,UniProt/Swiss-Prot|Q7JFM4|IL2_AOTVO:-0.33631):0.10166):0.01607,(UniProt/Swiss-Prot|Q8BZM1|GLMN_MOUSE:0.32378,UniProt/Swiss-Prot|P36835|IL2_CAPHI:-0.32378):0.09999)';\n","import React, { useState } from 'react';\nimport { Button, Container, Grid, Typography, Link } from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport { transaction } from 'mobx';\nimport { FileSelector } from '@jbrowse/core/ui';\nimport { smallTree, smallMSA, smallMSAOnly } from './data/seq2';\nvar ListItem = function (_a) {\n var onClick = _a.onClick, model = _a.model, children = _a.children;\n return (React.createElement(\"li\", null,\n React.createElement(Link, { onClick: function (event) {\n model.setError(undefined);\n event.preventDefault();\n onClick();\n }, href: \"#\" },\n React.createElement(Typography, null, children))));\n};\nexport default observer(function (_a) {\n var model = _a.model;\n var _b = useState(), msaFile = _b[0], setMsaFile = _b[1];\n var _c = useState(), treeFile = _c[0], setTreeFile = _c[1];\n var error = model.error;\n return (React.createElement(Container, null,\n React.createElement(\"div\", { style: { width: '50%' } },\n error ? (React.createElement(\"div\", { style: { padding: 20 } },\n React.createElement(Typography, { color: \"error\" },\n \"Error: \", \"\".concat(error)))) : null,\n React.createElement(Typography, null, \"Open an MSA file (stockholm or clustal format) and/or a tree file (newick format).\"),\n React.createElement(Typography, { color: \"error\" }, \"Note: you can open up just an MSA or just a tree, both are not required. Some MSA files e.g. stockholm format have an embedded tree also and this is fine, and opening a separate tree file is not required.\")),\n React.createElement(Grid, { container: true, spacing: 10, justifyContent: \"center\", alignItems: \"center\" },\n React.createElement(Grid, { item: true },\n React.createElement(Typography, null, \"MSA file or URL\"),\n React.createElement(FileSelector, { location: msaFile, setLocation: setMsaFile }),\n React.createElement(Typography, null, \"Tree file or URL\"),\n React.createElement(FileSelector, { location: treeFile, setLocation: setTreeFile })),\n React.createElement(Grid, { item: true },\n React.createElement(Button, { onClick: function () {\n model.setError(undefined);\n if (msaFile) {\n model.setMSAFilehandle(msaFile);\n }\n if (treeFile) {\n model.setTreeFilehandle(treeFile);\n }\n }, variant: \"contained\", color: \"primary\", disabled: !msaFile && !treeFile }, \"Open\")),\n React.createElement(Grid, { item: true },\n React.createElement(Typography, null, \"Examples\"),\n React.createElement(\"ul\", null,\n React.createElement(ListItem, { model: model, onClick: function () {\n model.setTreeFilehandle({\n uri: 'https://jbrowse.org/genomes/newick_trees/sarscov2phylo.pub.ft.nh',\n locationType: 'UriLocation',\n });\n } }, \"230k COVID-19 samples (tree only)\"),\n React.createElement(ListItem, { model: model, onClick: function () {\n model.setData({ msa: smallMSA, tree: smallTree });\n } }, \"Small protein MSA+tree\"),\n React.createElement(ListItem, { model: model, onClick: function () {\n model.setData({ msa: smallMSAOnly });\n } }, \"Small MSA only\"),\n React.createElement(ListItem, { model: model, onClick: function () {\n model.setMSAFilehandle({\n uri: 'https://ihh.github.io/abrowse/build/pfam-cov2.stock',\n locationType: 'UriLocation',\n });\n } }, \"PFAM SARS-CoV2 multi-stockholm\"),\n React.createElement(ListItem, { model: model, onClick: function () {\n model.setMSAFilehandle({\n uri: 'https://jbrowse.org/genomes/multiple_sequence_alignments/Lysine.stock',\n locationType: 'UriLocation',\n });\n } }, \"Lysine stockholm file\"),\n React.createElement(ListItem, { model: model, onClick: function () {\n model.setMSAFilehandle({\n uri: 'https://jbrowse.org/genomes/multiple_sequence_alignments/PF01601_full.txt',\n locationType: 'UriLocation',\n });\n } }, \"PF01601 stockholm file (SARS-CoV2 spike protein)\"),\n React.createElement(ListItem, { model: model, onClick: function () {\n model.setMSAFilehandle({\n uri: 'https://jbrowse.org/genomes/multiple_sequence_alignments/europe_covid.fa',\n locationType: 'UriLocation',\n });\n } }, \"Europe COVID full genomes (LR883044.1 and 199 other sequences)\"),\n React.createElement(ListItem, { model: model, onClick: function () {\n transaction(function () {\n model.setMSAFilehandle({\n uri: 'https://jbrowse.org/genomes/multiple_sequence_alignments/rhv_test-only.aligned_with_mafft_auto.fa',\n locationType: 'UriLocation',\n });\n model.setTreeFilehandle({\n uri: 'https://jbrowse.org/genomes/multiple_sequence_alignments/rhv_test-only.aligned_with_mafft_auto.nh',\n locationType: 'UriLocation',\n });\n });\n } }, \"MAFFT+VeryFastTree(17.9k samples)\"))))));\n});\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _typeof = require(\"@babel/runtime/helpers/typeof\")[\"default\"];\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\n\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _utils.createSvgIcon;\n }\n});\n\nvar _utils = require(\"@material-ui/core/utils\");","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm2 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z\"\n}), 'Assignment');\n\nexports.default = _default;","import React, { useRef, useEffect, useState } from 'react';\nimport { observer } from 'mobx-react';\n// material ui\nimport { Popover, Tooltip, Typography, makeStyles, alpha, } from '@material-ui/core';\nimport AssignmentIcon from '@material-ui/icons/Assignment';\n// import { stringify } from '@jbrowse/core/util'\nimport { Menu } from '@jbrowse/core/ui';\nvar useStyles = makeStyles(function (theme) {\n var background = theme.palette.tertiary\n ? alpha(theme.palette.tertiary.main, 0.7)\n : alpha(theme.palette.primary.main, 0.7);\n return {\n rubberband: {\n height: '100%',\n background: background,\n position: 'absolute',\n zIndex: 10,\n textAlign: 'center',\n overflow: 'hidden',\n },\n rubberbandControl: {\n cursor: 'crosshair',\n width: '100%',\n minHeight: 8,\n },\n rubberbandText: {\n color: theme.palette.tertiary\n ? theme.palette.tertiary.contrastText\n : theme.palette.primary.contrastText,\n },\n popover: {\n mouseEvents: 'none',\n cursor: 'crosshair',\n },\n paper: {\n paddingLeft: theme.spacing(1),\n paddingRight: theme.spacing(1),\n },\n guide: {\n pointerEvents: 'none',\n height: '100%',\n width: 1,\n position: 'absolute',\n zIndex: 10,\n },\n };\n});\nvar VerticalGuide = observer(function (_a) {\n var model = _a.model, coordX = _a.coordX;\n var treeAreaWidth = model.treeAreaWidth;\n var classes = useStyles();\n return (React.createElement(React.Fragment, null,\n React.createElement(Tooltip, { open: true, placement: \"top\", title: \"\".concat(model.pxToBp(coordX) + 1), arrow: true },\n React.createElement(\"div\", { style: {\n left: coordX + treeAreaWidth,\n position: 'absolute',\n height: 1,\n } })),\n React.createElement(\"div\", { className: classes.guide, style: {\n left: coordX + treeAreaWidth,\n background: 'red',\n } })));\n});\nfunction Rubberband(_a) {\n var model = _a.model, _b = _a.ControlComponent, ControlComponent = _b === void 0 ? React.createElement(\"div\", null) : _b;\n var treeAreaWidth = model.treeAreaWidth;\n var _c = useState(), startX = _c[0], setStartX = _c[1];\n var _d = useState(), currentX = _d[0], setCurrentX = _d[1];\n // clientX and clientY used for anchorPosition for menu\n // offsetX used for calculations about width of selection\n var _e = useState(), anchorPosition = _e[0], setAnchorPosition = _e[1];\n var _f = useState(), guideX = _f[0], setGuideX = _f[1];\n var controlsRef = useRef(null);\n var rubberbandRef = useRef(null);\n var classes = useStyles();\n var mouseDragging = startX !== undefined && anchorPosition === undefined;\n useEffect(function () {\n function globalMouseMove(event) {\n if (controlsRef.current && mouseDragging) {\n var relativeX = event.clientX - controlsRef.current.getBoundingClientRect().left;\n setCurrentX(relativeX);\n }\n }\n function globalMouseUp(event) {\n if (startX !== undefined && controlsRef.current) {\n var clientX = event.clientX, clientY = event.clientY;\n var ref = controlsRef.current;\n var offsetX = clientX - ref.getBoundingClientRect().left;\n // as stated above, store both clientX/Y and offsetX for different\n // purposes\n setAnchorPosition({\n offsetX: offsetX,\n clientX: clientX,\n clientY: clientY,\n });\n setGuideX(undefined);\n }\n }\n if (mouseDragging) {\n window.addEventListener('mousemove', globalMouseMove);\n window.addEventListener('mouseup', globalMouseUp);\n return function () {\n window.removeEventListener('mousemove', globalMouseMove);\n window.removeEventListener('mouseup', globalMouseUp);\n };\n }\n return function () { };\n }, [startX, mouseDragging, anchorPosition]);\n useEffect(function () {\n if (!mouseDragging &&\n currentX !== undefined &&\n startX !== undefined &&\n Math.abs(currentX - startX) <= 3) {\n handleClose();\n }\n }, [mouseDragging, currentX, startX, model.colWidth]);\n function mouseDown(event) {\n event.preventDefault();\n event.stopPropagation();\n var relativeX = event.clientX -\n event.target.getBoundingClientRect().left;\n setStartX(relativeX);\n setCurrentX(relativeX);\n }\n function mouseMove(event) {\n var target = event.target;\n setGuideX(event.clientX - target.getBoundingClientRect().left);\n }\n function mouseOut() {\n setGuideX(undefined);\n model.clearAnnotPos();\n }\n function handleClose() {\n setAnchorPosition(undefined);\n setStartX(undefined);\n setCurrentX(undefined);\n }\n //eslint-disable-next-line @typescript-eslint/ban-types\n function handleMenuItemClick(_, callback) {\n callback();\n handleClose();\n }\n if (startX === undefined) {\n return (React.createElement(React.Fragment, null,\n guideX !== undefined ? (React.createElement(VerticalGuide, { model: model, coordX: guideX })) : null,\n React.createElement(\"div\", { \"data-testid\": \"rubberband_controls\", className: classes.rubberbandControl, role: \"presentation\", ref: controlsRef, onMouseDown: mouseDown, onMouseOut: mouseOut, onMouseMove: mouseMove }, ControlComponent)));\n }\n var right = anchorPosition ? anchorPosition.offsetX : currentX || 0;\n var left = right < startX ? right : startX;\n var width = Math.abs(right - startX);\n var leftBpOffset = model.pxToBp(left);\n var rightBpOffset = model.pxToBp(left + width);\n var numOfBpSelected = Math.ceil(width / model.colWidth);\n var menuItems = [\n {\n label: 'Create annotation',\n icon: AssignmentIcon,\n onClick: function () {\n model.setOffsets(leftBpOffset, rightBpOffset);\n handleClose();\n },\n },\n ];\n return (React.createElement(React.Fragment, null,\n rubberbandRef.current ? (React.createElement(React.Fragment, null,\n React.createElement(Popover, { className: classes.popover, classes: {\n paper: classes.paper,\n }, open: true, anchorEl: rubberbandRef.current, anchorOrigin: {\n vertical: 'top',\n horizontal: 'left',\n }, transformOrigin: {\n vertical: 'bottom',\n horizontal: 'right',\n }, keepMounted: true, disableRestoreFocus: true },\n React.createElement(Typography, null, leftBpOffset + 1)),\n React.createElement(Popover, { className: classes.popover, classes: {\n paper: classes.paper,\n }, open: true, anchorEl: rubberbandRef.current, anchorOrigin: {\n vertical: 'top',\n horizontal: 'right',\n }, transformOrigin: {\n vertical: 'bottom',\n horizontal: 'left',\n }, keepMounted: true, disableRestoreFocus: true },\n React.createElement(Typography, null, rightBpOffset + 1)))) : null,\n React.createElement(\"div\", { ref: rubberbandRef, className: classes.rubberband, style: { left: left + treeAreaWidth, width: width } },\n React.createElement(Typography, { variant: \"h6\", className: classes.rubberbandText },\n numOfBpSelected.toLocaleString('en-US'),\n \" bp\")),\n React.createElement(\"div\", { \"data-testid\": \"rubberband_controls\", className: classes.rubberbandControl, role: \"presentation\", ref: controlsRef, onMouseDown: mouseDown, onMouseOut: mouseOut, onMouseMove: mouseMove }, ControlComponent),\n anchorPosition ? (React.createElement(Menu, { anchorReference: \"anchorPosition\", anchorPosition: {\n left: anchorPosition.clientX,\n top: anchorPosition.clientY,\n }, onMenuItemClick: handleMenuItemClick, open: Boolean(anchorPosition), onClose: handleClose, menuItems: menuItems })) : null));\n}\nexport default observer(Rubberband);\n","/**\n * Copyright 2004-present Facebook. All Rights Reserved.\n *\n * @providesModule UserAgent_DEPRECATED\n */\n\n/**\n * Provides entirely client-side User Agent and OS detection. You should prefer\n * the non-deprecated UserAgent module when possible, which exposes our\n * authoritative server-side PHP-based detection to the client.\n *\n * Usage is straightforward:\n *\n * if (UserAgent_DEPRECATED.ie()) {\n * // IE\n * }\n *\n * You can also do version checks:\n *\n * if (UserAgent_DEPRECATED.ie() >= 7) {\n * // IE7 or better\n * }\n *\n * The browser functions will return NaN if the browser does not match, so\n * you can also do version compares the other way:\n *\n * if (UserAgent_DEPRECATED.ie() < 7) {\n * // IE6 or worse\n * }\n *\n * Note that the version is a float and may include a minor version number,\n * so you should always use range operators to perform comparisons, not\n * strict equality.\n *\n * **Note:** You should **strongly** prefer capability detection to browser\n * version detection where it's reasonable:\n *\n * http://www.quirksmode.org/js/support.html\n *\n * Further, we have a large number of mature wrapper functions and classes\n * which abstract away many browser irregularities. Check the documentation,\n * grep for things, or ask on javascript@lists.facebook.com before writing yet\n * another copy of \"event || window.event\".\n *\n */\n\nvar _populated = false;\n\n// Browsers\nvar _ie, _firefox, _opera, _webkit, _chrome;\n\n// Actual IE browser for compatibility mode\nvar _ie_real_version;\n\n// Platforms\nvar _osx, _windows, _linux, _android;\n\n// Architectures\nvar _win64;\n\n// Devices\nvar _iphone, _ipad, _native;\n\nvar _mobile;\n\nfunction _populate() {\n if (_populated) {\n return;\n }\n\n _populated = true;\n\n // To work around buggy JS libraries that can't handle multi-digit\n // version numbers, Opera 10's user agent string claims it's Opera\n // 9, then later includes a Version/X.Y field:\n //\n // Opera/9.80 (foo) Presto/2.2.15 Version/10.10\n var uas = navigator.userAgent;\n var agent = /(?:MSIE.(\\d+\\.\\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\\d+\\.\\d+))|(?:Opera(?:.+Version.|.)(\\d+\\.\\d+))|(?:AppleWebKit.(\\d+(?:\\.\\d+)?))|(?:Trident\\/\\d+\\.\\d+.*rv:(\\d+\\.\\d+))/.exec(uas);\n var os = /(Mac OS X)|(Windows)|(Linux)/.exec(uas);\n\n _iphone = /\\b(iPhone|iP[ao]d)/.exec(uas);\n _ipad = /\\b(iP[ao]d)/.exec(uas);\n _android = /Android/i.exec(uas);\n _native = /FBAN\\/\\w+;/i.exec(uas);\n _mobile = /Mobile/i.exec(uas);\n\n // Note that the IE team blog would have you believe you should be checking\n // for 'Win64; x64'. But MSDN then reveals that you can actually be coming\n // from either x64 or ia64; so ultimately, you should just check for Win64\n // as in indicator of whether you're in 64-bit IE. 32-bit IE on 64-bit\n // Windows will send 'WOW64' instead.\n _win64 = !!(/Win64/.exec(uas));\n\n if (agent) {\n _ie = agent[1] ? parseFloat(agent[1]) : (\n agent[5] ? parseFloat(agent[5]) : NaN);\n // IE compatibility mode\n if (_ie && document && document.documentMode) {\n _ie = document.documentMode;\n }\n // grab the \"true\" ie version from the trident token if available\n var trident = /(?:Trident\\/(\\d+.\\d+))/.exec(uas);\n _ie_real_version = trident ? parseFloat(trident[1]) + 4 : _ie;\n\n _firefox = agent[2] ? parseFloat(agent[2]) : NaN;\n _opera = agent[3] ? parseFloat(agent[3]) : NaN;\n _webkit = agent[4] ? parseFloat(agent[4]) : NaN;\n if (_webkit) {\n // We do not add the regexp to the above test, because it will always\n // match 'safari' only since 'AppleWebKit' appears before 'Chrome' in\n // the userAgent string.\n agent = /(?:Chrome\\/(\\d+\\.\\d+))/.exec(uas);\n _chrome = agent && agent[1] ? parseFloat(agent[1]) : NaN;\n } else {\n _chrome = NaN;\n }\n } else {\n _ie = _firefox = _opera = _chrome = _webkit = NaN;\n }\n\n if (os) {\n if (os[1]) {\n // Detect OS X version. If no version number matches, set _osx to true.\n // Version examples: 10, 10_6_1, 10.7\n // Parses version number as a float, taking only first two sets of\n // digits. If only one set of digits is found, returns just the major\n // version number.\n var ver = /(?:Mac OS X (\\d+(?:[._]\\d+)?))/.exec(uas);\n\n _osx = ver ? parseFloat(ver[1].replace('_', '.')) : true;\n } else {\n _osx = false;\n }\n _windows = !!os[2];\n _linux = !!os[3];\n } else {\n _osx = _windows = _linux = false;\n }\n}\n\nvar UserAgent_DEPRECATED = {\n\n /**\n * Check if the UA is Internet Explorer.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n ie: function() {\n return _populate() || _ie;\n },\n\n /**\n * Check if we're in Internet Explorer compatibility mode.\n *\n * @return bool true if in compatibility mode, false if\n * not compatibility mode or not ie\n */\n ieCompatibilityMode: function() {\n return _populate() || (_ie_real_version > _ie);\n },\n\n\n /**\n * Whether the browser is 64-bit IE. Really, this is kind of weak sauce; we\n * only need this because Skype can't handle 64-bit IE yet. We need to remove\n * this when we don't need it -- tracked by #601957.\n */\n ie64: function() {\n return UserAgent_DEPRECATED.ie() && _win64;\n },\n\n /**\n * Check if the UA is Firefox.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n firefox: function() {\n return _populate() || _firefox;\n },\n\n\n /**\n * Check if the UA is Opera.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n opera: function() {\n return _populate() || _opera;\n },\n\n\n /**\n * Check if the UA is WebKit.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n webkit: function() {\n return _populate() || _webkit;\n },\n\n /**\n * For Push\n * WILL BE REMOVED VERY SOON. Use UserAgent_DEPRECATED.webkit\n */\n safari: function() {\n return UserAgent_DEPRECATED.webkit();\n },\n\n /**\n * Check if the UA is a Chrome browser.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n chrome : function() {\n return _populate() || _chrome;\n },\n\n\n /**\n * Check if the user is running Windows.\n *\n * @return bool `true' if the user's OS is Windows.\n */\n windows: function() {\n return _populate() || _windows;\n },\n\n\n /**\n * Check if the user is running Mac OS X.\n *\n * @return float|bool Returns a float if a version number is detected,\n * otherwise true/false.\n */\n osx: function() {\n return _populate() || _osx;\n },\n\n /**\n * Check if the user is running Linux.\n *\n * @return bool `true' if the user's OS is some flavor of Linux.\n */\n linux: function() {\n return _populate() || _linux;\n },\n\n /**\n * Check if the user is running on an iPhone or iPod platform.\n *\n * @return bool `true' if the user is running some flavor of the\n * iPhone OS.\n */\n iphone: function() {\n return _populate() || _iphone;\n },\n\n mobile: function() {\n return _populate() || (_iphone || _ipad || _android || _mobile);\n },\n\n nativeApp: function() {\n // webviews inside of the native apps\n return _populate() || _native;\n },\n\n android: function() {\n return _populate() || _android;\n },\n\n ipad: function() {\n return _populate() || _ipad;\n }\n};\n\nmodule.exports = UserAgent_DEPRECATED;\n","/**\n * Copyright (c) 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ExecutionEnvironment\n */\n\n/*jslint evil: true */\n\n'use strict';\n\nvar canUseDOM = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners:\n canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isEventSupported\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar useHasFeature;\nif (ExecutionEnvironment.canUseDOM) {\n useHasFeature =\n document.implementation &&\n document.implementation.hasFeature &&\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @param {?boolean} capture Check if the capture phase is supported.\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\nfunction isEventSupported(eventNameSuffix, capture) {\n if (!ExecutionEnvironment.canUseDOM ||\n capture && !('addEventListener' in document)) {\n return false;\n }\n\n var eventName = 'on' + eventNameSuffix;\n var isSupported = eventName in document;\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nmodule.exports = isEventSupported;\n","/**\n * Copyright (c) 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule normalizeWheel\n * @typechecks\n */\n\n'use strict';\n\nvar UserAgent_DEPRECATED = require('./UserAgent_DEPRECATED');\n\nvar isEventSupported = require('./isEventSupported');\n\n\n// Reasonable defaults\nvar PIXEL_STEP = 10;\nvar LINE_HEIGHT = 40;\nvar PAGE_HEIGHT = 800;\n\n/**\n * Mouse wheel (and 2-finger trackpad) support on the web sucks. It is\n * complicated, thus this doc is long and (hopefully) detailed enough to answer\n * your questions.\n *\n * If you need to react to the mouse wheel in a predictable way, this code is\n * like your bestest friend. * hugs *\n *\n * As of today, there are 4 DOM event types you can listen to:\n *\n * 'wheel' -- Chrome(31+), FF(17+), IE(9+)\n * 'mousewheel' -- Chrome, IE(6+), Opera, Safari\n * 'MozMousePixelScroll' -- FF(3.5 only!) (2010-2013) -- don't bother!\n * 'DOMMouseScroll' -- FF(0.9.7+) since 2003\n *\n * So what to do? The is the best:\n *\n * normalizeWheel.getEventType();\n *\n * In your event callback, use this code to get sane interpretation of the\n * deltas. This code will return an object with properties:\n *\n * spinX -- normalized spin speed (use for zoom) - x plane\n * spinY -- \" - y plane\n * pixelX -- normalized distance (to pixels) - x plane\n * pixelY -- \" - y plane\n *\n * Wheel values are provided by the browser assuming you are using the wheel to\n * scroll a web page by a number of lines or pixels (or pages). Values can vary\n * significantly on different platforms and browsers, forgetting that you can\n * scroll at different speeds. Some devices (like trackpads) emit more events\n * at smaller increments with fine granularity, and some emit massive jumps with\n * linear speed or acceleration.\n *\n * This code does its best to normalize the deltas for you:\n *\n * - spin is trying to normalize how far the wheel was spun (or trackpad\n * dragged). This is super useful for zoom support where you want to\n * throw away the chunky scroll steps on the PC and make those equal to\n * the slow and smooth tiny steps on the Mac. Key data: This code tries to\n * resolve a single slow step on a wheel to 1.\n *\n * - pixel is normalizing the desired scroll delta in pixel units. You'll\n * get the crazy differences between browsers, but at least it'll be in\n * pixels!\n *\n * - positive value indicates scrolling DOWN/RIGHT, negative UP/LEFT. This\n * should translate to positive value zooming IN, negative zooming OUT.\n * This matches the newer 'wheel' event.\n *\n * Why are there spinX, spinY (or pixels)?\n *\n * - spinX is a 2-finger side drag on the trackpad, and a shift + wheel turn\n * with a mouse. It results in side-scrolling in the browser by default.\n *\n * - spinY is what you expect -- it's the classic axis of a mouse wheel.\n *\n * - I dropped spinZ/pixelZ. It is supported by the DOM 3 'wheel' event and\n * probably is by browsers in conjunction with fancy 3D controllers .. but\n * you know.\n *\n * Implementation info:\n *\n * Examples of 'wheel' event if you scroll slowly (down) by one step with an\n * average mouse:\n *\n * OS X + Chrome (mouse) - 4 pixel delta (wheelDelta -120)\n * OS X + Safari (mouse) - N/A pixel delta (wheelDelta -12)\n * OS X + Firefox (mouse) - 0.1 line delta (wheelDelta N/A)\n * Win8 + Chrome (mouse) - 100 pixel delta (wheelDelta -120)\n * Win8 + Firefox (mouse) - 3 line delta (wheelDelta -120)\n *\n * On the trackpad:\n *\n * OS X + Chrome (trackpad) - 2 pixel delta (wheelDelta -6)\n * OS X + Firefox (trackpad) - 1 pixel delta (wheelDelta N/A)\n *\n * On other/older browsers.. it's more complicated as there can be multiple and\n * also missing delta values.\n *\n * The 'wheel' event is more standard:\n *\n * http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents\n *\n * The basics is that it includes a unit, deltaMode (pixels, lines, pages), and\n * deltaX, deltaY and deltaZ. Some browsers provide other values to maintain\n * backward compatibility with older events. Those other values help us\n * better normalize spin speed. Example of what the browsers provide:\n *\n * | event.wheelDelta | event.detail\n * ------------------+------------------+--------------\n * Safari v5/OS X | -120 | 0\n * Safari v5/Win7 | -120 | 0\n * Chrome v17/OS X | -120 | 0\n * Chrome v17/Win7 | -120 | 0\n * IE9/Win7 | -120 | undefined\n * Firefox v4/OS X | undefined | 1\n * Firefox v4/Win7 | undefined | 3\n *\n */\nfunction normalizeWheel(/*object*/ event) /*object*/ {\n var sX = 0, sY = 0, // spinX, spinY\n pX = 0, pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in event) { sY = event.detail; }\n if ('wheelDelta' in event) { sY = -event.wheelDelta / 120; }\n if ('wheelDeltaY' in event) { sY = -event.wheelDeltaY / 120; }\n if ('wheelDeltaX' in event) { sX = -event.wheelDeltaX / 120; }\n\n // side scrolling on FF with DOMMouseScroll\n if ( 'axis' in event && event.axis === event.HORIZONTAL_AXIS ) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in event) { pY = event.deltaY; }\n if ('deltaX' in event) { pX = event.deltaX; }\n\n if ((pX || pY) && event.deltaMode) {\n if (event.deltaMode == 1) { // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else { // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) { sX = (pX < 1) ? -1 : 1; }\n if (pY && !sY) { sY = (pY < 1) ? -1 : 1; }\n\n return { spinX : sX,\n spinY : sY,\n pixelX : pX,\n pixelY : pY };\n}\n\n\n/**\n * The best combination if you prefer spinX + spinY normalization. It favors\n * the older DOMMouseScroll for Firefox, as FF does not include wheelDelta with\n * 'wheel' event, making spin speed determination impossible.\n */\nnormalizeWheel.getEventType = function() /*string*/ {\n return (UserAgent_DEPRECATED.firefox())\n ? 'DOMMouseScroll'\n : (isEventSupported('wheel'))\n ? 'wheel'\n : 'mousewheel';\n};\n\nmodule.exports = normalizeWheel;\n","module.exports = require('./src/normalizeWheel.js');\n","\nexport default function quickselect(arr, k, left, right, compare) {\n quickselectStep(arr, k, left || 0, right || (arr.length - 1), compare || defaultCompare);\n}\n\nfunction quickselectStep(arr, k, left, right, compare) {\n\n while (right > left) {\n if (right - left > 600) {\n var n = right - left + 1;\n var m = k - left + 1;\n var z = Math.log(n);\n var s = 0.5 * Math.exp(2 * z / 3);\n var sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n var newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n var newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselectStep(arr, k, newLeft, newRight, compare);\n }\n\n var t = arr[k];\n var i = left;\n var j = right;\n\n swap(arr, left, k);\n if (compare(arr[right], t) > 0) swap(arr, left, right);\n\n while (i < j) {\n swap(arr, i, j);\n i++;\n j--;\n while (compare(arr[i], t) < 0) i++;\n while (compare(arr[j], t) > 0) j--;\n }\n\n if (compare(arr[left], t) === 0) swap(arr, left, j);\n else {\n j++;\n swap(arr, j, right);\n }\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n}\n\nfunction swap(arr, i, j) {\n var tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n}\n\nfunction defaultCompare(a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n}\n","import quickselect from 'quickselect';\n\nexport default class RBush {\n constructor(maxEntries = 9) {\n // max entries in a node is 9 by default; min node fill is 40% for best performance\n this._maxEntries = Math.max(4, maxEntries);\n this._minEntries = Math.max(2, Math.ceil(this._maxEntries * 0.4));\n this.clear();\n }\n\n all() {\n return this._all(this.data, []);\n }\n\n search(bbox) {\n let node = this.data;\n const result = [];\n\n if (!intersects(bbox, node)) return result;\n\n const toBBox = this.toBBox;\n const nodesToSearch = [];\n\n while (node) {\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n const childBBox = node.leaf ? toBBox(child) : child;\n\n if (intersects(bbox, childBBox)) {\n if (node.leaf) result.push(child);\n else if (contains(bbox, childBBox)) this._all(child, result);\n else nodesToSearch.push(child);\n }\n }\n node = nodesToSearch.pop();\n }\n\n return result;\n }\n\n collides(bbox) {\n let node = this.data;\n\n if (!intersects(bbox, node)) return false;\n\n const nodesToSearch = [];\n while (node) {\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n const childBBox = node.leaf ? this.toBBox(child) : child;\n\n if (intersects(bbox, childBBox)) {\n if (node.leaf || contains(bbox, childBBox)) return true;\n nodesToSearch.push(child);\n }\n }\n node = nodesToSearch.pop();\n }\n\n return false;\n }\n\n load(data) {\n if (!(data && data.length)) return this;\n\n if (data.length < this._minEntries) {\n for (let i = 0; i < data.length; i++) {\n this.insert(data[i]);\n }\n return this;\n }\n\n // recursively build the tree with the given data from scratch using OMT algorithm\n let node = this._build(data.slice(), 0, data.length - 1, 0);\n\n if (!this.data.children.length) {\n // save as is if tree is empty\n this.data = node;\n\n } else if (this.data.height === node.height) {\n // split root if trees have the same height\n this._splitRoot(this.data, node);\n\n } else {\n if (this.data.height < node.height) {\n // swap trees if inserted one is bigger\n const tmpNode = this.data;\n this.data = node;\n node = tmpNode;\n }\n\n // insert the small tree into the large tree at appropriate level\n this._insert(node, this.data.height - node.height - 1, true);\n }\n\n return this;\n }\n\n insert(item) {\n if (item) this._insert(item, this.data.height - 1);\n return this;\n }\n\n clear() {\n this.data = createNode([]);\n return this;\n }\n\n remove(item, equalsFn) {\n if (!item) return this;\n\n let node = this.data;\n const bbox = this.toBBox(item);\n const path = [];\n const indexes = [];\n let i, parent, goingUp;\n\n // depth-first iterative tree traversal\n while (node || path.length) {\n\n if (!node) { // go up\n node = path.pop();\n parent = path[path.length - 1];\n i = indexes.pop();\n goingUp = true;\n }\n\n if (node.leaf) { // check current node\n const index = findItem(item, node.children, equalsFn);\n\n if (index !== -1) {\n // item found, remove the item and condense tree upwards\n node.children.splice(index, 1);\n path.push(node);\n this._condense(path);\n return this;\n }\n }\n\n if (!goingUp && !node.leaf && contains(node, bbox)) { // go down\n path.push(node);\n indexes.push(i);\n i = 0;\n parent = node;\n node = node.children[0];\n\n } else if (parent) { // go right\n i++;\n node = parent.children[i];\n goingUp = false;\n\n } else node = null; // nothing found\n }\n\n return this;\n }\n\n toBBox(item) { return item; }\n\n compareMinX(a, b) { return a.minX - b.minX; }\n compareMinY(a, b) { return a.minY - b.minY; }\n\n toJSON() { return this.data; }\n\n fromJSON(data) {\n this.data = data;\n return this;\n }\n\n _all(node, result) {\n const nodesToSearch = [];\n while (node) {\n if (node.leaf) result.push(...node.children);\n else nodesToSearch.push(...node.children);\n\n node = nodesToSearch.pop();\n }\n return result;\n }\n\n _build(items, left, right, height) {\n\n const N = right - left + 1;\n let M = this._maxEntries;\n let node;\n\n if (N <= M) {\n // reached leaf level; return leaf\n node = createNode(items.slice(left, right + 1));\n calcBBox(node, this.toBBox);\n return node;\n }\n\n if (!height) {\n // target height of the bulk-loaded tree\n height = Math.ceil(Math.log(N) / Math.log(M));\n\n // target number of root entries to maximize storage utilization\n M = Math.ceil(N / Math.pow(M, height - 1));\n }\n\n node = createNode([]);\n node.leaf = false;\n node.height = height;\n\n // split the items into M mostly square tiles\n\n const N2 = Math.ceil(N / M);\n const N1 = N2 * Math.ceil(Math.sqrt(M));\n\n multiSelect(items, left, right, N1, this.compareMinX);\n\n for (let i = left; i <= right; i += N1) {\n\n const right2 = Math.min(i + N1 - 1, right);\n\n multiSelect(items, i, right2, N2, this.compareMinY);\n\n for (let j = i; j <= right2; j += N2) {\n\n const right3 = Math.min(j + N2 - 1, right2);\n\n // pack each entry recursively\n node.children.push(this._build(items, j, right3, height - 1));\n }\n }\n\n calcBBox(node, this.toBBox);\n\n return node;\n }\n\n _chooseSubtree(bbox, node, level, path) {\n while (true) {\n path.push(node);\n\n if (node.leaf || path.length - 1 === level) break;\n\n let minArea = Infinity;\n let minEnlargement = Infinity;\n let targetNode;\n\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n const area = bboxArea(child);\n const enlargement = enlargedArea(bbox, child) - area;\n\n // choose entry with the least area enlargement\n if (enlargement < minEnlargement) {\n minEnlargement = enlargement;\n minArea = area < minArea ? area : minArea;\n targetNode = child;\n\n } else if (enlargement === minEnlargement) {\n // otherwise choose one with the smallest area\n if (area < minArea) {\n minArea = area;\n targetNode = child;\n }\n }\n }\n\n node = targetNode || node.children[0];\n }\n\n return node;\n }\n\n _insert(item, level, isNode) {\n const bbox = isNode ? item : this.toBBox(item);\n const insertPath = [];\n\n // find the best node for accommodating the item, saving all nodes along the path too\n const node = this._chooseSubtree(bbox, this.data, level, insertPath);\n\n // put the item into the node\n node.children.push(item);\n extend(node, bbox);\n\n // split on node overflow; propagate upwards if necessary\n while (level >= 0) {\n if (insertPath[level].children.length > this._maxEntries) {\n this._split(insertPath, level);\n level--;\n } else break;\n }\n\n // adjust bboxes along the insertion path\n this._adjustParentBBoxes(bbox, insertPath, level);\n }\n\n // split overflowed node into two\n _split(insertPath, level) {\n const node = insertPath[level];\n const M = node.children.length;\n const m = this._minEntries;\n\n this._chooseSplitAxis(node, m, M);\n\n const splitIndex = this._chooseSplitIndex(node, m, M);\n\n const newNode = createNode(node.children.splice(splitIndex, node.children.length - splitIndex));\n newNode.height = node.height;\n newNode.leaf = node.leaf;\n\n calcBBox(node, this.toBBox);\n calcBBox(newNode, this.toBBox);\n\n if (level) insertPath[level - 1].children.push(newNode);\n else this._splitRoot(node, newNode);\n }\n\n _splitRoot(node, newNode) {\n // split root node\n this.data = createNode([node, newNode]);\n this.data.height = node.height + 1;\n this.data.leaf = false;\n calcBBox(this.data, this.toBBox);\n }\n\n _chooseSplitIndex(node, m, M) {\n let index;\n let minOverlap = Infinity;\n let minArea = Infinity;\n\n for (let i = m; i <= M - m; i++) {\n const bbox1 = distBBox(node, 0, i, this.toBBox);\n const bbox2 = distBBox(node, i, M, this.toBBox);\n\n const overlap = intersectionArea(bbox1, bbox2);\n const area = bboxArea(bbox1) + bboxArea(bbox2);\n\n // choose distribution with minimum overlap\n if (overlap < minOverlap) {\n minOverlap = overlap;\n index = i;\n\n minArea = area < minArea ? area : minArea;\n\n } else if (overlap === minOverlap) {\n // otherwise choose distribution with minimum area\n if (area < minArea) {\n minArea = area;\n index = i;\n }\n }\n }\n\n return index || M - m;\n }\n\n // sorts node children by the best axis for split\n _chooseSplitAxis(node, m, M) {\n const compareMinX = node.leaf ? this.compareMinX : compareNodeMinX;\n const compareMinY = node.leaf ? this.compareMinY : compareNodeMinY;\n const xMargin = this._allDistMargin(node, m, M, compareMinX);\n const yMargin = this._allDistMargin(node, m, M, compareMinY);\n\n // if total distributions margin value is minimal for x, sort by minX,\n // otherwise it's already sorted by minY\n if (xMargin < yMargin) node.children.sort(compareMinX);\n }\n\n // total margin of all possible split distributions where each node is at least m full\n _allDistMargin(node, m, M, compare) {\n node.children.sort(compare);\n\n const toBBox = this.toBBox;\n const leftBBox = distBBox(node, 0, m, toBBox);\n const rightBBox = distBBox(node, M - m, M, toBBox);\n let margin = bboxMargin(leftBBox) + bboxMargin(rightBBox);\n\n for (let i = m; i < M - m; i++) {\n const child = node.children[i];\n extend(leftBBox, node.leaf ? toBBox(child) : child);\n margin += bboxMargin(leftBBox);\n }\n\n for (let i = M - m - 1; i >= m; i--) {\n const child = node.children[i];\n extend(rightBBox, node.leaf ? toBBox(child) : child);\n margin += bboxMargin(rightBBox);\n }\n\n return margin;\n }\n\n _adjustParentBBoxes(bbox, path, level) {\n // adjust bboxes along the given tree path\n for (let i = level; i >= 0; i--) {\n extend(path[i], bbox);\n }\n }\n\n _condense(path) {\n // go through the path, removing empty nodes and updating bboxes\n for (let i = path.length - 1, siblings; i >= 0; i--) {\n if (path[i].children.length === 0) {\n if (i > 0) {\n siblings = path[i - 1].children;\n siblings.splice(siblings.indexOf(path[i]), 1);\n\n } else this.clear();\n\n } else calcBBox(path[i], this.toBBox);\n }\n }\n}\n\nfunction findItem(item, items, equalsFn) {\n if (!equalsFn) return items.indexOf(item);\n\n for (let i = 0; i < items.length; i++) {\n if (equalsFn(item, items[i])) return i;\n }\n return -1;\n}\n\n// calculate node's bbox from bboxes of its children\nfunction calcBBox(node, toBBox) {\n distBBox(node, 0, node.children.length, toBBox, node);\n}\n\n// min bounding rectangle of node children from k to p-1\nfunction distBBox(node, k, p, toBBox, destNode) {\n if (!destNode) destNode = createNode(null);\n destNode.minX = Infinity;\n destNode.minY = Infinity;\n destNode.maxX = -Infinity;\n destNode.maxY = -Infinity;\n\n for (let i = k; i < p; i++) {\n const child = node.children[i];\n extend(destNode, node.leaf ? toBBox(child) : child);\n }\n\n return destNode;\n}\n\nfunction extend(a, b) {\n a.minX = Math.min(a.minX, b.minX);\n a.minY = Math.min(a.minY, b.minY);\n a.maxX = Math.max(a.maxX, b.maxX);\n a.maxY = Math.max(a.maxY, b.maxY);\n return a;\n}\n\nfunction compareNodeMinX(a, b) { return a.minX - b.minX; }\nfunction compareNodeMinY(a, b) { return a.minY - b.minY; }\n\nfunction bboxArea(a) { return (a.maxX - a.minX) * (a.maxY - a.minY); }\nfunction bboxMargin(a) { return (a.maxX - a.minX) + (a.maxY - a.minY); }\n\nfunction enlargedArea(a, b) {\n return (Math.max(b.maxX, a.maxX) - Math.min(b.minX, a.minX)) *\n (Math.max(b.maxY, a.maxY) - Math.min(b.minY, a.minY));\n}\n\nfunction intersectionArea(a, b) {\n const minX = Math.max(a.minX, b.minX);\n const minY = Math.max(a.minY, b.minY);\n const maxX = Math.min(a.maxX, b.maxX);\n const maxY = Math.min(a.maxY, b.maxY);\n\n return Math.max(0, maxX - minX) *\n Math.max(0, maxY - minY);\n}\n\nfunction contains(a, b) {\n return a.minX <= b.minX &&\n a.minY <= b.minY &&\n b.maxX <= a.maxX &&\n b.maxY <= a.maxY;\n}\n\nfunction intersects(a, b) {\n return b.minX <= a.maxX &&\n b.minY <= a.maxY &&\n b.maxX >= a.minX &&\n b.maxY >= a.minY;\n}\n\nfunction createNode(children) {\n return {\n children,\n height: 1,\n leaf: true,\n minX: Infinity,\n minY: Infinity,\n maxX: -Infinity,\n maxY: -Infinity\n };\n}\n\n// sort an array so that items come in groups of n unsorted items, with groups sorted between each other;\n// combines selection algorithm with binary divide & conquer approach\n\nfunction multiSelect(arr, left, right, n, compare) {\n const stack = [left, right];\n\n while (stack.length) {\n right = stack.pop();\n left = stack.pop();\n\n if (right - left <= n) continue;\n\n const mid = left + Math.ceil((right - left) / n / 2) * n;\n quickselect(arr, mid, left, right, compare);\n\n stack.push(left, mid, mid, right);\n }\n}\n","import React from 'react';\nimport { Dialog, DialogTitle, DialogContent } from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport { Attributes } from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail';\nexport default observer(function (_a) {\n var info = _a.info, onClose = _a.onClose;\n return (React.createElement(Dialog, { onClose: function () { return onClose(); }, open: true },\n React.createElement(DialogTitle, null, \"Metadata\"),\n React.createElement(DialogContent, null,\n React.createElement(Attributes, { attributes: info }))));\n});\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React, { useEffect, useRef, useState } from 'react';\nimport { Menu, MenuItem } from '@material-ui/core';\nimport normalizeWheel from 'normalize-wheel';\nimport { observer } from 'mobx-react';\nimport RBush from 'rbush';\nimport MoreInfoDlg from './MoreInfoDlg';\nvar extendBounds = 5;\nvar radius = 3.5;\nvar d = radius * 2;\nvar padding = 600;\nvar TreeMenu = observer(function (_a) {\n var _b, _c;\n var node = _a.node, onClose = _a.onClose, model = _a.model;\n var structures = model.structures;\n var nodeDetails = node ? model.getRowDetails(node.name) : undefined;\n return (React.createElement(React.Fragment, null,\n React.createElement(Menu, { anchorReference: \"anchorPosition\", anchorPosition: {\n top: node.y,\n left: node.x,\n }, transitionDuration: 0, keepMounted: true, open: Boolean(node), onClose: onClose },\n React.createElement(MenuItem, { dense: true, disabled: true }, node.name),\n React.createElement(MenuItem, { dense: true, onClick: function () {\n model.setDialogComponent(MoreInfoDlg, {\n info: model.getRowDetails(node.name),\n });\n onClose();\n } }, \"More info...\"), (_b = structures[node.name]) === null || _b === void 0 ? void 0 :\n _b.map(function (entry) {\n return !model.selectedStructures.find(function (n) { return n.id === node.name; }) ? (React.createElement(MenuItem, { key: JSON.stringify(entry), dense: true, onClick: function () {\n model.addStructureToSelection({\n structure: entry,\n id: node.name,\n });\n onClose();\n } },\n \"Add PDB to selection (\",\n entry.pdb,\n \")\")) : (React.createElement(MenuItem, { key: JSON.stringify(entry), dense: true, onClick: function () {\n model.removeStructureFromSelection({\n structure: entry,\n id: node.name,\n });\n onClose();\n } },\n \"Remove PDB from selection (\",\n entry.pdb,\n \")\"));\n }), (_c = nodeDetails.accession) === null || _c === void 0 ? void 0 :\n _c.map(function (accession) { return (React.createElement(MenuItem, { dense: true, key: accession, onClick: function () {\n model.addUniprotTrack({ name: nodeDetails.name, accession: accession });\n onClose();\n } },\n \"Open UniProt track (\",\n accession,\n \")\")); }))));\n});\nvar TreeBranchMenu = observer(function (_a) {\n var node = _a.node, model = _a.model, onClose = _a.onClose;\n return (React.createElement(Menu, { anchorReference: \"anchorPosition\", anchorPosition: {\n left: node.x,\n top: node.y,\n }, transitionDuration: 0, keepMounted: true, open: Boolean(node), onClose: onClose },\n React.createElement(MenuItem, { dense: true, disabled: true }, node.name),\n React.createElement(MenuItem, { dense: true, onClick: function () {\n model.toggleCollapsed(node.id);\n onClose();\n } }, model.collapsed.includes(node.id)\n ? 'Expand this node'\n : 'Collapse this node'),\n React.createElement(MenuItem, { dense: true, onClick: function () {\n model.showOnly === node.id\n ? model.setShowOnly(undefined)\n : model.setShowOnly(node.id);\n onClose();\n } }, model.showOnly === node.id\n ? 'Disable show only this node'\n : 'Show only this node')));\n});\nvar TreeBlock = observer(function (_a) {\n var model = _a.model, offsetY = _a.offsetY;\n var ref = useRef(null);\n var clickMap = useRef(new RBush());\n var mouseoverRef = useRef(null);\n var _b = useState(), branchMenu = _b[0], setBranchMenu = _b[1];\n var _c = useState(), toggleNodeMenu = _c[0], setToggleNodeMenu = _c[1];\n var _d = useState(), hoverElt = _d[0], setHoverElt = _d[1];\n var hierarchy = model.hierarchy, rowHeight = model.rowHeight, scrollY = model.scrollY, treeWidth = model.treeWidth, showBranchLen = model.showBranchLen, collapsed = model.collapsed, margin = model.margin, labelsAlignRight = model.labelsAlignRight, noTree = model.noTree, blockSize = model.blockSize, drawNodeBubbles = model.drawNodeBubbles, drawTree = model.drawTree, treeAreaWidth = model.treeAreaWidth, structures = model.structures, highResScaleFactor = model.highResScaleFactor;\n useEffect(function () {\n clickMap.current.clear();\n if (!ref.current) {\n return;\n }\n var ctx = ref.current.getContext('2d');\n if (!ctx) {\n return;\n }\n ctx.resetTransform();\n ctx.scale(highResScaleFactor, highResScaleFactor);\n ctx.clearRect(0, 0, treeWidth + padding, blockSize);\n ctx.translate(margin.left, -offsetY);\n var font = ctx.font;\n ctx.font = font.replace(/\\d+px/, \"\".concat(Math.max(8, rowHeight - 8), \"px\"));\n if (!noTree && drawTree) {\n hierarchy.links().forEach(function (_a) {\n var source = _a.source, target = _a.target;\n var y = showBranchLen ? 'len' : 'y';\n //@ts-ignore\n var _b = source, sy = _b.x, _c = y, sx = _b[_c];\n //@ts-ignore\n var _d = target, ty = _d.x, _e = y, tx = _d[_e];\n var y1 = Math.min(sy, ty);\n var y2 = Math.max(sy, ty);\n //1d line intersection to check if line crosses block at all, this is\n //an optimization that allows us to skip drawing most tree links\n //outside the block\n if (offsetY + blockSize >= y1 && y2 >= offsetY) {\n ctx.beginPath();\n ctx.moveTo(sx, sy);\n ctx.lineTo(sx, ty);\n ctx.lineTo(tx, ty);\n ctx.stroke();\n }\n });\n if (drawNodeBubbles) {\n hierarchy.descendants().forEach(function (node) {\n var val = showBranchLen ? 'len' : 'y';\n var _a = node, \n //@ts-ignore\n y = _a.x, \n //@ts-ignore\n _b = val, \n //@ts-ignore\n x = _a[_b], data = _a.data;\n var _c = data.id, id = _c === void 0 ? '' : _c, _d = data.name, name = _d === void 0 ? '' : _d;\n if (y > offsetY - extendBounds &&\n y < offsetY + blockSize + extendBounds) {\n ctx.strokeStyle = 'black';\n ctx.fillStyle = collapsed.includes(id) ? 'black' : 'white';\n ctx.beginPath();\n ctx.arc(x, y, radius, 0, 2 * Math.PI);\n ctx.fill();\n ctx.stroke();\n clickMap.current.insert({\n minX: x - radius,\n maxX: x - radius + d,\n minY: y - radius,\n maxY: y - radius + d,\n branch: true,\n id: id,\n name: name,\n });\n }\n });\n }\n }\n if (rowHeight >= 10) {\n if (labelsAlignRight) {\n ctx.textAlign = 'right';\n ctx.setLineDash([1, 3]);\n }\n else {\n ctx.textAlign = 'start';\n }\n hierarchy.leaves().forEach(function (node) {\n var \n //@ts-ignore\n y = node.x, \n //@ts-ignore\n x = node.y, _a = node.data, name = _a.name, id = _a.id, \n //@ts-ignore\n len = node.len;\n if (y > offsetY - extendBounds &&\n y < offsetY + blockSize + extendBounds) {\n //note: +rowHeight/4 matches with -rowHeight/4 in msa\n var yp = y + rowHeight / 4;\n var xp = showBranchLen ? len : x;\n var width = ctx.measureText(name).width;\n var height = ctx.measureText('M').width; // use an 'em' for height\n var hasStructure = structures[name];\n ctx.fillStyle = hasStructure ? 'blue' : 'black';\n if (!drawTree && !labelsAlignRight) {\n ctx.fillText(name, 0, yp);\n clickMap.current.insert({\n minX: 0,\n maxX: width,\n minY: yp - height,\n maxY: yp,\n name: name,\n id: id,\n });\n }\n else if (labelsAlignRight) {\n var smallPadding = 2;\n var offset = treeAreaWidth - smallPadding - margin.left;\n if (drawTree && !noTree) {\n var width_1 = ctx.measureText(name).width;\n ctx.moveTo(xp + radius + 2, y);\n ctx.lineTo(offset - smallPadding - width_1, y);\n ctx.stroke();\n }\n ctx.fillText(name, offset, yp);\n clickMap.current.insert({\n minX: treeAreaWidth - margin.left - width,\n maxX: treeAreaWidth - margin.left,\n minY: yp - height,\n maxY: yp,\n name: name,\n id: id,\n });\n }\n else {\n ctx.fillText(name, xp + d, yp);\n clickMap.current.insert({\n minX: xp + d,\n maxX: xp + d + width,\n minY: yp - height,\n maxY: yp,\n name: name,\n id: id,\n });\n }\n }\n });\n ctx.setLineDash([]);\n }\n }, [\n collapsed,\n rowHeight,\n margin.left,\n hierarchy,\n offsetY,\n treeWidth,\n showBranchLen,\n noTree,\n blockSize,\n drawNodeBubbles,\n drawTree,\n labelsAlignRight,\n treeAreaWidth,\n structures,\n highResScaleFactor,\n ]);\n useEffect(function () {\n var canvas = mouseoverRef.current;\n if (!canvas) {\n return;\n }\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return;\n }\n ctx.resetTransform();\n ctx.clearRect(0, 0, treeWidth + padding, blockSize);\n ctx.translate(margin.left, -offsetY);\n if (hoverElt) {\n var minX = hoverElt.minX, maxX = hoverElt.maxX, minY = hoverElt.minY, maxY = hoverElt.maxY;\n ctx.fillStyle = 'rgba(0,0,0,0.1)';\n ctx.fillRect(minX, minY, maxX - minX, maxY - minY);\n }\n }, [hoverElt, margin.left, offsetY, blockSize, treeWidth]);\n function hoverBranchClickMap(event) {\n var x = event.nativeEvent.offsetX - margin.left;\n var y = event.nativeEvent.offsetY;\n var entry = clickMap.current.search({\n minX: x,\n maxX: x + 1,\n minY: y + offsetY,\n maxY: y + 1 + offsetY,\n })[0];\n return entry && entry.branch\n ? __assign(__assign({}, entry), { x: event.clientX, y: event.clientY }) : undefined;\n }\n function hoverNameClickMap(event) {\n var x = event.nativeEvent.offsetX - margin.left;\n var y = event.nativeEvent.offsetY;\n var entry = clickMap.current.search({\n minX: x,\n maxX: x + 1,\n minY: y + offsetY,\n maxY: y + 1 + offsetY,\n })[0];\n return entry && !entry.branch\n ? __assign(__assign({}, entry), { x: event.clientX, y: event.clientY }) : undefined;\n }\n return (React.createElement(React.Fragment, null,\n (branchMenu === null || branchMenu === void 0 ? void 0 : branchMenu.id) ? (React.createElement(TreeBranchMenu, { node: branchMenu, model: model, onClose: function () { return setBranchMenu(undefined); } })) : null,\n (toggleNodeMenu === null || toggleNodeMenu === void 0 ? void 0 : toggleNodeMenu.id) ? (React.createElement(TreeMenu, { node: toggleNodeMenu, model: model, onClose: function () { return setToggleNodeMenu(undefined); } })) : null,\n React.createElement(\"canvas\", { width: (treeWidth + padding) * highResScaleFactor, height: blockSize * highResScaleFactor, style: {\n width: treeWidth + padding,\n height: blockSize,\n top: scrollY + offsetY,\n left: 0,\n position: 'absolute',\n }, onMouseMove: function (event) {\n if (!ref.current) {\n return;\n }\n var ret = hoverNameClickMap(event) || hoverBranchClickMap(event);\n if (ret) {\n ref.current.style.cursor = 'pointer';\n }\n else {\n ref.current.style.cursor = 'default';\n }\n setHoverElt(hoverNameClickMap(event));\n }, onClick: function (event) {\n var x = event.clientX, y = event.clientY;\n var data = hoverBranchClickMap(event);\n if (data === null || data === void 0 ? void 0 : data.id) {\n setBranchMenu(__assign(__assign({}, data), { x: x, y: y }));\n }\n var data2 = hoverNameClickMap(event);\n if (data2 === null || data2 === void 0 ? void 0 : data2.id) {\n setToggleNodeMenu(__assign(__assign({}, data2), { x: x, y: y }));\n }\n }, ref: ref }),\n React.createElement(\"canvas\", { style: {\n width: treeWidth + padding,\n height: blockSize,\n top: scrollY + offsetY,\n left: 0,\n position: 'absolute',\n pointerEvents: 'none',\n zIndex: 100,\n }, width: treeWidth + padding, height: blockSize, ref: mouseoverRef })));\n});\nvar TreeCanvas = observer(function (_a) {\n var model = _a.model;\n var ref = useRef(null);\n var scheduled = useRef(false);\n var deltaY = useRef(0);\n var prevY = useRef(0);\n var treeWidth = model.treeWidth, height = model.height, blocksY = model.blocksY;\n var _b = useState(false), mouseDragging = _b[0], setMouseDragging = _b[1];\n useEffect(function () {\n var curr = ref.current;\n if (!curr) {\n return;\n }\n function onWheel(origEvent) {\n var event = normalizeWheel(origEvent);\n deltaY.current += event.pixelY;\n if (!scheduled.current) {\n scheduled.current = true;\n requestAnimationFrame(function () {\n model.doScrollY(-deltaY.current);\n deltaY.current = 0;\n scheduled.current = false;\n });\n }\n origEvent.preventDefault();\n }\n curr.addEventListener('wheel', onWheel);\n return function () {\n curr.removeEventListener('wheel', onWheel);\n };\n }, [model]);\n useEffect(function () {\n var cleanup = function () { };\n function globalMouseMove(event) {\n event.preventDefault();\n var currY = event.clientY;\n var distanceY = currY - prevY.current;\n if (distanceY) {\n // use rAF to make it so multiple event handlers aren't fired per-frame\n // see https://calendar.perfplanet.com/2013/the-runtime-performance-checklist/\n if (!scheduled.current) {\n scheduled.current = true;\n window.requestAnimationFrame(function () {\n model.doScrollY(distanceY);\n scheduled.current = false;\n prevY.current = event.clientY;\n });\n }\n }\n }\n function globalMouseUp() {\n prevY.current = 0;\n if (mouseDragging) {\n setMouseDragging(false);\n }\n }\n if (mouseDragging) {\n window.addEventListener('mousemove', globalMouseMove, true);\n window.addEventListener('mouseup', globalMouseUp, true);\n cleanup = function () {\n window.removeEventListener('mousemove', globalMouseMove, true);\n window.removeEventListener('mouseup', globalMouseUp, true);\n };\n }\n return cleanup;\n }, [model, mouseDragging]);\n function mouseDown(event) {\n // check if clicking a draggable element or a resize handle\n var target = event.target;\n if (target.draggable || target.dataset.resizer) {\n return;\n }\n // otherwise do click and drag scroll\n if (event.button === 0) {\n prevY.current = event.clientY;\n setMouseDragging(true);\n }\n }\n // this local mouseup is used in addition to the global because sometimes\n // the global add/remove are not called in time, resulting in issue #533\n function mouseUp(event) {\n event.preventDefault();\n setMouseDragging(false);\n }\n function mouseLeave(event) {\n event.preventDefault();\n }\n return (React.createElement(\"div\", { ref: ref, onMouseDown: mouseDown, onMouseUp: mouseUp, onMouseLeave: mouseLeave, style: {\n height: height,\n position: 'relative',\n overflow: 'hidden',\n width: treeWidth + padding,\n } }, blocksY.map(function (block) { return (React.createElement(TreeBlock, { key: block, model: model, offsetY: block })); })));\n});\nexport default TreeCanvas;\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = {};\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\nvar cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","var conversions = require('./conversions');\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","var conversions = require('./conversions');\nvar route = require('./route');\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","'use strict';\n\nvar colorString = require('color-string');\nvar convert = require('color-convert');\n\nvar _slice = [].slice;\n\nvar skippedModels = [\n\t// to be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// shouldn't really be in color-convert either...\n\t'hex'\n];\n\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nfunction Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tvar i;\n\tvar channels;\n\n\tif (obj == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tvar limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray: function () {\n\t\tvar rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject: function () {\n\t\tvar rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix: function (mixinColor, weight) {\n\t\t// ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n\nmodule.exports = Color;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport Color from 'color';\nexport function transform(obj, cb) {\n return Object.fromEntries(Object.entries(obj).map(cb));\n}\nexport function generateNodeIds(tree, parent, depth) {\n var _a;\n if (parent === void 0) { parent = 'node'; }\n if (depth === void 0) { depth = 0; }\n var id = \"\".concat(parent, \"-\").concat(depth);\n return __assign(__assign({}, tree), { id: id, branchset: ((_a = tree.branchset) === null || _a === void 0 ? void 0 : _a.map(function (b, i) {\n return generateNodeIds(b, \"\".concat(id, \"-\").concat(i), depth + 1);\n })) || [] });\n}\nexport function colorContrast(colorScheme, theme) {\n return transform(colorScheme, function (_a) {\n var letter = _a[0], color = _a[1];\n return [\n letter,\n theme.palette.getContrastText(Color(color).hex()),\n ];\n });\n}\n","import Color from 'color';\nimport { transform } from './util';\nvar colorSchemes = {\n clustal: {\n G: 'orange',\n P: 'orange',\n S: 'orange',\n T: 'orange',\n H: 'red',\n K: 'red',\n R: 'red',\n F: 'blue',\n W: 'blue',\n Y: 'blue',\n I: 'green',\n L: 'green',\n M: 'green',\n V: 'green',\n },\n lesk: {\n G: 'orange',\n A: 'orange',\n S: 'orange',\n T: 'orange',\n C: 'green',\n V: 'green',\n I: 'green',\n L: 'green',\n P: 'green',\n F: 'green',\n Y: 'green',\n M: 'green',\n W: 'green',\n N: 'magenta',\n Q: 'magenta',\n H: 'magenta',\n D: 'red',\n E: 'red',\n K: 'blue',\n R: 'blue',\n },\n maeditor: {\n A: 'lightgreen',\n G: 'lightgreen',\n C: 'green',\n D: 'darkgreen',\n E: 'darkgreen',\n N: 'darkgreen',\n Q: 'darkgreen',\n I: 'blue',\n L: 'blue',\n M: 'blue',\n V: 'blue',\n F: '#c8a2c8',\n W: '#c8a2c8',\n Y: '#c8a2c8',\n H: 'darkblue',\n K: 'orange',\n R: 'orange',\n P: 'pink',\n S: 'red',\n T: 'red',\n },\n percent_identity_dynamic: {},\n //https://github.com/biotite-dev/biotite/blob/8c460972f8ab904312f130dfb80f3efc8c9bd7c5/src/biotite/sequence/graphics/color_schemes/flower.json\n flower: {\n A: '#b18a51',\n C: '#ff5701',\n D: '#01a578',\n E: '#2da0a1',\n F: '#fa559d',\n G: '#b1c23c',\n H: '#0194f9',\n I: '#f27663',\n K: '#7fc3d7',\n L: '#df6e75',\n M: '#fe9daf',\n N: '#0bcec6',\n P: '#4fa32a',\n Q: '#7295ae',\n R: '#83bff1',\n S: '#b4bd9b',\n T: '#d2b576',\n V: '#fd997b',\n W: '#ff2ded',\n Y: '#c96ecf',\n },\n rainbow_dna: {\n A: '#3737f5',\n C: '#37f537',\n G: '#f5f537',\n T: '#f53737',\n U: '#f53737',\n },\n //https://github.com/biotite-dev/biotite/blob/8c460972f8ab904312f130dfb80f3efc8c9bd7c5/src/biotite/sequence/graphics/color_schemes/clustalx_protein.json\n clustalx_protein: {\n A: '#197fe5',\n C: '#e57f7f',\n D: '#cc4ccc',\n E: '#cc4ccc',\n F: '#197fe5',\n G: '#e5994c',\n H: '#19b2b2',\n I: '#197fe5',\n K: '#e53319',\n L: '#197fe5',\n M: '#197fe5',\n N: '#19cc19',\n P: '#cccc00',\n Q: '#19cc19',\n R: '#e53319',\n S: '#19cc19',\n T: '#19cc19',\n V: '#197fe5',\n W: '#197fe5',\n Y: '#19b2b2',\n },\n // this has special handling\n clustalx_protein_dynamic: {},\n clustalx_dna: {\n A: '#e53319',\n C: '#197fe5',\n G: '#e5994c',\n T: '#19cc19',\n U: '#19cc19',\n },\n jalview_buried: {\n A: '#00a35c',\n R: '#00fc03',\n N: '#00eb14',\n D: '#00eb14',\n C: '#0000ff',\n Q: '#00f10e',\n E: '#00f10e',\n G: '#009d62',\n H: '#00d52a',\n I: '#0054ab',\n L: '#007b84',\n K: '#00ff00',\n M: '#009768',\n F: '#008778',\n P: '#00e01f',\n S: '#00d52a',\n T: '#00db24',\n W: '#00a857',\n Y: '#00e619',\n V: '#005fa0',\n B: '#00eb14',\n X: '#00b649',\n Z: '#00f10e',\n },\n jalview_hydrophobicity: {\n A: '#ad0052',\n R: '#0000ff',\n N: '#0c00f3',\n D: '#0c00f3',\n C: '#c2003d',\n Q: '#0c00f3',\n E: '#0c00f3',\n G: '#6a0095',\n H: '#1500ea',\n I: '#ff0000',\n L: '#ea0015',\n K: '#0000ff',\n M: '#b0004f',\n F: '#cb0034',\n P: '#4600b9',\n S: '#5e00a1',\n T: '#61009e',\n W: '#5b00a4',\n Y: '#4f00b0',\n V: '#f60009',\n B: '#0c00f3',\n X: '#680097',\n Z: '#0c00f3',\n },\n jalview_prophelix: {\n A: '#e718e7',\n R: '#6f906f',\n N: '#1be41b',\n D: '#778877',\n C: '#23dc23',\n Q: '#926d92',\n E: '#ff00ff',\n G: '#00ff00',\n H: '#758a75',\n I: '#8a758a',\n L: '#ae51ae',\n K: '#a05fa0',\n M: '#ef10ef',\n F: '#986798',\n P: '#00ff00',\n S: '#36c936',\n T: '#47b847',\n W: '#8a758a',\n Y: '#21de21',\n V: '#857a85',\n B: '#49b649',\n X: '#758a75',\n Z: '#c936c9',\n },\n jalview_propstrand: {\n A: '#5858a7',\n R: '#6b6b94',\n N: '#64649b',\n D: '#2121de',\n C: '#9d9d62',\n Q: '#8c8c73',\n E: '#0000ff',\n G: '#4949b6',\n H: '#60609f',\n I: '#ecec13',\n L: '#b2b24d',\n K: '#4747b8',\n M: '#82827d',\n F: '#c2c23d',\n P: '#2323dc',\n S: '#4949b6',\n T: '#9d9d62',\n W: '#c0c03f',\n Y: '#d3d32c',\n V: '#ffff00',\n B: '#4343bc',\n X: '#797986',\n Z: '#4747b8',\n },\n jalview_propturn: {\n A: '#2cd3d3',\n R: '#708f8f',\n N: '#ff0000',\n D: '#e81717',\n C: '#a85757',\n Q: '#3fc0c0',\n E: '#778888',\n G: '#ff0000',\n H: '#708f8f',\n I: '#00ffff',\n L: '#1ce3e3',\n K: '#7e8181',\n M: '#1ee1e1',\n F: '#1ee1e1',\n P: '#f60909',\n S: '#e11e1e',\n T: '#738c8c',\n W: '#738c8c',\n Y: '#9d6262',\n V: '#07f8f8',\n B: '#f30c0c',\n X: '#7c8383',\n Z: '#5ba4a4',\n },\n jalview_taylor: {\n A: '#ccff00',\n R: '#0000ff',\n N: '#cc00ff',\n D: '#ff0000',\n C: '#ffff00',\n Q: '#ff00cc',\n E: '#ff0066',\n G: '#ff9900',\n H: '#0066ff',\n I: '#66ff00',\n L: '#33ff00',\n K: '#6600ff',\n M: '#00ff00',\n F: '#00ff66',\n P: '#ffcc00',\n S: '#ff3300',\n T: '#ff6600',\n W: '#00ccff',\n Y: '#00ffcc',\n V: '#99ff00',\n },\n jalview_zappo: {\n A: '#ffafaf',\n R: '#6464ff',\n N: '#00ff00',\n D: '#ff0000',\n C: '#ffff00',\n Q: '#00ff00',\n E: '#ff0000',\n G: '#ff00ff',\n H: '#6464ff',\n I: '#ffafaf',\n L: '#ffafaf',\n K: '#6464ff',\n M: '#ffafaf',\n F: '#ffc800',\n P: '#ff00ff',\n S: '#00ff00',\n T: '#00ff00',\n W: '#ffc800',\n Y: '#ffc800',\n V: '#ffafaf',\n },\n cinema: {\n H: 'blue',\n K: 'blue',\n R: 'blue',\n D: 'red',\n E: 'red',\n S: 'green',\n T: 'green',\n N: 'green',\n Q: 'green',\n A: 'white',\n V: 'white',\n L: 'white',\n I: 'white',\n M: 'white',\n F: 'magenta',\n W: 'magenta',\n Y: 'magenta',\n P: 'brown',\n G: 'brown',\n C: 'yellow',\n B: 'gray',\n Z: 'gray',\n X: 'gray',\n '-': 'gray',\n '.': 'gray',\n },\n};\n// turn all supplied colors to hex colors which getContrastText from mui\n// requires\nexport default transform(colorSchemes, function (_a) {\n var key = _a[0], val = _a[1];\n return [\n key,\n transform(val, function (_a) {\n var letter = _a[0], color = _a[1];\n return [letter, Color(color).hex()];\n }),\n ];\n});\n// info http://www.jalview.org/help/html/colourSchemes/clustal.html\n// modifications:\n// reference to clustalX source code scheme modifies what the jalview.org\n// scheme says there the jalview.org colorscheme says WLVIMAFCHP but it\n// should be WLVIMAFCHPY, colprot.xml says e.g. %#ACFHILMVWYPp\" which has Y\nexport function getClustalXColor(stats, model, row, col) {\n var total = Object.values(stats).reduce(function (a, b) { return a + b; }, 0);\n var l = model.columns[row][col];\n var _a = stats.W, W = _a === void 0 ? 0 : _a, _b = stats.L, L = _b === void 0 ? 0 : _b, _c = stats.V, V = _c === void 0 ? 0 : _c, _d = stats.I, I = _d === void 0 ? 0 : _d, _e = stats.M, M = _e === void 0 ? 0 : _e, _f = stats.A, A = _f === void 0 ? 0 : _f, _g = stats.F, F = _g === void 0 ? 0 : _g, _h = stats.C, C = _h === void 0 ? 0 : _h, _j = stats.H, H = _j === void 0 ? 0 : _j, _k = stats.P, P = _k === void 0 ? 0 : _k, _l = stats.R, R = _l === void 0 ? 0 : _l, _m = stats.K, K = _m === void 0 ? 0 : _m, _o = stats.Q, Q = _o === void 0 ? 0 : _o, _p = stats.E, E = _p === void 0 ? 0 : _p, _q = stats.D, D = _q === void 0 ? 0 : _q, _r = stats.T, T = _r === void 0 ? 0 : _r, _s = stats.S, S = _s === void 0 ? 0 : _s, _t = stats.G, G = _t === void 0 ? 0 : _t, _u = stats.Y, Y = _u === void 0 ? 0 : _u, _v = stats.N, N = _v === void 0 ? 0 : _v;\n var WLVIMAFCHP = W + L + V + I + M + A + F + C + H + P + Y;\n var KR = K + R;\n var QE = Q + E;\n var ED = E + D;\n var TS = T + S;\n if (WLVIMAFCHP / total > 0.6) {\n if (l === 'W' ||\n l === 'L' ||\n l === 'V' ||\n l === 'A' ||\n l === 'I' ||\n l === 'M' ||\n l === 'F' ||\n l === 'C') {\n // blue from jalview.org docs\n return 'rgb(128,179,230)';\n }\n }\n if ((l === 'K' || l === 'R') &&\n (KR / total > 0.6 || K / total > 0.8 || R / total > 0.8 || Q / total > 0.8)) {\n return '#d88';\n }\n if (l === 'E' &&\n (KR / total > 0.6 ||\n QE / total > 0.5 ||\n E / total > 0.8 ||\n Q / total > 0.8 ||\n D / total > 0.8)) {\n return 'rgb(192, 72, 192)';\n }\n if (l === 'D' &&\n (KR / total > 0.6 ||\n ED / total > 0.5 ||\n K / total > 0.8 ||\n R / total > 0.8 ||\n Q / total > 0.8)) {\n return 'rgb(204, 77, 204)';\n }\n if (l === 'N' && (N / total > 0.5 || Y / total > 0.85)) {\n return '#8f8';\n }\n if (l === 'Q' &&\n (KR / total > 0.6 ||\n QE / total > 0.6 ||\n Q / total > 0.85 ||\n E / total > 0.85 ||\n K / total > 0.85 ||\n R / total > 0.85)) {\n return '#8f8';\n }\n if ((l === 'S' || l === 'T') &&\n // WLVIMAFCHP modified from 0.6 to 0.55 on page to match what i see in jalview\n (WLVIMAFCHP / total > 0.6 ||\n TS / total > 0.5 ||\n S / total > 0.85 ||\n T / total > 0.85)) {\n return 'rgb(26,204,26)';\n }\n if (l === 'C' && C / total > 0.85) {\n return 'rgb(240, 128, 128)';\n }\n if (l === 'G' && G / total > 0) {\n return 'rgb(240, 144, 72)';\n }\n if (l === 'P' && P / total > 0) {\n return 'rgb(204, 204, 0)';\n }\n if ((l === 'H' || l === 'Y') &&\n (WLVIMAFCHP / total > 0.6 ||\n W > 0.85 ||\n Y > 0.85 ||\n A > 0.85 ||\n C > 0.85 ||\n P > 0.85 ||\n Q > 0.85 ||\n F > 0.85 ||\n H > 0.85 ||\n I > 0.85 ||\n L > 0.85 ||\n M > 0.85 ||\n V > 0.85)) {\n // cyan from jalview.org docs\n return 'rgb(26, 179, 179)';\n }\n return undefined;\n}\n// info http://www.jalview.org/help/html/colourSchemes/clustal.html\n// modifications:\n// reference to clustalX source code scheme modifies what the jalview.org\n// scheme says there the jalview.org colorscheme says WLVIMAFCHP but it\n// should be WLVIMAFCHPY, colprot.xml says e.g. %#ACFHILMVWYPp\" which has Y\nexport function getPercentIdentityColor(stats, model, row, col) {\n var total = Object.values(stats).reduce(function (a, b) { return a + b; }, 0);\n var l = model.columns[row][col];\n var entries = Object.entries(stats);\n var ent = 0;\n var letter = '';\n for (var i = 0; i < entries.length; i++) {\n if (entries[i][1] > ent && entries[i][0] !== '-') {\n letter = entries[i][0];\n ent = entries[i][1];\n }\n }\n var proportion = ent / total;\n var thresh = \"hsl(240, 30%, \".concat(100 * Math.max(1 - ent / total / 3, 0.3), \"%)\");\n if (proportion > 0.4) {\n if (l === letter) {\n return thresh;\n }\n }\n}\n","import React, { useEffect, useState, useRef, useMemo } from 'react';\nimport { Typography, CircularProgress, useTheme } from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport normalizeWheel from 'normalize-wheel';\nimport { colorContrast } from '../util';\nimport { getClustalXColor, getPercentIdentityColor } from '../colorSchemes';\nvar MSABlock = observer(function (_a) {\n var model = _a.model, offsetX = _a.offsetX, offsetY = _a.offsetY;\n var MSA = model.MSA, colWidth = model.colWidth, bgColor = model.bgColor, columns = model.columns, rowHeight = model.rowHeight, scrollY = model.scrollY, scrollX = model.scrollX, hierarchy = model.hierarchy, colorScheme = model.colorScheme, colorSchemeName = model.colorSchemeName, blockSize = model.blockSize, highResScaleFactor = model.highResScaleFactor, colStats = model.colStats;\n var theme = useTheme();\n var contrastScheme = useMemo(function () { return colorContrast(colorScheme, theme); }, [colorScheme, theme]);\n var ref = useRef(null);\n useEffect(function () {\n if (!ref.current) {\n return;\n }\n var ctx = ref.current.getContext('2d');\n if (!ctx) {\n return;\n }\n ctx.resetTransform();\n ctx.scale(highResScaleFactor, highResScaleFactor);\n ctx.clearRect(0, 0, blockSize, blockSize);\n ctx.translate(-offsetX, rowHeight / 2 - offsetY);\n ctx.textAlign = 'center';\n ctx.font = ctx.font.replace(/\\d+px/, \"\".concat(Math.max(8, rowHeight - 8), \"px\"));\n var leaves = hierarchy.leaves();\n var b = blockSize;\n // slice vertical rows, e.g. tree leaves, avoid negative slice\n var yStart = Math.max(0, Math.floor((offsetY - rowHeight) / rowHeight));\n var yEnd = Math.max(0, Math.ceil((offsetY + b + rowHeight) / rowHeight));\n // slice horizontal visible letters, avoid negative slice\n var xStart = Math.max(0, Math.floor(offsetX / colWidth));\n var xEnd = Math.max(0, Math.ceil((offsetX + b) / colWidth));\n var visibleLeaves = leaves.slice(yStart, yEnd);\n visibleLeaves.forEach(function (node) {\n var _a;\n var \n //@ts-ignore\n y = node.x, name = node.data.name;\n var str = (_a = columns[name]) === null || _a === void 0 ? void 0 : _a.slice(xStart, xEnd);\n for (var i = 0; i < (str === null || str === void 0 ? void 0 : str.length); i++) {\n var letter = str[i];\n var color = colorSchemeName === 'clustalx_protein_dynamic'\n ? getClustalXColor(colStats[xStart + i], model, name, xStart + i)\n : colorSchemeName === 'percent_identity_dynamic'\n ? getPercentIdentityColor(colStats[xStart + i], model, name, xStart + i)\n : colorScheme[letter.toUpperCase()];\n if (bgColor) {\n var x = i * colWidth + offsetX - (offsetX % colWidth);\n ctx.fillStyle = color || 'white';\n ctx.fillRect(x, y - rowHeight, colWidth, rowHeight);\n }\n }\n });\n if (rowHeight >= 10 && colWidth >= rowHeight / 2) {\n visibleLeaves.forEach(function (node) {\n var _a;\n var \n //@ts-ignore\n y = node.x, name = node.data.name;\n var str = (_a = columns[name]) === null || _a === void 0 ? void 0 : _a.slice(xStart, xEnd);\n for (var i = 0; i < (str === null || str === void 0 ? void 0 : str.length); i++) {\n var letter = str[i];\n var color = colorScheme[letter.toUpperCase()];\n var contrast = contrastScheme[letter.toUpperCase()] || 'black';\n var x = i * colWidth + offsetX - (offsetX % colWidth);\n //note: -rowHeight/4 matches +rowHeight/4 in tree\n ctx.fillStyle = bgColor ? contrast : color || 'black';\n ctx.fillText(letter, x + colWidth / 2, y - rowHeight / 4);\n }\n });\n }\n }, [\n MSA,\n highResScaleFactor,\n columns,\n colorScheme,\n contrastScheme,\n bgColor,\n rowHeight,\n colWidth,\n hierarchy,\n offsetX,\n offsetY,\n blockSize,\n ]);\n return (React.createElement(\"canvas\", { ref: ref, onMouseMove: function (event) {\n if (!ref.current) {\n return;\n }\n var _a = ref.current.getBoundingClientRect(), left = _a.left, top = _a.top;\n var mouseX = event.clientX - left;\n var mouseY = event.clientY - top;\n model.setMousePos(Math.floor((mouseX + offsetX) / colWidth) + 1, Math.floor((mouseY + offsetY) / rowHeight));\n }, onMouseLeave: function () { return model.setMousePos(); }, width: blockSize * highResScaleFactor, height: blockSize * highResScaleFactor, style: {\n position: 'absolute',\n top: scrollY + offsetY,\n left: scrollX + offsetX,\n width: blockSize,\n height: blockSize,\n } }));\n});\nvar MSACanvas = observer(function (_a) {\n var model = _a.model;\n var MSA = model.MSA, msaFilehandle = model.msaFilehandle, height = model.height, msaAreaWidth = model.msaAreaWidth, blocks2d = model.blocks2d;\n var ref = useRef(null);\n // wheel\n var scheduled = useRef(false);\n var deltaX = useRef(0);\n var deltaY = useRef(0);\n // mouse click-and-drag scrolling\n var prevX = useRef(0);\n var prevY = useRef(0);\n var _b = useState(false), mouseDragging = _b[0], setMouseDragging = _b[1];\n useEffect(function () {\n var curr = ref.current;\n if (!curr) {\n return;\n }\n function onWheel(origEvent) {\n var event = normalizeWheel(origEvent);\n deltaX.current += event.pixelX;\n deltaY.current += event.pixelY;\n if (!scheduled.current) {\n scheduled.current = true;\n requestAnimationFrame(function () {\n model.doScrollX(-deltaX.current);\n model.doScrollY(-deltaY.current);\n deltaX.current = 0;\n deltaY.current = 0;\n scheduled.current = false;\n });\n }\n origEvent.preventDefault();\n }\n curr.addEventListener('wheel', onWheel);\n return function () {\n curr.removeEventListener('wheel', onWheel);\n };\n }, [model]);\n useEffect(function () {\n var cleanup = function () { };\n function globalMouseMove(event) {\n event.preventDefault();\n var currX = event.clientX;\n var currY = event.clientY;\n var distanceX = currX - prevX.current;\n var distanceY = currY - prevY.current;\n if (distanceX || distanceY) {\n // use rAF to make it so multiple event handlers aren't fired per-frame\n // see https://calendar.perfplanet.com/2013/the-runtime-performance-checklist/\n if (!scheduled.current) {\n scheduled.current = true;\n window.requestAnimationFrame(function () {\n model.doScrollX(distanceX);\n model.doScrollY(distanceY);\n scheduled.current = false;\n prevX.current = event.clientX;\n prevY.current = event.clientY;\n });\n }\n }\n }\n function globalMouseUp() {\n prevX.current = 0;\n if (mouseDragging) {\n setMouseDragging(false);\n }\n }\n if (mouseDragging) {\n window.addEventListener('mousemove', globalMouseMove, true);\n window.addEventListener('mouseup', globalMouseUp, true);\n cleanup = function () {\n window.removeEventListener('mousemove', globalMouseMove, true);\n window.removeEventListener('mouseup', globalMouseUp, true);\n };\n }\n return cleanup;\n }, [model, mouseDragging]);\n return (React.createElement(\"div\", { ref: ref, onMouseDown: function (event) {\n // check if clicking a draggable element or a resize handle\n var target = event.target;\n if (target.draggable || target.dataset.resizer) {\n return;\n }\n // otherwise do click and drag scroll\n if (event.button === 0) {\n prevX.current = event.clientX;\n prevY.current = event.clientY;\n setMouseDragging(true);\n }\n }, onMouseUp: function (event) {\n event.preventDefault();\n setMouseDragging(false);\n }, onMouseLeave: function (event) {\n event.preventDefault();\n }, style: {\n position: 'relative',\n height: height,\n width: msaAreaWidth,\n overflow: 'hidden',\n } }, !MSA && !msaFilehandle ? null : !MSA ? (React.createElement(\"div\", { style: { position: 'absolute', left: '50%', top: '50%' } },\n React.createElement(CircularProgress, null),\n React.createElement(Typography, null, \"Loading...\"))) : (blocks2d.map(function (_a) {\n var bx = _a[0], by = _a[1];\n return (React.createElement(MSABlock, { key: \"\".concat(bx, \"_\").concat(by), model: model, offsetX: bx, offsetY: by }));\n }))));\n});\nexport default MSACanvas;\n","import React, { useRef } from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { observer } from 'mobx-react';\n/**\n * Given a scale ( bp/px ) and minimum distances (px) between major and minor\n * gridlines, return an object like `{ majorPitch: bp, minorPitch: bp }` giving\n * the gridline pitches to use.\n */\nexport function chooseGridPitch(scale, minMajorPitchPx, minMinorPitchPx) {\n scale = Math.abs(scale);\n var minMajorPitchBp = minMajorPitchPx * scale;\n var majorMagnitude = parseInt(Number(minMajorPitchBp).toExponential().split(/e/i)[1], 10);\n var majorPitch = Math.pow(10, majorMagnitude);\n while (majorPitch < minMajorPitchBp) {\n majorPitch *= 2;\n if (majorPitch >= minMajorPitchBp) {\n break;\n }\n majorPitch *= 2.5;\n }\n majorPitch = Math.max(majorPitch, 5);\n var majorPitchPx = majorPitch / scale;\n var minorPitch = 0;\n if (!(majorPitch % 10) && majorPitchPx / 10 >= minMinorPitchPx) {\n minorPitch = majorPitch / 10;\n }\n else if (!(majorPitch % 5) && majorPitchPx / 5 >= minMinorPitchPx) {\n minorPitch = majorPitch / 5;\n }\n else if (!(majorPitch % 2) && majorPitchPx / 2 >= minMinorPitchPx) {\n minorPitch = majorPitch / 2;\n }\n return { majorPitch: majorPitch, minorPitch: minorPitch };\n}\nexport function makeTicks(start, end, bpPerPx, emitMajor, emitMinor) {\n var _a;\n if (emitMajor === void 0) { emitMajor = true; }\n if (emitMinor === void 0) { emitMinor = true; }\n var gridPitch = chooseGridPitch(bpPerPx, 60, 15);\n var minBase = start;\n var maxBase = end;\n if (minBase === null || maxBase === null) {\n return [];\n }\n if (bpPerPx < 0) {\n _a = [maxBase, minBase], minBase = _a[0], maxBase = _a[1];\n }\n // add 20px additional on the right and left to allow us to draw the ends of\n // labels that lie a little outside our region\n minBase -= Math.abs(20 * bpPerPx);\n maxBase += Math.abs(20 * bpPerPx) + 1;\n var iterPitch = gridPitch.minorPitch || gridPitch.majorPitch;\n var index = 0;\n var ticks = [];\n for (var base = Math.ceil(minBase / iterPitch) * iterPitch; base < maxBase; base += iterPitch) {\n if (emitMinor && base % (gridPitch.majorPitch * 2)) {\n ticks.push({ type: 'minor', base: base - 1, index: index });\n index += 1;\n }\n else if (emitMajor && !(base % (gridPitch.majorPitch * 2))) {\n ticks.push({ type: 'major', base: base - 1, index: index });\n index += 1;\n }\n }\n return ticks;\n}\nfunction mathPower(num) {\n if (num < 999) {\n return String(num);\n }\n return \"\".concat(mathPower(~~(num / 1000)), \",\").concat(\"00\".concat(~~(num % 1000)).substr(-3, 3));\n}\nvar useStyles = makeStyles(function ( /* theme */) { return ({\n majorTickLabel: {\n fontSize: '11px',\n },\n majorTick: {\n stroke: '#555',\n },\n minorTick: {\n stroke: '#999',\n },\n}); });\nfunction RulerBlock(_a) {\n var start = _a.start, end = _a.end, bpPerPx = _a.bpPerPx, reversed = _a.reversed, major = _a.major, minor = _a.minor;\n var classes = useStyles();\n var ticks = makeTicks(start, end, bpPerPx, major, minor);\n return (React.createElement(React.Fragment, null,\n ticks.map(function (tick) {\n var x = (reversed ? end - tick.base : tick.base - start) / bpPerPx;\n return (React.createElement(\"line\", { key: tick.base, x1: x, x2: x, y1: 11, y2: tick.type === 'major' ? 11 + 6 : 11 + 4, strokeWidth: 1, stroke: tick.type === 'major' ? '#555' : '#999', className: tick.type === 'major' ? classes.majorTick : classes.minorTick, \"data-bp\": tick.base }));\n }),\n ticks\n .filter(function (tick) { return tick.type === 'major'; })\n .map(function (tick) {\n var x = (reversed ? end - tick.base : tick.base - start) / bpPerPx;\n return (React.createElement(\"text\", { x: x, y: 10, key: \"label-\".concat(tick.base), textAnchor: \"middle\", style: { fontSize: '11px' }, className: classes.majorTickLabel }, mathPower(tick.base + 1)));\n })));\n}\nvar Ruler = observer(function (_a) {\n var model = _a.model;\n var MSA = model.MSA, colWidth = model.colWidth, msaAreaWidth = model.msaAreaWidth, resizeHandleWidth = model.resizeHandleWidth, scrollX = model.scrollX, blocksX = model.blocksX, blockSize = model.blockSize;\n var ref = useRef(null);\n var offsetX = blocksX[0];\n return !MSA ? null : (React.createElement(\"div\", { ref: ref, style: {\n position: 'relative',\n width: msaAreaWidth,\n cursor: 'crosshair',\n overflow: 'hidden',\n height: 20,\n background: '#ccc',\n } },\n React.createElement(\"svg\", { style: {\n width: blocksX.length * blockSize,\n position: 'absolute',\n left: scrollX + offsetX + resizeHandleWidth,\n pointerEvents: 'none',\n } },\n React.createElement(RulerBlock, { key: offsetX, start: offsetX / colWidth, end: offsetX / colWidth + (blockSize * blocksX.length) / colWidth, bpPerPx: 1 / colWidth }))));\n});\nexport default Ruler;\n","import React from 'react';\nimport { observer } from 'mobx-react';\nvar TreeRuler = observer(function (_a) {\n var model = _a.model;\n var treeWidth = model.treeWidth;\n return React.createElement(\"div\", { style: { width: treeWidth } });\n});\nexport default TreeRuler;\n","import React, { useState } from 'react';\nimport { observer } from 'mobx-react';\nimport { Button, Checkbox, Dialog, DialogActions, DialogTitle, DialogContent, FormControlLabel, MenuItem, TextField, } from '@material-ui/core';\nimport colorSchemes from '../colorSchemes';\nexport default observer(function (_a) {\n var model = _a.model, onClose = _a.onClose, open = _a.open;\n var rowHeightInit = model.rowHeight, colWidthInit = model.colWidth, treeWidthInit = model.treeWidth, colorSchemeName = model.colorSchemeName, noTree = model.noTree;\n var _b = useState(\"\".concat(rowHeightInit)), rowHeight = _b[0], setRowHeight = _b[1];\n var _c = useState(\"\".concat(colWidthInit)), colWidth = _c[0], setColWidth = _c[1];\n var _d = useState(\"\".concat(treeWidthInit)), treeWidth = _d[0], setTreeWidth = _d[1];\n function error(n) {\n return Number.isNaN(+n) || +n < 0;\n }\n var rowHeightError = error(rowHeight);\n var colWidthError = error(colWidth);\n var treeWidthError = error(treeWidth);\n return (React.createElement(Dialog, { onClose: function () { return onClose(); }, open: open },\n React.createElement(DialogTitle, null, \"Settings\"),\n React.createElement(DialogContent, null,\n React.createElement(FormControlLabel, { control: React.createElement(Checkbox, { checked: model.showBranchLen, onChange: function () { return model.toggleBranchLen(); } }), label: \"Show branch length\" }),\n React.createElement(FormControlLabel, { control: React.createElement(Checkbox, { checked: model.bgColor, onChange: function () { return model.toggleBgColor(); } }), label: \"Color background\" }),\n React.createElement(FormControlLabel, { control: React.createElement(Checkbox, { checked: model.drawNodeBubbles, onChange: function () { return model.toggleNodeBubbles(); } }), label: \"Draw node bubbles\" }),\n React.createElement(FormControlLabel, { control: React.createElement(Checkbox, { checked: model.drawTree, onChange: function () { return model.toggleDrawTree(); } }), label: \"Draw tree (if available)\" }),\n React.createElement(FormControlLabel, { control: React.createElement(Checkbox, { checked: model.labelsAlignRight, onChange: function () { return model.toggleLabelsAlignRight(); } }), label: \"Labels align right (note: labels may draw over tree, but can adjust tree width or tree area width in UI)\" }),\n React.createElement(TextField, { label: \"Row height (px)\", value: rowHeight, error: rowHeightError, onChange: function (event) { return setRowHeight(event.target.value); } }),\n React.createElement(TextField, { label: \"Column width (px)\", value: colWidth, error: colWidthError, onChange: function (event) { return setColWidth(event.target.value); } }),\n React.createElement(\"br\", null),\n !noTree ? (React.createElement(TextField, { label: \"Tree width (px)\", value: treeWidth, error: treeWidthError, onChange: function (event) { return setTreeWidth(event.target.value); } })) : null,\n React.createElement(\"br\", null),\n React.createElement(TextField, { select: true, label: \"Color scheme\", value: colorSchemeName, onChange: function (event) { return model.setColorSchemeName(event.target.value); } }, Object.keys(colorSchemes).map(function (option) { return (React.createElement(MenuItem, { key: option, value: option }, option)); })),\n React.createElement(DialogActions, null,\n React.createElement(Button, { disabled: rowHeightError || colWidthError || treeWidthError, onClick: function () {\n model.setRowHeight(+rowHeight);\n model.setColWidth(+colWidth);\n if (!noTree) {\n model.setTreeWidth(+treeWidth);\n }\n onClose();\n }, variant: \"contained\", color: \"primary\" }, \"Submit\")))));\n});\n","import React, { useState } from 'react';\nimport { Dialog, DialogTitle, DialogContent, Typography, Link, } from '@material-ui/core';\nimport { version } from './package.json';\nfunction LicenseDialog(_a) {\n var onClose = _a.onClose, open = _a.open;\n return (React.createElement(Dialog, { onClose: function () { return onClose(); }, open: open },\n React.createElement(DialogTitle, null, \"Biotite License\"),\n React.createElement(DialogContent, null,\n React.createElement(\"pre\", { style: { height: 100, overflow: 'auto' } }, \"\\nCopyright 2017 - 2020, The Biotite contributors\\nAll rights reserved.\\n\\nRedistribution and use in source and binary forms, with or without modification,\\nare permitted provided that the following conditions are met:\\n\\n1. Redistributions of source code must retain the above copyright notice, this\\nlist of conditions and the following disclaimer.\\n\\n2. Redistributions in binary form must reproduce the above copyright notice,\\nthis list of conditions and the following disclaimer in the documentation and/or\\nother materials provided with the distribution.\\n\\n3. Neither the name of the copyright holder nor the names of its contributors\\nmay be used to endorse or promote products derived from this software without\\nspecific prior written permission.\\n\\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \\\"AS IS\\\" AND\\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR\\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\\nANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\\n \"))));\n}\nexport default function AboutDialog(_a) {\n var onClose = _a.onClose, open = _a.open;\n var _b = useState(false), dlgOpen = _b[0], setDlgOpen = _b[1];\n return (React.createElement(React.Fragment, null,\n React.createElement(LicenseDialog, { onClose: function () { return setDlgOpen(false); }, open: dlgOpen }),\n React.createElement(Dialog, { onClose: function () { return onClose(); }, open: open },\n React.createElement(DialogTitle, null, \"About this plugin\"),\n React.createElement(DialogContent, null,\n React.createElement(Typography, null,\n \"MSAView \",\n version,\n \" (\",\n React.createElement(Link, { href: \"https://github.com/gmod/jbrowse-plugin-msaview\" }, \"Github\"),\n \")\"),\n React.createElement(\"ul\", null,\n React.createElement(\"li\", null,\n React.createElement(Typography, null,\n \"We use some color schemes from the\",\n ' ',\n React.createElement(Link, { href: \"https://github.com/biotite-dev/biotite\" }, \"biotite\"),\n ' ',\n \"project, and their license is reproduced\",\n ' ',\n React.createElement(Link, { onClick: function () { return setDlgOpen(true); } }, \"here\"))),\n React.createElement(\"li\", null,\n React.createElement(Typography, null,\n \"See this page for some information on jalview colorings\",\n ' ',\n React.createElement(Link, { href: \"https://www.jalview.org/help/html/colourSchemes/\" }, \"here\"))),\n React.createElement(\"li\", null,\n React.createElement(Typography, null,\n \"See this page for some info on the clustal, cinema, maeditor, and lesk color schemes\",\n ' ',\n React.createElement(Link, { href: \"http://www.bioinformatics.nl/~berndb/aacolour.html\" }, \"here\"))),\n React.createElement(\"li\", null,\n React.createElement(Typography, null,\n \"See this paper about the flower color scheme\",\n ' ',\n React.createElement(Link, { href: \"https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7245768/\" }, \"here\"))))))));\n}\n","import React from 'react';\nimport { Dialog, DialogTitle, DialogContent } from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport { Attributes } from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail';\nexport default observer(function (_a) {\n var model = _a.model, onClose = _a.onClose, open = _a.open;\n var alignmentDetails = model.alignmentDetails;\n return (React.createElement(Dialog, { onClose: function () { return onClose(); }, open: open },\n React.createElement(DialogTitle, null, \"Metadata\"),\n React.createElement(DialogContent, null,\n React.createElement(Attributes, { attributes: alignmentDetails }))));\n});\n","import React from 'react';\nimport { Dialog, DialogTitle, DialogContent, FormControlLabel, FormGroup, Checkbox, DialogActions, Button, Typography, } from '@material-ui/core';\nimport { observer } from 'mobx-react';\nexport default observer(function (_a) {\n var model = _a.model, onClose = _a.onClose, open = _a.open;\n var tracks = model.tracks;\n return (React.createElement(Dialog, { onClose: function () { return onClose(); }, open: open },\n React.createElement(DialogTitle, null, \"Add track\"),\n React.createElement(DialogContent, null,\n React.createElement(Typography, null, \"Open relevant per-alignment tracks e.g. protein domains\"),\n React.createElement(FormGroup, null, tracks.map(function (track) {\n return (React.createElement(FormControlLabel, { key: track.model.id, control: React.createElement(Checkbox, { checked: !model.turnedOffTracks.has(track.model.id), onChange: function () {\n model.toggleTrack(track.model.id);\n } }), label: track.model.name }));\n })),\n React.createElement(DialogActions, null,\n React.createElement(Button, { onClick: function () { return onClose(); }, variant: \"contained\", color: \"primary\" }, \"Close\")))));\n});\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z\"\n}), 'FolderOpen');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z\"\n}), 'Settings');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z\"\n}), 'Help');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z\"\n}), 'List');\n\nexports.default = _default;","import React, { useState } from 'react';\nimport { IconButton, Select, Typography } from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport SettingsDialog from './SettingsDlg';\nimport AboutDialog from './AboutDlg';\nimport DetailsDialog from './DetailsDlg';\nimport TracklistDialog from './TracklistDlg';\n//icons\nimport FolderOpenIcon from '@material-ui/icons/FolderOpen';\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport HelpIcon from '@material-ui/icons/Help';\nimport AssignmentIcon from '@material-ui/icons/Assignment';\nimport ListIcon from '@material-ui/icons/List';\nvar InfoArea = observer(function (_a) {\n var model = _a.model;\n var mouseOverRowName = model.mouseOverRowName, mouseCol = model.mouseCol;\n return (React.createElement(\"div\", null,\n React.createElement(Typography, { display: \"inline\" },\n \"Row name: \",\n mouseOverRowName),\n React.createElement(\"span\", { style: { marginLeft: 10 } }),\n React.createElement(Typography, { display: \"inline\" },\n \"Position: \",\n mouseCol)));\n});\nvar Header = observer(function (_a) {\n var model = _a.model;\n var _b = useState(false), settingsDialogVisible = _b[0], setSettingsDialogVisible = _b[1];\n var _c = useState(false), aboutDialogVisible = _c[0], setAboutDialogVisible = _c[1];\n var _d = useState(false), detailsDialogVisible = _d[0], setDetailsDialogVisible = _d[1];\n var _e = useState(false), tracklistDialogVisible = _e[0], setTracklistDialogVisible = _e[1];\n var currentAlignment = model.currentAlignment, alignmentNames = model.alignmentNames;\n return (React.createElement(\"div\", { style: { display: 'flex' } },\n React.createElement(IconButton, { onClick: function () {\n model.setData({ tree: '', msa: '' });\n model.setTreeFilehandle(undefined);\n model.setMSAFilehandle(undefined);\n model.setScrollY(0);\n model.setScrollX(0);\n model.setCurrentAlignment(0);\n } },\n React.createElement(FolderOpenIcon, null)),\n React.createElement(IconButton, { onClick: function () { return setSettingsDialogVisible(true); } },\n React.createElement(SettingsIcon, null)),\n React.createElement(IconButton, { onClick: function () { return setDetailsDialogVisible(true); } },\n React.createElement(AssignmentIcon, null)),\n React.createElement(IconButton, { onClick: function () { return setTracklistDialogVisible(true); } },\n React.createElement(ListIcon, null)),\n settingsDialogVisible ? (React.createElement(SettingsDialog, { open: true, model: model, onClose: function () { return setSettingsDialogVisible(false); } })) : null,\n aboutDialogVisible ? (React.createElement(AboutDialog, { open: true, onClose: function () { return setAboutDialogVisible(false); } })) : null,\n detailsDialogVisible ? (React.createElement(DetailsDialog, { open: true, model: model, onClose: function () { return setDetailsDialogVisible(false); } })) : null,\n tracklistDialogVisible ? (React.createElement(TracklistDialog, { open: true, model: model, onClose: function () { return setTracklistDialogVisible(false); } })) : null,\n alignmentNames.length > 0 ? (React.createElement(Select, { native: true, value: currentAlignment, onChange: function (event) {\n model.setCurrentAlignment(+event.target.value);\n model.setScrollX(0);\n model.setScrollY(0);\n } }, alignmentNames.map(function (option, index) { return (React.createElement(\"option\", { key: \"\".concat(option, \"-\").concat(index), value: index }, option)); }))) : null,\n React.createElement(InfoArea, { model: model }),\n React.createElement(\"div\", { style: { flex: 1 } }),\n React.createElement(IconButton, { onClick: function () { return setAboutDialogVisible(true); } },\n React.createElement(HelpIcon, null))));\n});\nexport default Header;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7 10l5 5 5-5z\"\n}), 'ArrowDropDown');\n\nexports.default = _default;","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","import React, { useState } from 'react';\nimport copy from 'copy-to-clipboard';\nimport { observer } from 'mobx-react';\nimport { Button, Dialog, DialogActions, DialogTitle, DialogContent, makeStyles, } from '@material-ui/core';\nvar useStyles = makeStyles(function (theme) { return ({\n textArea: {\n padding: theme.spacing(2),\n overflow: 'auto',\n background: '#ddd',\n wordBreak: 'break-word',\n },\n}); });\nvar TrackInfoDialog = observer(function (_a) {\n var model = _a.model, onClose = _a.onClose;\n var _b = useState('Copy to clipboard'), label = _b[0], setLabel = _b[1];\n var classes = useStyles();\n return (React.createElement(Dialog, { open: true, onClose: onClose, fullWidth: true, maxWidth: \"lg\" },\n React.createElement(DialogTitle, null,\n \"Track info - \",\n model.name),\n React.createElement(DialogContent, null,\n React.createElement(Button, { variant: \"contained\", color: \"primary\", onClick: function () {\n copy(model.data);\n setLabel('Copied!');\n setTimeout(function () {\n setLabel('Copy to clipboard');\n }, 300);\n } }, label),\n React.createElement(\"pre\", { className: classes.textArea }, model.data)),\n React.createElement(DialogActions, null,\n React.createElement(Button, { variant: \"contained\", onClick: onClose, color: \"secondary\" }, \"Close\"))));\n});\nexport default TrackInfoDialog;\n","import React, { useState, useRef, useEffect } from 'react';\nimport normalizeWheel from 'normalize-wheel';\nimport { observer } from 'mobx-react';\nimport { IconButton, Menu, MenuItem, makeStyles } from '@material-ui/core';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport TrackInfoDialog from './TrackInfoDlg';\nvar useStyles = makeStyles(function () { return ({\n button: {\n padding: 0,\n },\n}); });\nexport var TrackLabel = observer(function (_a) {\n var model = _a.model, track = _a.track;\n var _b = useState(), anchorEl = _b[0], setAnchorEl = _b[1];\n var _c = useState(false), trackInfoDlgOpen = _c[0], setTrackInfoDlgOpen = _c[1];\n var rowHeight = model.rowHeight, width = model.treeAreaWidth;\n var height = track.height, name = track.model.name;\n var classes = useStyles();\n var trackLabelHeight = Math.max(8, rowHeight - 8);\n return (React.createElement(\"div\", { style: {\n width: width,\n height: height,\n flexShrink: 0,\n textAlign: 'right',\n fontSize: trackLabelHeight,\n } },\n name,\n React.createElement(IconButton, { className: classes.button, style: { width: trackLabelHeight, height: trackLabelHeight }, onClick: function (event) {\n setAnchorEl(event.target);\n } },\n React.createElement(ArrowDropDownIcon, null)),\n anchorEl ? (React.createElement(Menu, { anchorEl: anchorEl, transitionDuration: 0, open: true, onClose: function () {\n setAnchorEl(undefined);\n } },\n React.createElement(MenuItem, { dense: true, onClick: function () {\n model.toggleTrack(track.model.id);\n setAnchorEl(undefined);\n } }, \"Close\"),\n React.createElement(MenuItem, { dense: true, onClick: function () {\n setTrackInfoDlgOpen(true);\n setAnchorEl(undefined);\n } }, \"Get info\"))) : null,\n trackInfoDlgOpen ? (React.createElement(TrackInfoDialog, { model: track.model, onClose: function () { return setTrackInfoDlgOpen(false); } })) : null));\n});\nvar Track = observer(function (_a) {\n var model = _a.model, track = _a.track;\n var resizeHandleWidth = model.resizeHandleWidth;\n var height = track.model.height;\n var ref = useRef(null);\n var scheduled = useRef(false);\n var deltaX = useRef(0);\n useEffect(function () {\n var curr = ref.current;\n if (!curr) {\n return;\n }\n function onWheel(origEvent) {\n var event = normalizeWheel(origEvent);\n deltaX.current += event.pixelX;\n if (!scheduled.current) {\n scheduled.current = true;\n requestAnimationFrame(function () {\n model.doScrollX(-deltaX.current);\n deltaX.current = 0;\n scheduled.current = false;\n });\n }\n origEvent.preventDefault();\n }\n curr.addEventListener('wheel', onWheel);\n return function () {\n curr.removeEventListener('wheel', onWheel);\n };\n }, [model]);\n return (React.createElement(\"div\", { key: track.id, style: { display: 'flex', height: height } },\n React.createElement(TrackLabel, { model: model, track: track }),\n React.createElement(\"div\", { style: { width: resizeHandleWidth, flexShrink: 0 } }),\n React.createElement(\"div\", { ref: ref },\n React.createElement(track.ReactComponent, { model: model, track: track }))));\n});\nexport default Track;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\"\n}), 'Delete');\n\nexports.default = _default;","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport React, { useState } from 'react';\nimport { observer } from 'mobx-react';\nimport { Button, Dialog, DialogActions, DialogTitle, DialogContent, IconButton, TextField, Typography, } from '@material-ui/core';\nimport DeleteIcon from '@material-ui/icons/Delete';\nvar specialFromEntries = function (val) {\n var ret = {};\n val.forEach(function (_a) {\n var key = _a[0], val = _a[1];\n if (!ret[key])\n ret[key] = [];\n ret[key].push(val);\n });\n return ret;\n};\nvar Row = observer(function (_a) {\n var name = _a.name, value = _a.value, setValue = _a.setValue, setName = _a.setName, onDelete = _a.onDelete;\n return (React.createElement(\"div\", null,\n React.createElement(IconButton, { onClick: onDelete, style: { margin: 10 } },\n React.createElement(DeleteIcon, null)),\n React.createElement(TextField, { value: name, onChange: function (event) { return setName(event.target.value); }, label: \"Key\" }),\n React.createElement(TextField, { value: value, onChange: function (event) { return setValue(event.target.value); }, label: \"Value\" })));\n});\nexport default observer(function (_a) {\n var onClose = _a.onClose, data = _a.data, model = _a.model;\n var blanks = model.blanks;\n var l = data.left, r = data.right;\n var _b = useState([\n ['Name', ''],\n ['ID', ''],\n ['Note', ''],\n ]), rows = _b[0], setRows = _b[1];\n return (React.createElement(Dialog, { onClose: function () { return onClose(); }, open: true },\n React.createElement(DialogTitle, null, \"Create new region annotation\"),\n React.createElement(DialogContent, null,\n React.createElement(Typography, null,\n \"Do you want to add an annotation to the MSA at \",\n l,\n \"..\",\n r,\n ' ',\n blanks.length\n ? \" (gapped \".concat(model.getPos(l), \"..\").concat(model.getPos(r))\n : ''),\n rows.map(function (_a, index) {\n var key = _a[0], val = _a[1];\n return (React.createElement(Row, { key: index, name: key, value: val, setValue: function (newValue) {\n var newRows = __spreadArray([], rows, true);\n newRows[index][1] = newValue;\n setRows(newRows);\n }, setName: function (newName) {\n var newRows = __spreadArray([], rows, true);\n newRows[index][0] = newName;\n setRows(newRows);\n }, onDelete: function () {\n rows.splice(index, 1);\n setRows(__spreadArray([], rows, true));\n } }));\n }),\n React.createElement(Button, { onClick: function () {\n setRows(__spreadArray(__spreadArray([], rows, true), [['', '']], false));\n } }, \"Add row\"),\n React.createElement(DialogActions, null,\n React.createElement(Button, { onClick: function () {\n model.addAnnotation(l, r, specialFromEntries(rows));\n onClose();\n }, variant: \"contained\", color: \"primary\" }, \"Submit\"),\n React.createElement(Button, { variant: \"contained\", color: \"secondary\", onClick: function () { return onClose(); } }, \"Cancel\")))));\n});\n","import React, { useEffect, useRef, useState } from 'react';\nimport { observer } from 'mobx-react';\nexport var VerticalResizeHandle = observer(function (_a) {\n var model = _a.model;\n var resizeHandleWidth = model.resizeHandleWidth;\n var _b = useState(false), mouseDragging = _b[0], setMouseDragging = _b[1];\n var scheduled = useRef(false);\n var prevX = useRef(0);\n useEffect(function () {\n function globalMouseMove(event) {\n event.preventDefault();\n var currX = event.clientX;\n if (prevX.current === 0) {\n prevX.current = event.clientX;\n }\n else {\n var distance_1 = currX - prevX.current;\n if (distance_1) {\n // use rAF to make it so multiple event handlers aren't fired per-frame\n // see https://calendar.perfplanet.com/2013/the-runtime-performance-checklist/\n if (!scheduled.current) {\n scheduled.current = true;\n window.requestAnimationFrame(function () {\n model.setTreeAreaWidth(model.treeAreaWidth + distance_1);\n scheduled.current = false;\n prevX.current = event.clientX;\n });\n }\n }\n }\n }\n function globalMouseUp() {\n prevX.current = 0;\n if (mouseDragging) {\n setMouseDragging(false);\n }\n }\n if (mouseDragging) {\n document.addEventListener('mousemove', globalMouseMove, true);\n document.addEventListener('mouseup', globalMouseUp, true);\n return function () {\n document.removeEventListener('mousemove', globalMouseMove, true);\n document.removeEventListener('mouseup', globalMouseUp, true);\n };\n }\n return function () { };\n }, [mouseDragging, model]);\n return (React.createElement(\"div\", null,\n React.createElement(\"div\", { onMouseDown: function () { return setMouseDragging(true); }, style: {\n cursor: 'ew-resize',\n height: '100%',\n width: resizeHandleWidth,\n background: \"rgba(200,200,200)\",\n position: 'relative',\n } })));\n});\nexport var HorizontalResizeHandle = observer(function (_a) {\n var model = _a.model;\n var resizeHandleWidth = model.resizeHandleWidth;\n var _b = useState(false), mouseDragging = _b[0], setMouseDragging = _b[1];\n var scheduled = useRef(false);\n var prevY = useRef(0);\n useEffect(function () {\n function globalMouseMove(event) {\n event.preventDefault();\n var currY = event.clientY;\n if (prevY.current === 0) {\n prevY.current = event.clientY;\n }\n else {\n var distance_2 = currY - prevY.current;\n if (distance_2) {\n // use rAF to make it so multiple event handlers aren't fired per-frame\n // see https://calendar.perfplanet.com/2013/the-runtime-performance-checklist/\n if (!scheduled.current) {\n scheduled.current = true;\n window.requestAnimationFrame(function () {\n model.setHeight(model.height + distance_2);\n scheduled.current = false;\n prevY.current = event.clientY;\n });\n }\n }\n }\n }\n function globalMouseUp() {\n prevY.current = 0;\n if (mouseDragging) {\n setMouseDragging(false);\n }\n }\n if (mouseDragging) {\n document.addEventListener('mousemove', globalMouseMove, true);\n document.addEventListener('mouseup', globalMouseUp, true);\n return function () {\n document.removeEventListener('mousemove', globalMouseMove, true);\n document.removeEventListener('mouseup', globalMouseUp, true);\n };\n }\n return function () { };\n }, [mouseDragging, model]);\n return (React.createElement(\"div\", null,\n React.createElement(\"div\", { onMouseDown: function () { return setMouseDragging(true); }, style: {\n cursor: 'ns-resize',\n width: '100%',\n height: resizeHandleWidth,\n background: \"rgba(200,200,200)\",\n position: 'relative',\n } })));\n});\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React, { useRef, useEffect } from 'react';\nimport { observer } from 'mobx-react';\nimport { Typography } from '@material-ui/core';\nimport ImportForm from './ImportForm';\nimport Rubberband from './Rubberband';\nimport TreeCanvas from './TreeCanvas';\nimport MSACanvas from './MSACanvas';\nimport Ruler from './Ruler';\nimport TreeRuler from './TreeRuler';\nimport Header from './Header';\nimport Track from './Track';\nimport AnnotationDialog from './AnnotationDlg';\nimport { HorizontalResizeHandle, VerticalResizeHandle } from './ResizeHandles';\nvar MouseoverCanvas = observer(function (_a) {\n var model = _a.model;\n var ref = useRef(null);\n var height = model.height, width = model.width, treeAreaWidth = model.treeAreaWidth, resizeHandleWidth = model.resizeHandleWidth, scrollX = model.scrollX, mouseCol = model.mouseCol, colWidth = model.colWidth;\n useEffect(function () {\n if (!ref.current) {\n return;\n }\n var ctx = ref.current.getContext('2d');\n if (!ctx) {\n return;\n }\n ctx.resetTransform();\n ctx.clearRect(0, 0, width, height);\n if (mouseCol !== undefined) {\n var x = (mouseCol - 1) * colWidth + scrollX + treeAreaWidth + resizeHandleWidth;\n ctx.fillStyle = 'rgba(100,100,100,0.5)';\n ctx.fillRect(x, 0, colWidth, height);\n }\n }, [\n mouseCol,\n colWidth,\n scrollX,\n height,\n resizeHandleWidth,\n treeAreaWidth,\n width,\n ]);\n return (React.createElement(\"canvas\", { ref: ref, width: width, height: height, style: {\n position: 'absolute',\n top: 0,\n left: 0,\n width: width,\n height: height,\n zIndex: 1000,\n pointerEvents: 'none',\n } }));\n});\nexport default observer(function (_a) {\n var model = _a.model;\n var done = model.done, initialized = model.initialized, treeAreaWidth = model.treeAreaWidth, height = model.height, resizeHandleWidth = model.resizeHandleWidth, turnedOnTracks = model.turnedOnTracks;\n return (React.createElement(\"div\", null,\n !initialized ? (React.createElement(ImportForm, { model: model })) : !done ? (React.createElement(Typography, { variant: \"h4\" }, \"Loading...\")) : (React.createElement(\"div\", null,\n React.createElement(\"div\", { style: { height: height, overflow: 'hidden' } },\n React.createElement(Header, { model: model }),\n React.createElement(\"div\", null,\n React.createElement(\"div\", { style: { position: 'relative' } },\n React.createElement(\"div\", { style: { display: 'flex' } },\n React.createElement(\"div\", { style: { flexShrink: 0, width: treeAreaWidth } },\n React.createElement(TreeRuler, { model: model })),\n React.createElement(Rubberband, { model: model, ControlComponent: React.createElement(Ruler, { model: model }) })), turnedOnTracks === null || turnedOnTracks === void 0 ? void 0 :\n turnedOnTracks.map(function (track) { return (React.createElement(Track, { key: track.model.id, model: model, track: track })); }),\n React.createElement(\"div\", { style: { display: 'flex' } },\n React.createElement(\"div\", { style: { flexShrink: 0, width: treeAreaWidth } },\n React.createElement(TreeCanvas, { model: model })),\n React.createElement(VerticalResizeHandle, { model: model }),\n React.createElement(MSACanvas, { model: model }),\n React.createElement(MouseoverCanvas, { model: model }))))),\n React.createElement(HorizontalResizeHandle, { model: model }))),\n model.DialogComponent ? (React.createElement(model.DialogComponent, __assign({}, (model.DialogProps || {}), { onClose: function () {\n model.setDialogComponent(undefined, undefined);\n } }))) : null,\n model.annotPos ? (React.createElement(AnnotationDialog, { data: model.annotPos, model: model, onClose: function () { return model.clearAnnotPos(); } })) : null));\n});\n","function defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\nfunction meanX(children) {\n return children.reduce(meanXReduce, 0) / children.length;\n}\n\nfunction meanXReduce(x, c) {\n return x + c.x;\n}\n\nfunction maxY(children) {\n return 1 + children.reduce(maxYReduce, 0);\n}\n\nfunction maxYReduce(y, c) {\n return Math.max(y, c.y);\n}\n\nfunction leafLeft(node) {\n var children;\n while (children = node.children) node = children[0];\n return node;\n}\n\nfunction leafRight(node) {\n var children;\n while (children = node.children) node = children[children.length - 1];\n return node;\n}\n\nexport default function() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = false;\n\n function cluster(root) {\n var previousNode,\n x = 0;\n\n // First walk, computing the initial x & y values.\n root.eachAfter(function(node) {\n var children = node.children;\n if (children) {\n node.x = meanX(children);\n node.y = maxY(children);\n } else {\n node.x = previousNode ? x += separation(node, previousNode) : 0;\n node.y = 0;\n previousNode = node;\n }\n });\n\n var left = leafLeft(root),\n right = leafRight(root),\n x0 = left.x - separation(left, right) / 2,\n x1 = right.x + separation(right, left) / 2;\n\n // Second walk, normalizing x & y to the desired size.\n return root.eachAfter(nodeSize ? function(node) {\n node.x = (node.x - root.x) * dx;\n node.y = (root.y - node.y) * dy;\n } : function(node) {\n node.x = (node.x - x0) / (x1 - x0) * dx;\n node.y = (1 - (root.y ? node.y / root.y : 1)) * dy;\n });\n }\n\n cluster.separation = function(x) {\n return arguments.length ? (separation = x, cluster) : separation;\n };\n\n cluster.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]);\n };\n\n cluster.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null);\n };\n\n return cluster;\n}\n","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], children, i, index = -1;\n while (node = nodes.pop()) {\n callback.call(that, node, ++index, this);\n if (children = node.children) {\n for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], next = [], children, i, n, index = -1;\n while (node = nodes.pop()) {\n next.push(node);\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n }\n while (node = next.pop()) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n if (callback.call(that, node, ++index, this)) {\n return node;\n }\n }\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export default function*() {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n yield node;\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n }\n } while (next.length);\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_find from \"./find.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\nimport node_iterator from \"./iterator.js\";\n\nexport default function hierarchy(data, children) {\n if (data instanceof Map) {\n data = [undefined, data];\n if (children === undefined) children = mapChildren;\n } else if (children === undefined) {\n children = objectChildren;\n }\n\n var root = new Node(data),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n while (node = nodes.pop()) {\n if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {\n node.children = childs;\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = childs[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction objectChildren(d) {\n return d.children;\n}\n\nfunction mapChildren(d) {\n return Array.isArray(d) ? d[1] : null;\n}\n\nfunction copyData(node) {\n if (node.data.value !== undefined) node.value = node.data.value;\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n find: node_find,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy,\n [Symbol.iterator]: node_iterator\n};\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","'use strict';\n\n// Found this seed-based random generator somewhere\n// Based on The Central Randomizer 1.3 (C) 1997 by Paul Houle (houle@msc.cornell.edu)\n\nvar seed = 1;\n\n/**\n * return a random number based on a seed\n * @param seed\n * @returns {number}\n */\nfunction getNextValue() {\n seed = (seed * 9301 + 49297) % 233280;\n return seed/(233280.0);\n}\n\nfunction setSeed(_seed_) {\n seed = _seed_;\n}\n\nmodule.exports = {\n nextValue: getNextValue,\n seed: setSeed\n};\n","'use strict';\n\nvar randomFromSeed = require('./random/random-from-seed');\n\nvar ORIGINAL = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-';\nvar alphabet;\nvar previousSeed;\n\nvar shuffled;\n\nfunction reset() {\n shuffled = false;\n}\n\nfunction setCharacters(_alphabet_) {\n if (!_alphabet_) {\n if (alphabet !== ORIGINAL) {\n alphabet = ORIGINAL;\n reset();\n }\n return;\n }\n\n if (_alphabet_ === alphabet) {\n return;\n }\n\n if (_alphabet_.length !== ORIGINAL.length) {\n throw new Error('Custom alphabet for shortid must be ' + ORIGINAL.length + ' unique characters. You submitted ' + _alphabet_.length + ' characters: ' + _alphabet_);\n }\n\n var unique = _alphabet_.split('').filter(function(item, ind, arr){\n return ind !== arr.lastIndexOf(item);\n });\n\n if (unique.length) {\n throw new Error('Custom alphabet for shortid must be ' + ORIGINAL.length + ' unique characters. These characters were not unique: ' + unique.join(', '));\n }\n\n alphabet = _alphabet_;\n reset();\n}\n\nfunction characters(_alphabet_) {\n setCharacters(_alphabet_);\n return alphabet;\n}\n\nfunction setSeed(seed) {\n randomFromSeed.seed(seed);\n if (previousSeed !== seed) {\n reset();\n previousSeed = seed;\n }\n}\n\nfunction shuffle() {\n if (!alphabet) {\n setCharacters(ORIGINAL);\n }\n\n var sourceArray = alphabet.split('');\n var targetArray = [];\n var r = randomFromSeed.nextValue();\n var characterIndex;\n\n while (sourceArray.length > 0) {\n r = randomFromSeed.nextValue();\n characterIndex = Math.floor(r * sourceArray.length);\n targetArray.push(sourceArray.splice(characterIndex, 1)[0]);\n }\n return targetArray.join('');\n}\n\nfunction getShuffled() {\n if (shuffled) {\n return shuffled;\n }\n shuffled = shuffle();\n return shuffled;\n}\n\n/**\n * lookup shuffled letter\n * @param index\n * @returns {string}\n */\nfunction lookup(index) {\n var alphabetShuffled = getShuffled();\n return alphabetShuffled[index];\n}\n\nfunction get () {\n return alphabet || ORIGINAL;\n}\n\nmodule.exports = {\n get: get,\n characters: characters,\n seed: setSeed,\n lookup: lookup,\n shuffled: getShuffled\n};\n","'use strict';\n\nvar crypto = typeof window === 'object' && (window.crypto || window.msCrypto); // IE 11 uses window.msCrypto\n\nvar randomByte;\n\nif (!crypto || !crypto.getRandomValues) {\n randomByte = function(size) {\n var bytes = [];\n for (var i = 0; i < size; i++) {\n bytes.push(Math.floor(Math.random() * 256));\n }\n return bytes;\n };\n} else {\n randomByte = function(size) {\n return crypto.getRandomValues(new Uint8Array(size));\n };\n}\n\nmodule.exports = randomByte;\n","// This file replaces `format.js` in bundlers like webpack or Rollup,\n// according to `browser` config in `package.json`.\n\nmodule.exports = function (random, alphabet, size) {\n // We can’t use bytes bigger than the alphabet. To make bytes values closer\n // to the alphabet, we apply bitmask on them. We look for the closest\n // `2 ** x - 1` number, which will be bigger than alphabet size. If we have\n // 30 symbols in the alphabet, we will take 31 (00011111).\n // We do not use faster Math.clz32, because it is not available in browsers.\n var mask = (2 << Math.log(alphabet.length - 1) / Math.LN2) - 1\n // Bitmask is not a perfect solution (in our example it will pass 31 bytes,\n // which is bigger than the alphabet). As a result, we will need more bytes,\n // than ID size, because we will refuse bytes bigger than the alphabet.\n\n // Every hardware random generator call is costly,\n // because we need to wait for entropy collection. This is why often it will\n // be faster to ask for few extra bytes in advance, to avoid additional calls.\n\n // Here we calculate how many random bytes should we call in advance.\n // It depends on ID length, mask / alphabet size and magic number 1.6\n // (which was selected according benchmarks).\n\n // -~f => Math.ceil(f) if n is float number\n // -~i => i + 1 if n is integer number\n var step = -~(1.6 * mask * size / alphabet.length)\n var id = ''\n\n while (true) {\n var bytes = random(step)\n // Compact alternative for `for (var i = 0; i < step; i++)`\n var i = step\n while (i--) {\n // If random byte is bigger than alphabet even after bitmask,\n // we refuse it by `|| ''`.\n id += alphabet[bytes[i] & mask] || ''\n // More compact than `id.length + 1 === size`\n if (id.length === +size) return id\n }\n }\n}\n","'use strict';\n\nvar alphabet = require('./alphabet');\nvar random = require('./random/random-byte');\nvar format = require('nanoid/format');\n\nfunction generate(number) {\n var loopCounter = 0;\n var done;\n\n var str = '';\n\n while (!done) {\n str = str + format(random, alphabet.get(), 1);\n done = number < (Math.pow(16, loopCounter + 1 ) );\n loopCounter++;\n }\n return str;\n}\n\nmodule.exports = generate;\n","'use strict';\n\nvar generate = require('./generate');\nvar alphabet = require('./alphabet');\n\n// Ignore all milliseconds before a certain time to reduce the size of the date entropy without sacrificing uniqueness.\n// This number should be updated every year or so to keep the generated id short.\n// To regenerate `new Date() - 0` and bump the version. Always bump the version!\nvar REDUCE_TIME = 1567752802062;\n\n// don't change unless we change the algos or REDUCE_TIME\n// must be an integer and less than 16\nvar version = 7;\n\n// Counter is used when shortid is called multiple times in one second.\nvar counter;\n\n// Remember the last time shortid was called in case counter is needed.\nvar previousSeconds;\n\n/**\n * Generate unique id\n * Returns string id\n */\nfunction build(clusterWorkerId) {\n var str = '';\n\n var seconds = Math.floor((Date.now() - REDUCE_TIME) * 0.001);\n\n if (seconds === previousSeconds) {\n counter++;\n } else {\n counter = 0;\n previousSeconds = seconds;\n }\n\n str = str + generate(version);\n str = str + generate(clusterWorkerId);\n if (counter > 0) {\n str = str + generate(counter);\n }\n str = str + generate(seconds);\n return str;\n}\n\nmodule.exports = build;\n","'use strict';\nvar alphabet = require('./alphabet');\n\nfunction isShortId(id) {\n if (!id || typeof id !== 'string' || id.length < 6 ) {\n return false;\n }\n\n var nonAlphabetic = new RegExp('[^' +\n alphabet.get().replace(/[|\\\\{}()[\\]^$+*?.-]/g, '\\\\$&') +\n ']');\n return !nonAlphabetic.test(id);\n}\n\nmodule.exports = isShortId;\n","'use strict';\n\nvar alphabet = require('./alphabet');\nvar build = require('./build');\nvar isValid = require('./is-valid');\n\n// if you are using cluster or multiple servers use this to make each instance\n// has a unique value for worker\n// Note: I don't know if this is automatically set when using third\n// party cluster solutions such as pm2.\nvar clusterWorkerId = require('./util/cluster-worker-id') || 0;\n\n/**\n * Set the seed.\n * Highly recommended if you don't want people to try to figure out your id schema.\n * exposed as shortid.seed(int)\n * @param seed Integer value to seed the random alphabet. ALWAYS USE THE SAME SEED or you might get overlaps.\n */\nfunction seed(seedValue) {\n alphabet.seed(seedValue);\n return module.exports;\n}\n\n/**\n * Set the cluster worker or machine id\n * exposed as shortid.worker(int)\n * @param workerId worker must be positive integer. Number less than 16 is recommended.\n * returns shortid module so it can be chained.\n */\nfunction worker(workerId) {\n clusterWorkerId = workerId;\n return module.exports;\n}\n\n/**\n *\n * sets new characters to use in the alphabet\n * returns the shuffled alphabet\n */\nfunction characters(newCharacters) {\n if (newCharacters !== undefined) {\n alphabet.characters(newCharacters);\n }\n\n return alphabet.shuffled();\n}\n\n/**\n * Generate unique id\n * Returns string id\n */\nfunction generate() {\n return build(clusterWorkerId);\n}\n\n// Export all other functions as properties of the generate function\nmodule.exports = generate;\nmodule.exports.generate = generate;\nmodule.exports.seed = seed;\nmodule.exports.worker = worker;\nmodule.exports.characters = characters;\nmodule.exports.isValid = isValid;\n","'use strict';\nmodule.exports = require('./lib/index');\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FileLocation = exports.UriLocation = exports.UriLocationRaw = exports.BlobLocation = exports.LocalPathLocation = exports.Region = exports.NoAssemblyRegion = exports.PropTypes = exports.ElementId = void 0;\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _shortid = _interopRequireDefault(require(\"shortid\"));\n\nvar _mobxStateTree = require(\"mobx-state-tree\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _mobxReact = require(\"mobx-react\");\n\nvar _excluded = [\"baseUri\"];\n\nvar ElementId = _mobxStateTree.types.optional(_mobxStateTree.types.identifier, _shortid.default.generate); // PropTypes that are useful when working with instances of these in react components\n\n\nexports.ElementId = ElementId;\nvar PropTypes = {\n Region: _propTypes.default.shape({\n refName: _propTypes.default.string.isRequired,\n start: _propTypes.default.number.isRequired,\n end: _propTypes.default.number.isRequired\n }),\n ConfigSchema: _mobxReact.PropTypes.objectOrObservableObject,\n Feature: _propTypes.default.shape({\n get: _propTypes.default.func.isRequired,\n id: _propTypes.default.func.isRequired\n })\n};\nexports.PropTypes = PropTypes;\n\nvar NoAssemblyRegion = _mobxStateTree.types.model('NoAssemblyRegion', {\n refName: _mobxStateTree.types.string,\n start: _mobxStateTree.types.number,\n end: _mobxStateTree.types.number,\n reversed: _mobxStateTree.types.optional(_mobxStateTree.types.boolean, false)\n}).actions(function (self) {\n return {\n setRefName: function setRefName(newRefName) {\n self.refName = newRefName;\n }\n };\n});\n\nexports.NoAssemblyRegion = NoAssemblyRegion;\n\nvar Region = _mobxStateTree.types.compose('Region', NoAssemblyRegion, _mobxStateTree.types.model({\n assemblyName: _mobxStateTree.types.string\n}));\n\nexports.Region = Region;\n\nvar LocalPathLocation = _mobxStateTree.types.model('LocalPathLocation', {\n localPath: _mobxStateTree.types.string // TODO: refine\n\n});\n\nexports.LocalPathLocation = LocalPathLocation;\n\nvar BlobLocation = _mobxStateTree.types.model('BlobLocation', {\n name: _mobxStateTree.types.string,\n // TODO: refine\n blobId: _mobxStateTree.types.string\n});\n\nexports.BlobLocation = BlobLocation;\n\nvar UriLocationRaw = _mobxStateTree.types.model('UriLocation', {\n uri: _mobxStateTree.types.string,\n // TODO: refine\n baseUri: _mobxStateTree.types.maybe(_mobxStateTree.types.string)\n});\n\nexports.UriLocationRaw = UriLocationRaw;\n\nvar UriLocation = _mobxStateTree.types.snapshotProcessor(UriLocationRaw, {\n postProcessor: function postProcessor(snap) {\n var baseUri = snap.baseUri,\n rest = (0, _objectWithoutProperties2.default)(snap, _excluded);\n\n if (!baseUri) {\n return rest;\n }\n\n return snap;\n }\n});\n\nexports.UriLocation = UriLocation;\n\nvar FileLocation = _mobxStateTree.types.union(LocalPathLocation, UriLocation, BlobLocation);\n\nexports.FileLocation = FileLocation;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _mobxStateTree = require(\"mobx-state-tree\");\n\nvar _mst = require(\"../../util/types/mst\");\n\nvar BaseViewModel = _mobxStateTree.types.model('BaseView', {\n id: _mst.ElementId,\n displayName: _mobxStateTree.types.maybe(_mobxStateTree.types.string)\n}).volatile(function () {\n return (\n /* self */\n {\n width: 800\n }\n );\n}).views(function () {\n return (\n /* self */\n {\n menuItems: function menuItems() {\n return [];\n }\n }\n );\n}).actions(function (self) {\n return {\n setDisplayName: function setDisplayName(name) {\n self.displayName = name;\n },\n setWidth: function setWidth(newWidth) {\n self.width = newWidth;\n }\n };\n});\n\nvar _default = BaseViewModel; // eslint-disable-next-line @typescript-eslint/no-empty-interface,@typescript-eslint/interface-name-prefix\n\nexports.default = _default;","const Stockholm = function() {\n let obj = { gf: {}, // gf[tag] = ARRAY\n gc: {}, // gc[tag] = STRING\n gs: {}, // gs[tag][seqname] = ARRAY\n gr: {}, // gr[tag][seqname] = STRING\n seqname: [], // optional, specify ordering of rows\n seqdata: {} // seqdata[seqname] = STRING\n }\n Object.keys(obj).forEach ((prop) => this[prop] = obj[prop])\n return this\n}\n\nconst formatStartRegex = /^# STOCKHOLM 1.0/;\nconst formatEndRegex = /^\\/\\/\\s*$/;\nconst gfRegex = /^#=GF\\s+(\\S+)\\s+(.*?)\\s*$/;\nconst gcRegex = /^#=GC\\s+(\\S+)\\s+(.*?)\\s*$/;\nconst gsRegex = /^#=GS\\s+(\\S+)\\s+(\\S+)\\s+(.*?)\\s*$/;\nconst grRegex = /^#=GR\\s+(\\S+)\\s+(\\S+)\\s+(.*?)\\s*$/;\nconst lineRegex = /^\\s*(\\S+)\\s+(\\S+)\\s*$/;\nconst nonwhiteRegex = /\\S/;\n\nconst noFormatStart = \"No format header: # STOCKHOLM 1.0\";\nconst noFormatEnd = \"No format footer: //\";\nconst badLine = \"Malformed line\";\nconst atLine = (n) => \"(At line \" + (n+1) + \") \";\n\nconst sniff = (text) => formatStartRegex.test (text);\n\nconst validate = (text) => {\n try {\n parseAll (text, { strict: true })\n } catch (e) {\n return false\n }\n return true\n}\n\nconst error = (err) => { throw new Error (err); }\nconst warning = (err) => console.warn(err);\n\nconst parseAll = (text, opts) => {\n opts = opts || {}\n const maybeWarning = opts.quiet ? (() => null) : warning;\n const maybeError = opts.strict ? error : maybeWarning;\n let db = [], stock = null\n const lines = text.split(\"\\n\")\n lines.forEach ((line, n) => {\n const makeStock = () => {\n if (!stock) {\n maybeError (atLine(n) + noFormatStart);\n stock = new Stockholm();\n }\n };\n let match;\n if (formatStartRegex.test(line)) {\n if (stock) maybeError (atLine(n) + noFormatEnd);\n stock = new Stockholm();\n } else if (formatEndRegex.test(line)) {\n if (stock)\n db.push (stock);\n else\n maybeError (atLine(n) + noFormatStart);\n stock = null;\n } else if (match = gfRegex.exec(line)) {\n makeStock();\n stock.gf[match[1]] = stock.gf[match[1]] || [];\n stock.gf[match[1]].push (match[2]);\n } else if (match = gcRegex.exec(line)) {\n makeStock();\n stock.gc[match[1]] = stock.gc[match[1]] || '';\n stock.gc[match[1]] += match[2];\n } else if (match = gsRegex.exec(line)) {\n makeStock();\n stock.gs[match[2]] = stock.gs[match[2]] || {};\n stock.gs[match[2]][match[1]] = stock.gs[match[2]][match[1]] || [];\n stock.gs[match[2]][match[1]].push (match[3]);\n } else if (match = grRegex.exec(line)) {\n makeStock();\n stock.gr[match[2]] = stock.gr[match[2]] || {};\n stock.gr[match[2]][match[1]] = stock.gr[match[2]][match[1]] || '';\n stock.gr[match[2]][match[1]] += match[3];\n } else if (match = lineRegex.exec(line)) {\n makeStock();\n if (!stock.seqdata[match[1]]) {\n stock.seqdata[match[1]] = '';\n stock.seqname.push (match[1]);\n }\n stock.seqdata[match[1]] += match[2];\n } else if (nonwhiteRegex.test (line)) {\n error (atLine(n) + badLine);\n }\n })\n if (stock) {\n maybeError (\"Warning: no end line //\");\n db.push (stock);\n }\n return db;\n}\n\nconst parse = (text, opts) => {\n const db = parseAll (text, opts);\n if (db.length === 0)\n error (\"No alignments found\");\n if (db.length > 1)\n error (\"More than one alignment found\");\n return db[0];\n}\n\nconst fromSeqIndex = (seqdata, names) => {\n let stock = new Stockholm()\n names = names || Object.keys(seqdata) // specifying order is optional\n names.forEach ((name) => stock.addRow (name, seqdata[name]))\n return stock\n}\n\nconst fromRowList = (array) => {\n let stock = new Stockholm()\n array.forEach ((row) => stock.addRow (row[0], row[1]))\n return stock\n}\n\nStockholm.prototype.rows = function() {\n return this.seqname.length\n}\n\nStockholm.prototype.columns = function() {\n let cols = 0\n this.seqname.forEach ((name) => { cols = Math.max (cols, this.seqdata[name].length) })\n Object.keys(this.gr).forEach ((tag) => Object.keys(this.gr[tag]).forEach ((name) => {\n cols = Math.max (cols, this.gr[tag][name].length)\n }))\n return cols\n}\n\nStockholm.prototype.allNames = function() {\n let isName = {},\n names = [],\n addName = (name) => { if (!isName[name]) { isName[name] = true; names.push (name) } },\n addNames = (list) => list.forEach (addName);\n addNames (this.seqname);\n addNames (Object.keys (this.seqdata)); // just in case seqdata has been independently modified\n Object.keys(this.gr).forEach ((tag) => addNames (Object.keys(this.gr[tag])));\n Object.keys(this.gs).forEach ((tag) => addNames (Object.keys(this.gs[tag])));\n return names\n}\n\nStockholm.prototype.allTags = function() {\n let isTag = {}\n const addTags = (obj) => Object.keys(obj).forEach ((tag) => isTag[tag] = true)\n addTags (this.gc)\n addTags (this.gf)\n addTags (this.gr)\n addTags (this.gs)\n return Object.keys(isTag).sort()\n}\n\nStockholm.prototype.addRow = function (name, data) {\n if (this.seqdata[name])\n error (\"Duplicate row name\")\n this.seqname.push (name)\n this.seqdata[name] = data || ''\n return this\n}\n\nStockholm.prototype.deleteRow = function (name) {\n if (!this.seqdata[name])\n error (\"Row not found\")\n this.seqname = this.seqname.filter ((n) => n !== name);\n delete this.seqdata[name];\n return this\n}\n\nfunction leftPad (text, width) {\n while (text.length < width)\n text = ' ' + text\n return text\n}\n\nfunction rightPad (text, width) {\n while (text.length < width)\n text = text + ' '\n return text\n}\n\nfunction space (width) {\n return leftPad (\"\", width)\n}\n\nStockholm.prototype.toString = function (opts) {\n opts = opts || { width: 80, indentNames: false }\n const names = this.allNames(), cols = this.columns()\n const nameWidth = Math.max.apply (null, names.map ((name) => name.length).concat([0]))\n const tagWidth = Math.max.apply (null, this.allTags().map ((tag) => tag.length).concat([0]))\n const seqIndent = tagWidth ? (tagWidth + 6) : 0;\n const width = opts.width ? Math.max (1, opts.width - nameWidth - seqIndent - 1) : cols\n const pad = opts.indentNames ? leftPad : rightPad\n const padTagName = (opts.indentNames\n ? ((tag, name) => leftPad(tag,tagWidth) + \" \" + leftPad(name,nameWidth))\n : ((tag, name) => rightPad(tag+\" \"+name,tagWidth+nameWidth+1)))\n let offsets = [0]\n for (let offset = width; offset < cols; offset += width)\n offsets.push (offset)\n return \"# STOCKHOLM 1.0\\n\"\n + Object.keys(this.gf).sort().map (tag => this.gf[tag].map((line) => \"#=GF \" + pad(tag,tagWidth) + \" \" + line + \"\\n\").join('')).join('')\n + Object.keys(this.gs).sort().map (tag => Object.keys(this.gs[tag]).map((name) => this.gs[tag][name].map ((line) => \"#=GS \" + padTagName(tag,name) + \" \" + line + \"\\n\").join('')).join('')).join('')\n + offsets.map ((offset) =>\n Object.keys(this.gc).sort().map (tag => \"#=GC \" + pad(tag,tagWidth) + space(nameWidth+2) + this.gc[tag].substr(offset,width) + \"\\n\").join('')\n + names.map ((name) => Object.keys(this.gr).filter ((tag) => this.gr[tag][name]).sort().map ((tag) => \"#=GR \" + padTagName(tag,name) + \" \" + this.gr[tag][name].substr(offset,width) + \"\\n\").join('')\n + (this.seqdata[name]\n ? (pad(name,nameWidth+seqIndent)\n + \" \" + this.seqdata[name].substr(offset,width) + \"\\n\")\n : '')).join('')).join(\"\\n\")\n + \"//\\n\"\n}\n\nStockholm.prototype.toFasta = function (opts) {\n opts = opts || { width: 80 }\n const cols = this.columns()\n const width = opts.width || cols\n let offsets = [0]\n for (let offset = width; offset < cols; offset += width)\n offsets.push (offset)\n return this.allNames()\n .map ((name) =>\n (this.seqdata[name]\n ? (\">\" + name + \"\\n\"\n + offsets.map ((offset) => this.seqdata[name].substr (offset, width) + \"\\n\").join(''))\n : ''))\n .join('')\n}\n\nStockholm.prototype.toRowList = function (opts) {\n return this.allNames()\n .filter ((name) => this.seqdata[name])\n .map ((name) => [name, this.seqdata[name]])\n}\n\nif (typeof(module) !== 'undefined')\n module.exports = { sniff, validate, parse, parseAll, fromSeqIndex, fromRowList, Stockholm }\n","module.exports = require('./src/Stockholm')\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseBlocks = exports.parseBlock = exports.getSeqBounds = exports.getFirstNonEmptyLine = exports.parseHeader = exports.parseVersion = void 0;\nfunction parseVersion(line) {\n const res = line.match(/\\(?(\\d+(\\.\\d+)+)\\)?/);\n return res && res.length > 1 ? res[1] : \"\";\n}\nexports.parseVersion = parseVersion;\nfunction parseHeader(info) {\n const knownHeaders = [\"CLUSTAL\", \"PROBCONS\", \"MUSCLE\", \"MSAPROBS\", \"Kalign\"];\n if (!knownHeaders.find((l) => info.startsWith(l))) {\n console.warn(`${info} is not a known CLUSTAL header: ${knownHeaders.join(\",\")}, proceeding but could indicate an issue`);\n }\n const version = parseVersion(info);\n return { info, version };\n}\nexports.parseHeader = parseHeader;\nfunction getFirstNonEmptyLine(arr) {\n // There should be two blank lines after the header line\n let line = arr.next();\n while (!line.done && line.value.trim() === \"\") {\n line = arr.next();\n }\n return line.value;\n}\nexports.getFirstNonEmptyLine = getFirstNonEmptyLine;\nfunction getSeqBounds(line) {\n const fields = line.split(/\\s+/);\n const temp = line.slice(fields[0].length);\n const s = fields[0].length + temp.indexOf(fields[1]);\n const e = s + fields[1].length;\n return [s, e];\n}\nexports.getSeqBounds = getSeqBounds;\n// Use the first block to get the sequence identifiers\nfunction parseBlock(arr) {\n let line = getFirstNonEmptyLine(arr);\n const block = [];\n let consensusLine = \"\";\n if (!line)\n return undefined;\n while (line) {\n if (line[0] !== \" \")\n block.push(line);\n else\n consensusLine = line;\n line = arr.next().value;\n }\n const [start, end] = getSeqBounds(block[0]);\n const fields = block.map((s) => s.split(/\\s+/));\n const ids = fields.map((s) => s[0]);\n const seqs = block.map((s) => s.slice(start, end));\n let consensus = consensusLine.slice(start, end);\n // handle if the consensus trailing whitespace got trimmed\n const remainder = seqs[0].length - consensus.length;\n if (remainder) {\n consensus += \" \".repeat(remainder);\n }\n return { ids, seqs, consensus };\n}\nexports.parseBlock = parseBlock;\nfunction parseBlocks(arr) {\n let block;\n const res = parseBlock(arr);\n if (res !== undefined) {\n while ((block = parseBlock(arr))) {\n for (let i = 0; i < block.seqs.length; i++) {\n res.seqs[i] += block.seqs[i];\n }\n res.consensus += block.consensus;\n }\n }\n return res;\n}\nexports.parseBlocks = parseBlocks;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parse = exports.parseIter = void 0;\nconst util_1 = require(\"./util\");\nfunction parseIter(arr) {\n const line = util_1.getFirstNonEmptyLine(arr);\n if (!line)\n throw new Error(\"Empty file received\");\n const header = util_1.parseHeader(line);\n const res = util_1.parseBlocks(arr);\n if (res === undefined)\n throw new Error(\"No blocks parsed\");\n const alns = res.seqs.map((n, index) => ({ id: res.ids[index], seq: n }));\n const { consensus } = res;\n if (consensus.length != alns[0].seq.length) {\n throw new Error(`Consensus length != sequence length. Con ${consensus.length} seq ${alns[0].seq.length}`);\n }\n return { consensus, alns, header };\n}\nexports.parseIter = parseIter;\nfunction parse(contents) {\n const iter = contents.split(\"\\n\")[Symbol.iterator]();\n return parseIter(iter);\n}\nexports.parse = parse;\n","import { parse } from 'clustal-js';\nvar ClustalMSA = /** @class */ (function () {\n function ClustalMSA(text) {\n this.MSA = parse(text);\n }\n ClustalMSA.prototype.getMSA = function () {\n return this.MSA;\n };\n ClustalMSA.prototype.getRow = function (name) {\n var _a;\n return (_a = this.MSA.alns.find(function (aln) { return aln.id === name; })) === null || _a === void 0 ? void 0 : _a.seq.split('');\n };\n ClustalMSA.prototype.getWidth = function () {\n return this.MSA.alns[0].seq.length;\n };\n ClustalMSA.prototype.getDetails = function () {\n return this.MSA.header;\n };\n ClustalMSA.prototype.getNames = function () {\n return this.MSA.alns.map(function (aln) { return aln.id; });\n };\n ClustalMSA.prototype.getStructures = function () {\n return {};\n };\n Object.defineProperty(ClustalMSA.prototype, \"alignmentNames\", {\n get: function () {\n return [];\n },\n enumerable: false,\n configurable: true\n });\n ClustalMSA.prototype.getTree = function () {\n return {\n id: 'root',\n noTree: true,\n branchset: this.getNames().map(function (name) { return ({ id: name, name: name }); }),\n };\n };\n Object.defineProperty(ClustalMSA.prototype, \"seqConsensus\", {\n get: function () {\n return this.MSA.consensus;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ClustalMSA.prototype, \"secondaryStructureConsensus\", {\n get: function () {\n return undefined;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ClustalMSA.prototype, \"tracks\", {\n get: function () {\n var _a;\n return ((_a = this.seqConsensus) === null || _a === void 0 ? void 0 : _a.trim())\n ? [\n {\n id: 'seqConsensus',\n name: 'Sequence consensus',\n data: this.seqConsensus,\n customColorScheme: {\n '*': 'white',\n ':': 'grey',\n '.': 'darkgrey',\n ' ': 'black',\n },\n },\n ]\n : [];\n },\n enumerable: false,\n configurable: true\n });\n return ClustalMSA;\n}());\nexport default ClustalMSA;\n","/**\n * Newick format parser in JavaScript.\n *\n * Copyright (c) Jason Davies 2010.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n * Example tree (from http://en.wikipedia.org/wiki/Newick_format):\n *\n * +--0.1--A\n * F-----0.2-----B +-------0.3----C\n * +------------------0.5-----E\n * +---------0.4------D\n *\n * Newick format:\n * (A:0.1,B:0.2,(C:0.3,D:0.4)E:0.5)F;\n *\n * Converted to JSON:\n * {\n * name: \"F\",\n * branchset: [\n * {name: \"A\", length: 0.1},\n * {name: \"B\", length: 0.2},\n * {\n * name: \"E\",\n * length: 0.5,\n * branchset: [\n * {name: \"C\", length: 0.3},\n * {name: \"D\", length: 0.4}\n * ]\n * }\n * ]\n * }\n *\n * Converted to JSON, but with no names or lengths:\n * {\n * branchset: [\n * {}, {}, {\n * branchset: [{}, {}]\n * }\n * ]\n * }\n */\nexport default function parse(s) {\n var ancestors = [];\n var tree = {};\n var tokens = s.split(/\\s*(;|\\(|\\)|,|:)\\s*/);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var subtree = {};\n switch (token) {\n case '(': // new branchset\n tree.branchset = [subtree];\n ancestors.push(tree);\n tree = subtree;\n break;\n case ',': // another branch\n ancestors[ancestors.length - 1].branchset.push(subtree);\n tree = subtree;\n break;\n case ')': // optional name next\n tree = ancestors.pop();\n break;\n case ':': // optional length next\n break;\n default: {\n var x = tokens[i - 1];\n if (x === ')' || x === '(' || x === ',') {\n tree.name = token;\n }\n else if (x === ':') {\n tree.length = parseFloat(token);\n }\n }\n }\n }\n return tree;\n}\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport Stockholm from 'stockholm-js';\nimport parseNewick from '../parseNewick';\nimport { generateNodeIds } from '../util';\nvar StockholmMSA = /** @class */ (function () {\n function StockholmMSA(text, currentAlignment) {\n var res = Stockholm.parseAll(text);\n this.data = res;\n this.MSA = res[currentAlignment];\n }\n StockholmMSA.prototype.getMSA = function () {\n return this.MSA;\n };\n StockholmMSA.prototype.getRow = function (name) {\n var _a, _b;\n return (_b = (_a = this.MSA) === null || _a === void 0 ? void 0 : _a.seqdata[name]) === null || _b === void 0 ? void 0 : _b.split('');\n };\n StockholmMSA.prototype.getWidth = function () {\n var _a;\n var name = Object.keys((_a = this.MSA) === null || _a === void 0 ? void 0 : _a.seqdata)[0];\n return this.getRow(name).length;\n };\n Object.defineProperty(StockholmMSA.prototype, \"alignmentNames\", {\n get: function () {\n return this.data.map(function (aln, index) { var _a; return ((_a = aln.gf.DE) === null || _a === void 0 ? void 0 : _a[0]) || \"Alignment \".concat(index + 1); });\n },\n enumerable: false,\n configurable: true\n });\n StockholmMSA.prototype.getDetails = function () {\n var _a, _b;\n return {\n General: this.MSA.gf,\n Accessions: (_a = this.MSA.gs) === null || _a === void 0 ? void 0 : _a.AC,\n Dbxref: (_b = this.MSA.gs) === null || _b === void 0 ? void 0 : _b.DR,\n };\n };\n StockholmMSA.prototype.getRowDetails = function (rowName) {\n var _a, _b;\n return {\n name: rowName,\n accession: (_a = this.MSA.gs) === null || _a === void 0 ? void 0 : _a.AC[rowName],\n dbxref: (_b = this.MSA.gs) === null || _b === void 0 ? void 0 : _b.DR[rowName],\n };\n };\n StockholmMSA.prototype.getNames = function () {\n return Object.keys(this.MSA.seqdata);\n };\n StockholmMSA.prototype.getSeqCoords = function () { };\n StockholmMSA.prototype.getStructures = function () {\n var _a;\n var pdbRegex = /PDB; +(\\S+) +(\\S); ([0-9]+)-([0-9]+)/;\n var ent = this.MSA;\n return Object.entries(((_a = ent.gs) === null || _a === void 0 ? void 0 : _a.DR) || {})\n .map(function (_a) {\n var id = _a[0], dr = _a[1];\n return [id, pdbRegex.exec(dr)];\n })\n .filter(function (item) { return !!item[1]; })\n .map(function (_a) {\n var id = _a[0], match = _a[1];\n var pdb = match[1].toLowerCase();\n var chain = match[2];\n var startPos = +match[3];\n var endPos = +match[4];\n return { id: id, pdb: pdb, chain: chain, startPos: startPos, endPos: endPos };\n })\n .reduce(function (a, b) {\n var id = b.id, rest = __rest(b, [\"id\"]);\n if (!a[id]) {\n a[id] = [];\n }\n a[id].push(rest);\n return a;\n }, {});\n };\n StockholmMSA.prototype.getTree = function () {\n var _a, _b, _c;\n var tree = (_c = (_b = (_a = this.MSA) === null || _a === void 0 ? void 0 : _a.gf) === null || _b === void 0 ? void 0 : _b.NH) === null || _c === void 0 ? void 0 : _c[0];\n return tree\n ? generateNodeIds(parseNewick(tree))\n : {\n id: 'root',\n noTree: true,\n branchset: this.getNames().map(function (name) { return ({\n id: name,\n name: name,\n }); }),\n };\n };\n Object.defineProperty(StockholmMSA.prototype, \"seqConsensus\", {\n get: function () {\n var _a;\n return (_a = this.MSA.gc) === null || _a === void 0 ? void 0 : _a.seq_cons;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StockholmMSA.prototype, \"secondaryStructureConsensus\", {\n get: function () {\n var _a;\n return (_a = this.MSA.gc) === null || _a === void 0 ? void 0 : _a.SS_cons;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StockholmMSA.prototype, \"tracks\", {\n get: function () {\n return [\n {\n id: 'seqConsensus',\n name: 'Sequence consensus',\n data: this.seqConsensus,\n customColorScheme: {},\n },\n {\n id: 'secondaryStruct',\n name: 'Secondary-structure',\n data: this.secondaryStructureConsensus,\n customColorScheme: {\n '>': 'pink',\n '<': 'lightblue',\n },\n },\n ];\n },\n enumerable: false,\n configurable: true\n });\n return StockholmMSA;\n}());\nexport default StockholmMSA;\n","var FastaMSA = /** @class */ (function () {\n function FastaMSA(text) {\n var seq = {};\n var name = '';\n var re = /^>(\\S+)/;\n text.split('\\n').forEach(function (line) {\n var match = re.exec(line);\n if (match) {\n seq[(name = match[1])] = '';\n }\n else if (name) {\n seq[name] = seq[name] + line.replace(/[ \\t]/g, '');\n }\n });\n this.MSA = { seqdata: seq };\n }\n FastaMSA.prototype.getMSA = function () {\n return this.MSA;\n };\n FastaMSA.prototype.getNames = function () {\n return Object.keys(this.MSA.seqdata);\n };\n FastaMSA.prototype.getRow = function (name) {\n var _a, _b;\n return (_b = (_a = this.MSA) === null || _a === void 0 ? void 0 : _a.seqdata[name]) === null || _b === void 0 ? void 0 : _b.split('');\n };\n FastaMSA.prototype.getWidth = function () {\n var _a;\n var name = Object.keys((_a = this.MSA) === null || _a === void 0 ? void 0 : _a.seqdata)[0];\n return this.getRow(name).length;\n };\n FastaMSA.prototype.getStructures = function () {\n return {};\n };\n Object.defineProperty(FastaMSA.prototype, \"alignmentNames\", {\n get: function () {\n return [];\n },\n enumerable: false,\n configurable: true\n });\n FastaMSA.prototype.getDetails = function () {\n return {};\n };\n FastaMSA.prototype.getTree = function () {\n return {\n id: 'root',\n noTree: true,\n branchset: this.getNames().map(function (name) { return ({\n id: name,\n name: name,\n }); }),\n };\n };\n Object.defineProperty(FastaMSA.prototype, \"seqConsensus\", {\n get: function () {\n return undefined;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FastaMSA.prototype, \"secondaryStructureConsensus\", {\n get: function () {\n return undefined;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FastaMSA.prototype, \"tracks\", {\n get: function () {\n return [];\n },\n enumerable: false,\n configurable: true\n });\n return FastaMSA;\n}());\nexport default FastaMSA;\n","import React, { useRef, useMemo, useEffect } from 'react';\nimport { useTheme } from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport { colorContrast } from '../util';\nvar AnnotationBlock = observer(function (_a) {\n var track = _a.track, model = _a.model, offsetX = _a.offsetX;\n var blockSize = model.blockSize, scrollX = model.scrollX, bgColor = model.bgColor, modelColorScheme = model.colorScheme, colWidth = model.colWidth, rowHeight = model.rowHeight, highResScaleFactor = model.highResScaleFactor;\n var _b = track.model, customColorScheme = _b.customColorScheme, data = _b.data;\n var colorScheme = customColorScheme || modelColorScheme;\n var theme = useTheme();\n var ref = useRef(null);\n var contrastScheme = useMemo(function () { return colorContrast(colorScheme, theme); }, [colorScheme, theme]);\n useEffect(function () {\n if (!ref.current) {\n return;\n }\n var ctx = ref.current.getContext('2d');\n if (!ctx) {\n return;\n }\n // this logic is very similar to MSACanvas\n ctx.resetTransform();\n ctx.scale(highResScaleFactor, highResScaleFactor);\n ctx.clearRect(0, 0, blockSize, rowHeight);\n ctx.translate(-offsetX, 0);\n ctx.textAlign = 'center';\n ctx.font = ctx.font.replace(/\\d+px/, \"\".concat(Math.max(8, rowHeight - 8), \"px\"));\n var xStart = Math.max(0, Math.floor(offsetX / colWidth));\n var xEnd = Math.max(0, Math.ceil((offsetX + blockSize) / colWidth));\n var str = data === null || data === void 0 ? void 0 : data.slice(xStart, xEnd);\n for (var i = 0; str && i < str.length; i++) {\n var letter = str[i];\n var color = colorScheme[letter.toUpperCase()];\n if (bgColor) {\n var x = i * colWidth + offsetX - (offsetX % colWidth);\n ctx.fillStyle = color || 'white';\n ctx.fillRect(x, 0, colWidth, rowHeight);\n if (rowHeight >= 10 && colWidth >= rowHeight / 2) {\n ctx.fillStyle = contrastScheme[letter.toUpperCase()] || 'black';\n ctx.fillText(letter, x + colWidth / 2, rowHeight / 2 + 1); //+1 to avoid cutoff at height:10\n }\n }\n }\n }, [\n bgColor,\n blockSize,\n colWidth,\n rowHeight,\n offsetX,\n contrastScheme,\n colorScheme,\n highResScaleFactor,\n data,\n ]);\n return (React.createElement(\"canvas\", { ref: ref, height: rowHeight * highResScaleFactor, width: blockSize * highResScaleFactor, style: {\n position: 'absolute',\n left: scrollX + offsetX,\n width: blockSize,\n height: rowHeight,\n } }));\n});\nvar AnnotationTrack = observer(function (_a) {\n var track = _a.track, model = _a.model;\n var blocksX = model.blocksX, msaAreaWidth = model.msaAreaWidth, rowHeight = model.rowHeight;\n return (React.createElement(\"div\", { style: {\n position: 'relative',\n height: rowHeight,\n width: msaAreaWidth,\n overflow: 'hidden',\n } }, blocksX.map(function (bx) { return (React.createElement(AnnotationBlock, { key: bx, track: track, model: model, offsetX: bx })); })));\n});\nexport default AnnotationTrack;\n","import RBush from 'rbush';\nvar Layout = /** @class */ (function () {\n function Layout(_a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.maxHeight, maxHeight = _c === void 0 ? 10000 : _c;\n this.maxHeightReached = false;\n this.rbush = new RBush();\n this.rectangles = new Map();\n this.maxHeight = Math.ceil(maxHeight);\n this.pTotalHeight = 0; // total height, in units of bitmap squares (px/pitchY)\n }\n /**\n * @returns top position for the rect, or Null if laying\n * out the rect would exceed maxHeighe\n */\n Layout.prototype.addRect = function (id, left, right, height, data) {\n // add to rbush\n var existingRecord = this.rectangles.get(id);\n if (existingRecord) {\n return existingRecord.minY;\n }\n var currHeight = 0;\n while (this.rbush.collides({\n minX: left,\n minY: currHeight,\n maxX: right,\n maxY: currHeight + height,\n }) &&\n currHeight <= this.maxHeight) {\n currHeight += 1;\n }\n var record = {\n minX: left,\n minY: currHeight,\n maxX: right,\n maxY: currHeight + height,\n id: id,\n data: data,\n };\n this.rbush.insert(record);\n this.rectangles.set(id, record);\n this.pTotalHeight = Math.max(this.pTotalHeight, currHeight);\n return currHeight;\n };\n Object.defineProperty(Layout.prototype, \"totalHeight\", {\n get: function () {\n return this.pTotalHeight;\n },\n enumerable: false,\n configurable: true\n });\n return Layout;\n}());\nexport default Layout;\n","import React, { useRef, useMemo, useEffect } from 'react';\nimport { observer } from 'mobx-react';\nimport { getSnapshot, isStateTreeNode } from 'mobx-state-tree';\nimport Layout from '../layout';\nvar AnnotationBlock = observer(function (_a) {\n var track = _a.track, model = _a.model, offsetX = _a.offsetX;\n var blockSize = model.blockSize, colWidth = model.colWidth, blanks = model.blanks, rowHeight = model.rowHeight, highResScaleFactor = model.highResScaleFactor, scrollX = model.scrollX;\n var _b = track.model, height = _b.height, features = _b.features, associatedRowName = _b.associatedRowName;\n var feats = isStateTreeNode(features)\n ? getSnapshot(features)\n : features;\n var layout = useMemo(function () {\n var temp = new Layout();\n feats === null || feats === void 0 ? void 0 : feats.forEach(function (feature, index) {\n var start = feature.start, end = feature.end;\n if (associatedRowName) {\n var s = model.rowSpecificBpToPx(associatedRowName, start - 1);\n var e = model.rowSpecificBpToPx(associatedRowName, end);\n temp.addRect(\"\".concat(index), s, e, rowHeight, feature);\n }\n else {\n var s = model.globalBpToPx(start - 1);\n var e = model.globalBpToPx(end);\n temp.addRect(\"\".concat(index), s, e, rowHeight, feature);\n }\n });\n return temp;\n }, [rowHeight, feats, associatedRowName, model, blanks]);\n var ref = useRef(null);\n var labelRef = useRef(null);\n var mouseoverRef = useRef(null);\n useEffect(function () {\n if (!ref.current) {\n return;\n }\n var ctx = ref.current.getContext('2d');\n if (!ctx) {\n return;\n }\n ctx.resetTransform();\n ctx.scale(highResScaleFactor, highResScaleFactor);\n ctx.clearRect(0, 0, blockSize, height);\n ctx.translate(-offsetX, 0);\n ctx.textAlign = 'center';\n ctx.font = ctx.font.replace(/\\d+px/, \"\".concat(Math.max(8, rowHeight - 8), \"px\"));\n var xStart = Math.max(0, Math.floor(offsetX / colWidth));\n ctx.fillStyle = 'goldenrod';\n layout.rectangles.forEach(function (value) {\n var minX = value.minX, maxX = value.maxX, minY = value.minY, maxY = value.maxY;\n var x1 = (minX - xStart) * colWidth + offsetX - (offsetX % colWidth);\n var x2 = (maxX - xStart) * colWidth + offsetX - (offsetX % colWidth);\n if (x2 - x1 > 0) {\n ctx.fillRect(x1, minY, x2 - x1, (maxY - minY) / 2);\n }\n });\n }, [\n associatedRowName,\n blockSize,\n colWidth,\n layout.rectangles,\n model,\n rowHeight,\n height,\n offsetX,\n highResScaleFactor,\n features,\n blanks,\n ]);\n useEffect(function () {\n if (!labelRef.current) {\n return;\n }\n var ctx = labelRef.current.getContext('2d');\n if (!ctx) {\n return;\n }\n // this logic is very similar to MSACanvas\n ctx.resetTransform();\n ctx.scale(highResScaleFactor, highResScaleFactor);\n ctx.clearRect(0, 0, blockSize, height);\n ctx.translate(-offsetX, 0);\n ctx.textAlign = 'center';\n ctx.font = ctx.font.replace(/\\d+px/, \"\".concat(Math.max(8, rowHeight - 8), \"px\"));\n ctx.fillStyle = 'black';\n ctx.textAlign = 'left';\n layout.rectangles.forEach(function (value) {\n var _a, _b, _c, _d;\n var minX = value.minX, maxX = value.maxX, maxY = value.maxY, minY = value.minY;\n var feature = value.data;\n var x1 = minX * colWidth;\n var x2 = maxX * colWidth;\n if (x2 - x1 > 0) {\n var note = (_b = (_a = feature.attributes) === null || _a === void 0 ? void 0 : _a.Note) === null || _b === void 0 ? void 0 : _b[0];\n var name_1 = (_d = (_c = feature.attributes) === null || _c === void 0 ? void 0 : _c.Name) === null || _d === void 0 ? void 0 : _d[0];\n var type = feature.type;\n ctx.fillText([type, name_1, note].filter(function (f) { return !!f; }).join(' - '), Math.max(Math.min(-scrollX, x2), x1), minY + (maxY - minY));\n }\n });\n }, [\n blockSize,\n colWidth,\n scrollX,\n highResScaleFactor,\n height,\n layout.rectangles,\n offsetX,\n features,\n model,\n rowHeight,\n blanks,\n ]);\n return !features ? null : (React.createElement(React.Fragment, null,\n React.createElement(\"canvas\", { ref: ref, height: height * highResScaleFactor, width: blockSize * highResScaleFactor, style: {\n position: 'absolute',\n left: scrollX + offsetX,\n width: blockSize,\n height: height,\n } }),\n React.createElement(\"canvas\", { ref: labelRef, height: height * highResScaleFactor, width: blockSize * highResScaleFactor, style: {\n position: 'absolute',\n left: scrollX + offsetX,\n width: blockSize,\n height: height,\n } }),\n React.createElement(\"canvas\", { ref: mouseoverRef, height: height * highResScaleFactor, width: blockSize * highResScaleFactor, style: {\n position: 'absolute',\n left: scrollX + offsetX,\n width: blockSize,\n height: height,\n } })));\n});\nvar AnnotationTrack = observer(function (_a) {\n var model = _a.model, track = _a.track;\n var blocksX = model.blocksX, msaAreaWidth = model.msaAreaWidth;\n var height = track.model.height;\n return (React.createElement(\"div\", { style: {\n position: 'relative',\n height: height,\n width: msaAreaWidth,\n overflow: 'hidden',\n } }, blocksX.map(function (bx) { return (React.createElement(AnnotationBlock, { track: track, key: bx, model: model, offsetX: bx })); })));\n});\nexport default AnnotationTrack;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { cast, types, addDisposer } from 'mobx-state-tree';\nimport { hierarchy, cluster } from 'd3-hierarchy';\nimport { ascending, max } from 'd3-array';\nimport { FileLocation, ElementId } from '@jbrowse/core/util/types/mst';\nimport { openLocation } from '@jbrowse/core/util/io';\nimport { autorun } from 'mobx';\nimport BaseViewModel from '@jbrowse/core/pluggableElementTypes/models/BaseViewModel';\nimport Stockholm from 'stockholm-js';\nimport ClustalMSA from './parsers/ClustalMSA';\nimport StockholmMSA from './parsers/StockholmMSA';\nimport FastaMSA from './parsers/FastaMSA';\nimport parseNewick from './parseNewick';\nimport colorSchemes from './colorSchemes';\nimport { generateNodeIds } from './util';\nimport TextTrack from './components/TextTrack';\nimport BoxTrack from './components/BoxTrack';\nfunction skipBlanks(blanks, arg) {\n var s = '';\n var b = 0;\n for (var j = 0; j < arg.length; j++) {\n if (j === blanks[b]) {\n b++;\n }\n else {\n s += arg[j];\n }\n }\n return s;\n}\nfunction setBrLength(d, y0, k) {\n var _a;\n //@ts-ignore\n d.len = (y0 += Math.max(d.data.length || 0, 0)) * k;\n (_a = d.children) === null || _a === void 0 ? void 0 : _a.forEach(function (d) {\n setBrLength(d, y0, k);\n });\n}\nfunction maxLength(d) {\n return (d.data.length || 1) + (d.children ? max(d.children, maxLength) : 0);\n}\n// Collapse the node and all it's children, from\n// https://bl.ocks.org/d3noob/43a860bc0024792f8803bba8ca0d5ecd\nfunction collapse(d) {\n if (d.children) {\n //@ts-ignore\n d._children = d.children;\n //@ts-ignore\n d._children.forEach(collapse);\n //@ts-ignore\n d.children = null;\n }\n}\nfunction clamp(min, num, max) {\n return Math.min(Math.max(num, min), max);\n}\nvar StructureModel = types.model({\n id: types.identifier,\n structure: types.model({\n pdb: types.string,\n startPos: types.number,\n endPos: types.number,\n }),\n range: types.maybe(types.string),\n});\nvar UniprotTrack = types\n .model({\n id: types.string,\n accession: types.string,\n name: types.string,\n associatedRowName: types.string,\n height: types.optional(types.number, 100),\n})\n .volatile(function () { return ({\n error: undefined,\n data: undefined,\n}); })\n .actions(function (self) { return ({\n setError: function (error) {\n self.error = error;\n },\n setData: function (data) {\n self.data = data;\n },\n}); })\n .actions(function (self) { return ({\n afterCreate: function () {\n var _this = this;\n addDisposer(self, autorun(function () { return __awaiter(_this, void 0, void 0, function () {\n var accession, url, response, text, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n accession = self.accession;\n url = \"https://www.uniprot.org/uniprot/\".concat(accession, \".gff\");\n return [4 /*yield*/, fetch(url)];\n case 1:\n response = _a.sent();\n if (!response.ok) {\n throw new Error(\"HTTP \".concat(response.status, \" \").concat(response.statusText, \" fetching \").concat(url));\n }\n return [4 /*yield*/, response.text()];\n case 2:\n text = _a.sent();\n self.setData(text);\n return [3 /*break*/, 4];\n case 3:\n e_1 = _a.sent();\n self.setError(e_1);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n }); }));\n },\n}); })\n .views(function (self) { return ({\n get loading() {\n return !self.data;\n },\n get features() {\n var _a;\n return (_a = self.data) === null || _a === void 0 ? void 0 : _a.split('\\n').map(function (f) { return f.trim(); }).filter(function (f) { return !!f; }).filter(function (f) { return !f.startsWith('#'); }).map(function (f) {\n var _a = f.split('\\t'), seq_id = _a[0], source = _a[1], type = _a[2], start = _a[3], end = _a[4], score = _a[5], strand = _a[6], phase = _a[7], col9 = _a[8];\n return __assign({ seq_id: seq_id, source: source, type: type, start: +start, end: +end, score: +score, strand: strand, phase: phase }, Object.fromEntries(col9\n .split(';')\n .map(function (f) { return f.trim(); })\n .filter(function (f) { return !!f; })\n .map(function (f) { return f.split('='); })\n .map(function (_a) {\n var key = _a[0], val = _a[1];\n return [\n key.trim(),\n decodeURIComponent(val).trim().split(',').join(' '),\n ];\n })));\n });\n },\n}); });\nvar MSAModel = types\n .model('MsaView', {\n id: ElementId,\n type: types.literal('MsaView'),\n height: types.optional(types.number, 550),\n treeAreaWidth: types.optional(types.number, 400),\n treeWidth: types.optional(types.number, 300),\n rowHeight: 20,\n scrollY: 0,\n scrollX: 0,\n resizeHandleWidth: 5,\n blockSize: 1000,\n mouseRow: types.maybe(types.number),\n mouseCol: types.maybe(types.number),\n selectedStructures: types.array(StructureModel),\n labelsAlignRight: false,\n colWidth: 16,\n showBranchLen: true,\n bgColor: true,\n drawTree: true,\n drawNodeBubbles: true,\n highResScaleFactor: 2,\n colorSchemeName: 'maeditor',\n treeFilehandle: types.maybe(FileLocation),\n msaFilehandle: types.maybe(FileLocation),\n currentAlignment: 0,\n collapsed: types.array(types.string),\n showOnly: types.maybe(types.string),\n boxTracks: types.array(UniprotTrack),\n turnedOffTracks: types.map(types.boolean),\n annotatedRegions: types.array(types.model({\n start: types.number,\n end: types.number,\n attributes: types.frozen(),\n })),\n data: types.optional(types\n .model({\n tree: types.maybe(types.string),\n msa: types.maybe(types.string),\n })\n .actions(function (self) { return ({\n setTree: function (tree) {\n self.tree = tree;\n },\n setMSA: function (msa) {\n self.msa = msa;\n },\n }); }), { tree: '', msa: '' }),\n})\n .volatile(function () { return ({\n error: undefined,\n margin: { left: 20, top: 20 },\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n DialogComponent: undefined,\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n DialogProps: undefined,\n // annotations\n annotPos: undefined,\n}); })\n .actions(function (self) { return ({\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n setDialogComponent: function (dlg, props) {\n self.DialogComponent = dlg;\n self.DialogProps = props;\n },\n setHeight: function (height) {\n self.height = height;\n },\n addStructureToSelection: function (elt) {\n self.selectedStructures.push(elt);\n },\n removeStructureFromSelection: function (elt) {\n var r = self.selectedStructures.find(function (node) { return node.id === elt.id; });\n if (r) {\n self.selectedStructures.remove(r);\n }\n },\n toggleStructureSelection: function (elt) {\n var r = self.selectedStructures.find(function (node) { return node.id === elt.id; });\n if (r) {\n self.selectedStructures.remove(r);\n }\n else {\n self.selectedStructures.push(elt);\n }\n },\n clearSelectedStructures: function () {\n //@ts-ignore\n self.selectedStructures = [];\n },\n setError: function (error) {\n if (error) {\n console.error(error);\n }\n self.error = error;\n },\n setMousePos: function (col, row) {\n self.mouseCol = col;\n self.mouseRow = row;\n },\n setRowHeight: function (n) {\n self.rowHeight = n;\n },\n setColWidth: function (n) {\n self.colWidth = n;\n },\n setColorSchemeName: function (name) {\n self.colorSchemeName = name;\n },\n setScrollY: function (n) {\n self.scrollY = n;\n },\n setScrollX: function (n) {\n self.scrollX = n;\n },\n setTreeAreaWidth: function (n) {\n self.treeAreaWidth = n;\n },\n setTreeWidth: function (n) {\n self.treeWidth = n;\n },\n setCurrentAlignment: function (n) {\n self.currentAlignment = n;\n },\n toggleLabelsAlignRight: function () {\n self.labelsAlignRight = !self.labelsAlignRight;\n },\n toggleDrawTree: function () {\n self.drawTree = !self.drawTree;\n },\n toggleCollapsed: function (node) {\n if (self.collapsed.includes(node)) {\n self.collapsed.remove(node);\n }\n else {\n self.collapsed.push(node);\n }\n },\n setShowOnly: function (node) {\n self.showOnly = node;\n },\n toggleBranchLen: function () {\n self.showBranchLen = !self.showBranchLen;\n },\n toggleBgColor: function () {\n self.bgColor = !self.bgColor;\n },\n toggleNodeBubbles: function () {\n self.drawNodeBubbles = !self.drawNodeBubbles;\n },\n setData: function (data) {\n self.data = cast(data);\n },\n setMSAFilehandle: function (msaFilehandle) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n self.msaFilehandle = msaFilehandle;\n return [2 /*return*/];\n });\n });\n },\n setTreeFilehandle: function (treeFilehandle) {\n return __awaiter(this, void 0, void 0, function () {\n var r;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(treeFilehandle && 'blobId' in treeFilehandle)) return [3 /*break*/, 2];\n return [4 /*yield*/, openLocation(treeFilehandle).readFile('utf8')];\n case 1:\n r = (_a.sent());\n this.setTree(r);\n return [3 /*break*/, 3];\n case 2:\n self.treeFilehandle = treeFilehandle;\n _a.label = 3;\n case 3: return [2 /*return*/];\n }\n });\n });\n },\n setMSA: function (result) {\n self.data.setMSA(result);\n },\n setTree: function (result) {\n self.data.setTree(result);\n },\n afterCreate: function () {\n var _this = this;\n addDisposer(self, autorun(function () { return __awaiter(_this, void 0, void 0, function () {\n var treeFilehandle, _a, e_2;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n treeFilehandle = self.treeFilehandle;\n if (!treeFilehandle) return [3 /*break*/, 4];\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n _a = this.setTree;\n return [4 /*yield*/, openLocation(treeFilehandle).readFile('utf8')];\n case 2:\n _a.apply(this, [(_b.sent())]);\n return [3 /*break*/, 4];\n case 3:\n e_2 = _b.sent();\n this.setError(e_2);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n }); }));\n addDisposer(self, autorun(function () { return __awaiter(_this, void 0, void 0, function () {\n var msaFilehandle, _a, e_3;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n msaFilehandle = self.msaFilehandle;\n if (!msaFilehandle) return [3 /*break*/, 4];\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n _a = this.setMSA;\n return [4 /*yield*/, openLocation(msaFilehandle).readFile('utf8')];\n case 2:\n _a.apply(this, [(_b.sent())]);\n return [3 /*break*/, 4];\n case 3:\n e_3 = _b.sent();\n this.setError(e_3);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n }); }));\n },\n}); })\n .views(function (self) {\n var oldBlocksX = [];\n var oldBlocksY = [];\n var oldValX = 0;\n var oldValY = 0;\n return {\n get initialized() {\n return ((self.data.msa ||\n self.data.tree ||\n self.msaFilehandle ||\n self.treeFilehandle) &&\n !self.error);\n },\n get blocksX() {\n var scrollX = self.scrollX, size = self.blockSize, colWidth = self.colWidth;\n var ret = -(size * Math.floor(scrollX / size)) - size;\n var b = [];\n for (var i = ret; i < ret + size * 3; i += size) {\n if (i + size > 0) {\n b.push(i);\n }\n }\n if (JSON.stringify(b) !== JSON.stringify(oldBlocksX) ||\n colWidth !== oldValX) {\n oldBlocksX = b;\n oldValX = colWidth;\n }\n return oldBlocksX;\n },\n get blocksY() {\n var scrollY = self.scrollY, size = self.blockSize, rowHeight = self.rowHeight;\n var ret = -(size * Math.floor(scrollY / size)) - 2 * size;\n var b = [];\n for (var i = ret; i < ret + size * 3; i += size) {\n if (i + size > 0) {\n b.push(i);\n }\n }\n if (JSON.stringify(b) !== JSON.stringify(oldBlocksY) ||\n rowHeight !== oldValY) {\n oldBlocksY = b;\n oldValY = rowHeight;\n }\n return oldBlocksY;\n },\n };\n})\n .views(function (self) { return ({\n get blocks2d() {\n return self.blocksY.map(function (by) { return self.blocksX.map(function (bx) { return [bx, by]; }); }).flat();\n },\n get done() {\n return self.initialized && (self.data.msa || self.data.tree);\n },\n get colorScheme() {\n return colorSchemes[self.colorSchemeName];\n },\n get alignmentDetails() {\n var _a;\n return ((_a = this.MSA) === null || _a === void 0 ? void 0 : _a.getDetails()) || {};\n },\n getRowDetails: function (name) {\n var _a, _b;\n //@ts-ignore\n var details = (_b = (_a = this.MSA) === null || _a === void 0 ? void 0 : _a.getRowDetails) === null || _b === void 0 ? void 0 : _b.call(_a, name);\n var matches = name.match(/\\S+\\/(\\d+)-(\\d+)/);\n return __assign(__assign({}, details), (matches && { range: { start: +matches[1], end: +matches[2] } }));\n },\n get currentAlignmentName() {\n return this.alignmentNames[self.currentAlignment];\n },\n get alignmentNames() {\n var _a;\n return ((_a = this.MSA) === null || _a === void 0 ? void 0 : _a.alignmentNames) || [];\n },\n get noTree() {\n return !!this.tree.noTree;\n },\n get menuItems() {\n return [];\n },\n get MSA() {\n var text = self.data.msa;\n if (text) {\n if (Stockholm.sniff(text)) {\n return new StockholmMSA(text, self.currentAlignment);\n }\n else if (text.startsWith('>')) {\n return new FastaMSA(text);\n }\n else {\n return new ClustalMSA(text);\n }\n }\n return null;\n },\n get numColumns() {\n var _a;\n return ((((_a = this.MSA) === null || _a === void 0 ? void 0 : _a.getWidth()) || 0) - this.blanks.length) * self.colWidth;\n },\n get tree() {\n var _a;\n return self.data.tree\n ? generateNodeIds(parseNewick(self.data.tree))\n : ((_a = this.MSA) === null || _a === void 0 ? void 0 : _a.getTree()) || { noTree: true };\n },\n get rowNames() {\n return this.hierarchy.leaves().map(function (node) { return node.data.name; });\n },\n get mouseOverRowName() {\n return self.mouseRow !== undefined\n ? this.rowNames[self.mouseRow]\n : undefined;\n },\n getMouseOverResidue: function (rowName) {\n return this.columns[rowName];\n },\n get root() {\n var hier = hierarchy(this.tree, function (d) { return d.branchset; })\n .sum(function (d) { return (d.branchset ? 0 : 1); })\n .sort(function (a, b) {\n return ascending(a.data.length || 1, b.data.length || 1);\n });\n if (self.showOnly) {\n var res = hier.find(function (node) { return node.data.id === self.showOnly; });\n if (res) {\n hier = res;\n }\n }\n if (self.collapsed.length) {\n self.collapsed\n .map(function (collapsedId) {\n return hier.find(function (node) { return node.data.id === collapsedId; });\n })\n .filter(function (f) { return !!f; })\n .map(function (node) { return collapse(node); });\n }\n return hier;\n },\n get structures() {\n var _a;\n return ((_a = this.MSA) === null || _a === void 0 ? void 0 : _a.getStructures()) || {};\n },\n get inverseStructures() {\n var map = Object.entries(this.structures)\n .map(function (_a) {\n var key = _a[0], val = _a[1];\n return val.map(function (pdbEntry) { return [pdbEntry.pdb, { id: key }]; });\n })\n .flat();\n return Object.fromEntries(map);\n },\n get msaAreaWidth() {\n //@ts-ignore\n return self.width - self.treeAreaWidth;\n },\n get blanks() {\n var _this = this;\n var _a;\n var blanks = [];\n var strs = this.hierarchy\n .leaves()\n .map(function (_a) {\n var _b;\n var data = _a.data;\n return (_b = _this.MSA) === null || _b === void 0 ? void 0 : _b.getRow(data.name);\n })\n .filter(function (item) { return !!item; });\n for (var i = 0; i < ((_a = strs[0]) === null || _a === void 0 ? void 0 : _a.length); i++) {\n var counter = 0;\n for (var j = 0; j < strs.length; j++) {\n if (strs[j][i] === '-') {\n counter++;\n }\n }\n if (counter === strs.length) {\n blanks.push(i);\n }\n }\n return blanks;\n },\n get rows() {\n var _this = this;\n return this.hierarchy\n .leaves()\n .map(function (_a) {\n var _b;\n var data = _a.data;\n return [data.name, (_b = _this.MSA) === null || _b === void 0 ? void 0 : _b.getRow(data.name)];\n })\n .filter(function (f) { return !!f[1]; });\n },\n get columns() {\n var rows = this.rows;\n var cols = this.columns2d;\n return Object.fromEntries(rows.map(function (row, index) { return [row[0], cols[index]]; }));\n },\n get columns2d() {\n var strs = this.rows.map(function (r) { return r[1]; });\n var ret = [];\n for (var i = 0; i < strs.length; i++) {\n ret.push(skipBlanks(this.blanks, strs[i]));\n }\n return ret;\n },\n get colStats() {\n var r = [];\n var m = this.columns2d;\n for (var i = 0; i < m.length; i++) {\n for (var j = 0; j < m[i].length; j++) {\n var l = r[j] || {};\n if (!l[m[i][j]]) {\n l[m[i][j]] = 0;\n }\n l[m[i][j]]++;\n r[j] = l;\n }\n }\n return r;\n },\n // generates a new tree that is clustered with x,y positions\n get hierarchy() {\n var root = this.root;\n var clust = cluster()\n .size([this.totalHeight, self.treeWidth])\n .separation(function () { return 1; });\n clust(root);\n setBrLength(root, \n //@ts-ignore\n (root.data.length = 0), self.treeWidth / maxLength(root));\n return root;\n },\n get totalHeight() {\n return this.root.leaves().length * self.rowHeight;\n },\n}); })\n .actions(function (self) { return ({\n addUniprotTrack: function (node) {\n if (self.boxTracks.find(function (t) { return t.name === node.name; })) {\n if (self.turnedOffTracks.has(node.name)) {\n this.toggleTrack(node.name);\n }\n }\n else {\n self.boxTracks.push(__assign(__assign({}, node), { id: node.name, associatedRowName: node.name }));\n }\n },\n doScrollY: function (deltaY) {\n self.scrollY = clamp(-self.totalHeight + 10, self.scrollY + deltaY, 0);\n },\n doScrollX: function (deltaX) {\n self.scrollX = clamp(-self.numColumns + (self.msaAreaWidth - 100), self.scrollX + deltaX, 0);\n },\n setMouseoveredColumn: function (n, chain, file) {\n var _a;\n var j = 0;\n var i = 0;\n var id = (self.inverseStructures[file.slice(0, -4)] || {}).id;\n var row = (_a = self.MSA) === null || _a === void 0 ? void 0 : _a.getRow(id);\n if (row) {\n for (i = 0; i < row.length && j < n; i++) {\n if (row[i] !== '-') {\n j++;\n }\n }\n self.mouseCol = j + 1;\n }\n else {\n self.mouseCol = undefined;\n }\n },\n toggleTrack: function (id) {\n if (self.turnedOffTracks.has(id)) {\n self.turnedOffTracks.delete(id);\n }\n else {\n self.turnedOffTracks.set(id, true);\n }\n },\n}); })\n .views(function (self) { return ({\n get secondaryStructureConsensus() {\n var _a;\n return (_a = self.MSA) === null || _a === void 0 ? void 0 : _a.secondaryStructureConsensus;\n },\n get seqConsensus() {\n var _a;\n return (_a = self.MSA) === null || _a === void 0 ? void 0 : _a.seqConsensus;\n },\n get conservation() {\n var m = self.columns2d;\n if (m.length) {\n for (var i = 0; i < m[0].length; i++) {\n var col = [];\n for (var j = 0; j < m.length; j++) {\n col.push(m[j][i]);\n }\n }\n }\n return ['a'];\n },\n get tracks() {\n var blanks = self.blanks;\n var adapterTracks = self.MSA\n ? self.MSA.tracks.map(function (track) {\n var data = track.data;\n return {\n model: __assign(__assign({}, track), { data: data ? skipBlanks(blanks, data) : undefined, height: self.rowHeight }),\n ReactComponent: TextTrack,\n };\n })\n : [];\n var boxTracks = self.boxTracks\n // filter out tracks that are associated with hidden rows\n .filter(function (track) { return !!self.rows.find(function (row) { return row[0] === track.name; }); })\n .map(function (track) { return ({\n model: track,\n ReactComponent: BoxTrack,\n }); });\n var annotationTracks = self.annotatedRegions.length > 0\n ? [\n {\n model: {\n features: self.annotatedRegions,\n height: 100,\n id: 'annotations',\n name: 'User-created annotations',\n data: self.annotatedRegions\n .map(function (region) {\n var attrs = region.attributes\n ? Object.entries(region.attributes)\n .map(function (_a) {\n var k = _a[0], v = _a[1];\n return \"\".concat(k, \"=\").concat(v.join(','));\n })\n .join(';')\n : '.';\n return [\n 'MSA_refcoord',\n '.',\n '.',\n region.start,\n region.end,\n '.',\n '.',\n '.',\n attrs,\n ].join('\\t');\n })\n .join('\\n'),\n },\n ReactComponent: BoxTrack,\n },\n ]\n : [];\n return __spreadArray(__spreadArray(__spreadArray([], adapterTracks, true), boxTracks, true), annotationTracks, true);\n },\n get turnedOnTracks() {\n return this.tracks.filter(function (f) { return !self.turnedOffTracks.has(f.model.id); });\n },\n // returns coordinate in the current relative coordinate scheme\n pxToBp: function (coord) {\n return Math.floor((coord - self.scrollX) / self.colWidth);\n },\n rowSpecificBpToPx: function (rowName, position) {\n var _a;\n var rowNames = self.rowNames, rows = self.rows, blanks = self.blanks;\n var index = rowNames.indexOf(rowName);\n var row = rows[index][1];\n var details = self.getRowDetails(rowName);\n var offset = ((_a = details.range) === null || _a === void 0 ? void 0 : _a.start) || 0;\n var current = position - offset;\n if (current < 0) {\n return 0;\n }\n var j = 0;\n var i = 0;\n for (; i < row.length; i++) {\n if (row[i] !== '-' && j++ === current) {\n break;\n }\n }\n var count = 0;\n for (var k = 0; k < row.length; k++) {\n if (blanks.indexOf(k) !== -1 && k < i + 1) {\n count++;\n }\n }\n return i - count;\n },\n globalBpToPx: function (position) {\n var _a;\n var count = 0;\n for (var k = 0; k < ((_a = self.rows[0]) === null || _a === void 0 ? void 0 : _a[1].length); k++) {\n if (self.blanks.indexOf(k) !== -1 && k < position + 1) {\n count++;\n }\n }\n return position - count;\n },\n relativePxToBp: function (rowName, position) {\n var rowNames = self.rowNames, rows = self.rows;\n var index = rowNames.indexOf(rowName);\n var row = rows[index][1];\n var k = 0;\n for (var i = 0; i < position; i++) {\n if (row[i] !== '-') {\n k++;\n }\n else if (k >= position) {\n break;\n }\n }\n return k;\n },\n getPos: function (pos) {\n var j = 0;\n for (var i = 0, k = 0; i < pos; i++, j++) {\n while (j === self.blanks[k]) {\n k++;\n j++;\n }\n }\n return j;\n },\n}); })\n .actions(function (self) { return ({\n addAnnotation: function (start, end, attributes) {\n self.annotatedRegions.push({\n start: self.getPos(start),\n end: self.getPos(end),\n attributes: attributes,\n });\n },\n setOffsets: function (left, right) {\n self.annotPos = { left: left, right: right };\n },\n clearAnnotPos: function () {\n self.annotPos = undefined;\n },\n}); });\nvar model = types.snapshotProcessor(types.compose(BaseViewModel, MSAModel), {\n postProcessor: function (result) {\n var _a = result.data, tree = _a.tree, msa = _a.msa, rest = __rest(result\n // remove the MSA/tree data from the tree if the filehandle available in\n // which case it can be reloaded on refresh\n , [\"data\"]);\n // remove the MSA/tree data from the tree if the filehandle available in\n // which case it can be reloaded on refresh\n return __assign({ data: __assign(__assign({}, (!result.treeFilehandle && { tree: tree })), (!result.msaFilehandle && { msa: msa })) }, rest);\n },\n});\nexport default model;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 20H4v-4h4v4zm0-6H4v-4h4v4zm0-6H4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4z\"\n}), 'GridOn');\n\nexports.default = _default;","import Plugin from '@jbrowse/core/Plugin'\nimport PluginManager from '@jbrowse/core/PluginManager'\nimport { version } from '../package.json'\nimport { AbstractSessionModel, isAbstractMenuManager } from '@jbrowse/core/util'\nimport * as MSA from 'react-msaview'\nimport ViewType from '@jbrowse/core/pluggableElementTypes/ViewType'\nimport GridOn from '@material-ui/icons/GridOn'\n\nexport default class MsaViewPlugin extends Plugin {\n name = 'MsaViewPlugin'\n version = version\n\n install(pluginManager: PluginManager) {\n console.log({ MSA })\n pluginManager.addViewType(\n () =>\n new ViewType({\n name: 'MsaView',\n //@ts-ignore\n stateModel: MSA.MSAModel,\n ReactComponent: MSA.MSAView,\n }),\n )\n }\n\n configure(pluginManager: PluginManager) {\n if (isAbstractMenuManager(pluginManager.rootModel)) {\n pluginManager.rootModel.appendToSubMenu(['Add'], {\n label: 'Multiple sequence alignment view',\n icon: GridOn,\n onClick: (session: AbstractSessionModel) => {\n session.addView('MsaView', {})\n },\n })\n }\n }\n}\n"],"names":["React","Link","Typography","observer","useState","Container","Grid","FileSelector","Button","transaction","require$$0","_utils","_interopRequireWildcard","_interopRequireDefault","require$$1","makeStyles","alpha","Tooltip","useRef","useEffect","Popover","Menu","ExecutionEnvironment","UserAgent_DEPRECATED","isEventSupported","Dialog","DialogTitle","DialogContent","Attributes","this","MenuItem","normalizeWheel","colorNames","swizzle","cssKeywords","convert","__assign","color","Color","useTheme","useMemo","CircularProgress","useStyles","FormControlLabel","Checkbox","TextField","colorSchemes","DialogActions","version","FormGroup","IconButton","Select","deselectCurrent","copy","Rubberband","setSeed","format","random","alphabet","generate","build","require$$2","_mobxStateTree","_mobxReact","_mst","util_1","parse","Stockholm","parseNewick","AnnotationBlock","isStateTreeNode","getSnapshot","AnnotationTrack","__rest","__spreadArray","types","addDisposer","autorun","ElementId","FileLocation","cast","openLocation","TextTrack","BoxTrack","MsaViewPlugin","pluginManager","console","log","MSA","addViewType","ViewType","name","stateModel","ReactComponent","isAbstractMenuManager","rootModel","appendToSubMenu","label","icon","GridOn","onClick","session","addView","Plugin"],"mappings":"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CAAC,CAAC;EAC/C,IAAI,WAAW,GAAG,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,UAAU,CAAC;EAC3D,GAAG;AACH;EACA,EAAE,IAAI,CAAC,WAAW,IAAI,aAAa,IAAI,eAAe,KAAK,OAAO,EAAE;EACpE;EACA,IAAI,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;EAC5E,GAAG;AACH;EACA,EAAE,OAAO,WAAW,CAAC;EACrB,CAAC;AACD;EACA,sBAAc,GAAG,gBAAgB;;EC3CjC;EACA,IAAI,UAAU,IAAI,EAAE,CAAC;EACrB,IAAI,WAAW,GAAG,EAAE,CAAC;EACrB,IAAI,WAAW,GAAG,GAAG,CAAC;AACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,cAAc,YAAY,KAAK,aAAa;EACrD,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC;EACpB,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AACrB;EACA;EACA,EAAE,IAAI,QAAQ,SAAS,KAAK,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE;EACpD,EAAE,IAAI,YAAY,KAAK,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,UA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AAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,G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"}