react-msaview 9.1.0 → 9.1.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 (272) hide show
  1. package/bundle/index.js +111 -115
  2. package/bundle/index.js.map +4 -4
  3. package/dist/blosum62.d.ts +3 -0
  4. package/dist/blosum62.js +43 -0
  5. package/dist/blosum62.js.map +1 -0
  6. package/dist/colorSchemes.js +1 -0
  7. package/dist/colorSchemes.js.map +1 -1
  8. package/dist/components/Loading.d.ts +3 -2
  9. package/dist/components/Loading.js +2 -2
  10. package/dist/components/Loading.js.map +1 -1
  11. package/dist/components/MSAView.d.ts +3 -2
  12. package/dist/components/MSAView.js +7 -4
  13. package/dist/components/MSAView.js.map +1 -1
  14. package/dist/components/MSAViewer.d.ts +62 -12
  15. package/dist/components/MetadataTable.d.ts +4 -1
  16. package/dist/components/MetadataTable.js +55 -16
  17. package/dist/components/MetadataTable.js.map +1 -1
  18. package/dist/components/Track.js +6 -0
  19. package/dist/components/Track.js.map +1 -1
  20. package/dist/components/controls.js +2 -1
  21. package/dist/components/controls.js.map +1 -1
  22. package/dist/components/dialogs/AnnotationFileDialog.js +7 -2
  23. package/dist/components/dialogs/AnnotationFileDialog.js.map +1 -1
  24. package/dist/components/dialogs/FeatureDialog.js +2 -2
  25. package/dist/components/dialogs/FeatureDialog.js.map +1 -1
  26. package/dist/components/{header/MSASettingsMenu.d.ts → dialogs/GapThresholdDialog.d.ts} +3 -2
  27. package/dist/components/dialogs/GapThresholdDialog.js +15 -0
  28. package/dist/components/dialogs/GapThresholdDialog.js.map +1 -0
  29. package/dist/components/{header → dialogs}/GappynessSlider.d.ts +1 -1
  30. package/dist/components/{header → dialogs}/GappynessSlider.js +3 -10
  31. package/dist/components/dialogs/GappynessSlider.js.map +1 -0
  32. package/dist/components/{header → dialogs}/GoToBox.d.ts +4 -2
  33. package/dist/components/dialogs/GoToBox.js +48 -0
  34. package/dist/components/dialogs/GoToBox.js.map +1 -0
  35. package/dist/components/dialogs/GoToDialog.d.ts +6 -0
  36. package/dist/components/dialogs/GoToDialog.js +10 -0
  37. package/dist/components/dialogs/GoToDialog.js.map +1 -0
  38. package/dist/components/dialogs/MetadataDialog.js +11 -3
  39. package/dist/components/dialogs/MetadataDialog.js.map +1 -1
  40. package/dist/components/dialogs/goTo.d.ts +5 -0
  41. package/dist/components/{header → dialogs}/goTo.js +1 -1
  42. package/dist/components/dialogs/goTo.js.map +1 -0
  43. package/dist/components/dialogs/metadataLabels.d.ts +4 -0
  44. package/dist/components/dialogs/metadataLabels.js +52 -0
  45. package/dist/components/dialogs/metadataLabels.js.map +1 -0
  46. package/dist/components/dialogs/metadataRecord.d.ts +1 -0
  47. package/dist/components/dialogs/metadataRecord.js +38 -0
  48. package/dist/components/dialogs/metadataRecord.js.map +1 -0
  49. package/dist/components/header/Header.d.ts +6 -2
  50. package/dist/components/header/Header.js +30 -32
  51. package/dist/components/header/Header.js.map +1 -1
  52. package/dist/components/header/{TreeSettingsMenu.d.ts → HiddenColumnsChip.d.ts} +2 -2
  53. package/dist/components/header/HiddenColumnsChip.js +15 -0
  54. package/dist/components/header/HiddenColumnsChip.js.map +1 -0
  55. package/dist/components/header/MenuBar.d.ts +6 -0
  56. package/dist/components/header/MenuBar.js +33 -0
  57. package/dist/components/header/MenuBar.js.map +1 -0
  58. package/dist/components/header/ScrollZoomCheckbox.d.ts +7 -0
  59. package/dist/components/header/ScrollZoomCheckbox.js +19 -0
  60. package/dist/components/header/ScrollZoomCheckbox.js.map +1 -0
  61. package/dist/components/header/ZoomControls.js +10 -30
  62. package/dist/components/header/ZoomControls.js.map +1 -1
  63. package/dist/components/header/colorSchemeMenuItems.d.ts +4 -0
  64. package/dist/components/header/colorSchemeMenuItems.js +106 -0
  65. package/dist/components/header/colorSchemeMenuItems.js.map +1 -0
  66. package/dist/components/header/getAnnotationsMenu.d.ts +3 -30
  67. package/dist/components/header/getAnnotationsMenu.js +48 -54
  68. package/dist/components/header/getAnnotationsMenu.js.map +1 -1
  69. package/dist/components/header/menuBarItems.d.ts +11 -0
  70. package/dist/components/header/menuBarItems.js +277 -0
  71. package/dist/components/header/menuBarItems.js.map +1 -0
  72. package/dist/components/import/ImportForm.js +12 -6
  73. package/dist/components/import/ImportForm.js.map +1 -1
  74. package/dist/components/minimap/Minimap.js +7 -3
  75. package/dist/components/minimap/Minimap.js.map +1 -1
  76. package/dist/components/minimap/MinimapSVG.js +2 -1
  77. package/dist/components/minimap/MinimapSVG.js.map +1 -1
  78. package/dist/components/minimap/minimapLayout.d.ts +12 -0
  79. package/dist/components/minimap/minimapLayout.js +20 -0
  80. package/dist/components/minimap/minimapLayout.js.map +1 -1
  81. package/dist/components/msa/MSACanvas.js +26 -9
  82. package/dist/components/msa/MSACanvas.js.map +1 -1
  83. package/dist/components/msa/MSACanvasBlock.js +15 -11
  84. package/dist/components/msa/MSACanvasBlock.js.map +1 -1
  85. package/dist/components/msa/MSAMouseoverCanvas.js +2 -2
  86. package/dist/components/msa/MSAMouseoverCanvas.js.map +1 -1
  87. package/dist/components/msa/WheelZoomHint.d.ts +7 -0
  88. package/dist/components/msa/WheelZoomHint.js +38 -0
  89. package/dist/components/msa/WheelZoomHint.js.map +1 -0
  90. package/dist/components/msa/msaKeys.js +3 -0
  91. package/dist/components/msa/msaKeys.js.map +1 -1
  92. package/dist/components/msa/msaRaster.d.ts +4 -5
  93. package/dist/components/msa/msaRaster.js +5 -5
  94. package/dist/components/msa/msaRaster.js.map +1 -1
  95. package/dist/components/msa/renderBoxFeatureCanvasBlock.js +22 -2
  96. package/dist/components/msa/renderBoxFeatureCanvasBlock.js.map +1 -1
  97. package/dist/components/msa/renderHighlights.d.ts +0 -3
  98. package/dist/components/msa/renderHighlights.js +3 -3
  99. package/dist/components/msa/renderHighlights.js.map +1 -1
  100. package/dist/components/msa/renderMSABlock.d.ts +6 -1
  101. package/dist/components/msa/renderMSABlock.js +44 -17
  102. package/dist/components/msa/renderMSABlock.js.map +1 -1
  103. package/dist/components/msa/tileColor.js +7 -0
  104. package/dist/components/msa/tileColor.js.map +1 -1
  105. package/dist/components/rowpanels/RowPanelBlock.js +2 -2
  106. package/dist/components/rowpanels/RowPanelBlock.js.map +1 -1
  107. package/dist/components/settings/MenuItemsForm.d.ts +10 -0
  108. package/dist/components/settings/MenuItemsForm.js +80 -0
  109. package/dist/components/settings/MenuItemsForm.js.map +1 -0
  110. package/dist/components/settings/SettingsPanel.d.ts +12 -0
  111. package/dist/components/settings/SettingsPanel.js +92 -0
  112. package/dist/components/settings/SettingsPanel.js.map +1 -0
  113. package/dist/components/{header/FileMenu.d.ts → settings/TrackList.d.ts} +2 -2
  114. package/dist/components/settings/TrackList.js +55 -0
  115. package/dist/components/settings/TrackList.js.map +1 -0
  116. package/dist/components/tracks/TrackBlocks.js +2 -2
  117. package/dist/components/tracks/TrackBlocks.js.map +1 -1
  118. package/dist/components/tree/TreeCanvasBlock.js +2 -2
  119. package/dist/components/tree/TreeCanvasBlock.js.map +1 -1
  120. package/dist/components/tree/TreeMenu.js +4 -6
  121. package/dist/components/tree/TreeMenu.js.map +1 -1
  122. package/dist/components/tree/TreeOverview.js +2 -2
  123. package/dist/components/tree/TreeOverview.js.map +1 -1
  124. package/dist/constants.d.ts +4 -1
  125. package/dist/constants.js +7 -1
  126. package/dist/constants.js.map +1 -1
  127. package/dist/darkReader.d.ts +7 -0
  128. package/dist/darkReader.js +42 -0
  129. package/dist/darkReader.js.map +1 -0
  130. package/dist/element.js +22 -47
  131. package/dist/element.js.map +1 -1
  132. package/dist/featurePanels.d.ts +37 -0
  133. package/dist/featurePanels.js +187 -0
  134. package/dist/featurePanels.js.map +1 -0
  135. package/dist/filehandleLoader.d.ts +41 -0
  136. package/dist/filehandleLoader.js +99 -0
  137. package/dist/filehandleLoader.js.map +1 -0
  138. package/dist/index.d.ts +3 -0
  139. package/dist/index.js +2 -0
  140. package/dist/index.js.map +1 -1
  141. package/dist/model/treeModel.d.ts +9 -0
  142. package/dist/model/treeModel.js +12 -1
  143. package/dist/model/treeModel.js.map +1 -1
  144. package/dist/model.d.ts +142 -32
  145. package/dist/model.js +268 -569
  146. package/dist/model.js.map +1 -1
  147. package/dist/neighborJoining.js +1 -40
  148. package/dist/neighborJoining.js.map +1 -1
  149. package/dist/renderToSvg.js +1 -13
  150. package/dist/renderToSvg.js.map +1 -1
  151. package/dist/rerootTree.d.ts +1 -0
  152. package/dist/rerootTree.js +7 -6
  153. package/dist/rerootTree.js.map +1 -1
  154. package/dist/schemeResidueColor.d.ts +12 -0
  155. package/dist/schemeResidueColor.js +33 -0
  156. package/dist/schemeResidueColor.js.map +1 -0
  157. package/dist/similarityColors.d.ts +11 -0
  158. package/dist/similarityColors.js +90 -0
  159. package/dist/similarityColors.js.map +1 -0
  160. package/dist/svgTestUtil.d.ts +62 -12
  161. package/dist/treeDisplay.d.ts +37 -0
  162. package/dist/treeDisplay.js +209 -0
  163. package/dist/treeDisplay.js.map +1 -0
  164. package/dist/types.d.ts +6 -2
  165. package/dist/useWheelScroll.d.ts +3 -1
  166. package/dist/useWheelScroll.js +36 -17
  167. package/dist/useWheelScroll.js.map +1 -1
  168. package/dist/util.d.ts +2 -0
  169. package/dist/util.js +2 -0
  170. package/dist/util.js.map +1 -1
  171. package/dist/version.d.ts +1 -1
  172. package/dist/version.js +1 -1
  173. package/dist/wheelZoom.d.ts +8 -3
  174. package/dist/wheelZoom.js +44 -32
  175. package/dist/wheelZoom.js.map +1 -1
  176. package/dist/zoomSnapshot.d.ts +29 -0
  177. package/dist/zoomSnapshot.js +47 -0
  178. package/dist/zoomSnapshot.js.map +1 -0
  179. package/package.json +11 -11
  180. package/src/blosum62.ts +45 -0
  181. package/src/colorSchemes.ts +1 -0
  182. package/src/components/Loading.tsx +6 -2
  183. package/src/components/MSAView.tsx +22 -5
  184. package/src/components/MetadataTable.tsx +83 -26
  185. package/src/components/Track.tsx +13 -0
  186. package/src/components/controls.ts +2 -1
  187. package/src/components/dialogs/AnnotationFileDialog.tsx +12 -1
  188. package/src/components/dialogs/FeatureDialog.tsx +2 -5
  189. package/src/components/dialogs/GapThresholdDialog.tsx +36 -0
  190. package/src/components/{header → dialogs}/GappynessSlider.tsx +3 -10
  191. package/src/components/{header → dialogs}/GoToBox.tsx +36 -10
  192. package/src/components/dialogs/GoToDialog.tsx +30 -0
  193. package/src/components/dialogs/MetadataDialog.tsx +32 -4
  194. package/src/components/{header → dialogs}/goTo.ts +1 -1
  195. package/src/components/dialogs/metadataLabels.ts +54 -0
  196. package/src/components/dialogs/metadataRecord.tsx +61 -0
  197. package/src/components/header/Header.tsx +75 -42
  198. package/src/components/header/HiddenColumnsChip.tsx +39 -0
  199. package/src/components/header/MenuBar.tsx +64 -0
  200. package/src/components/header/ScrollZoomCheckbox.tsx +46 -0
  201. package/src/components/header/ZoomControls.tsx +20 -35
  202. package/src/components/header/colorSchemeMenuItems.ts +121 -0
  203. package/src/components/header/getAnnotationsMenu.ts +52 -56
  204. package/src/components/header/menuBarItems.ts +357 -0
  205. package/src/components/import/ImportForm.tsx +19 -7
  206. package/src/components/minimap/Minimap.tsx +11 -3
  207. package/src/components/minimap/MinimapSVG.tsx +17 -1
  208. package/src/components/minimap/minimapLayout.ts +27 -0
  209. package/src/components/msa/MSACanvas.tsx +22 -3
  210. package/src/components/msa/MSACanvasBlock.tsx +18 -11
  211. package/src/components/msa/MSAMouseoverCanvas.tsx +2 -2
  212. package/src/components/msa/WheelZoomHint.tsx +56 -0
  213. package/src/components/msa/msaKeys.ts +3 -0
  214. package/src/components/msa/msaRaster.ts +6 -8
  215. package/src/components/msa/renderBoxFeatureCanvasBlock.ts +28 -5
  216. package/src/components/msa/renderHighlights.ts +3 -3
  217. package/src/components/msa/renderMSABlock.ts +51 -15
  218. package/src/components/msa/tileColor.ts +7 -0
  219. package/src/components/rowpanels/RowPanelBlock.tsx +2 -2
  220. package/src/components/settings/MenuItemsForm.tsx +225 -0
  221. package/src/components/settings/SettingsPanel.tsx +156 -0
  222. package/src/components/settings/TrackList.tsx +119 -0
  223. package/src/components/tracks/TrackBlocks.tsx +2 -2
  224. package/src/components/tree/TreeCanvasBlock.tsx +2 -2
  225. package/src/components/tree/TreeMenu.tsx +4 -6
  226. package/src/components/tree/TreeOverview.tsx +2 -2
  227. package/src/constants.ts +9 -1
  228. package/src/darkReader.ts +57 -0
  229. package/src/element.ts +34 -57
  230. package/src/featurePanels.ts +269 -0
  231. package/src/filehandleLoader.ts +136 -0
  232. package/src/index.ts +4 -0
  233. package/src/model/treeModel.ts +13 -0
  234. package/src/model.ts +345 -748
  235. package/src/neighborJoining.ts +1 -42
  236. package/src/renderToSvg.tsx +1 -13
  237. package/src/rerootTree.ts +7 -6
  238. package/src/schemeResidueColor.ts +37 -0
  239. package/src/similarityColors.ts +112 -0
  240. package/src/treeDisplay.ts +278 -0
  241. package/src/types.ts +6 -3
  242. package/src/useWheelScroll.ts +43 -22
  243. package/src/util.ts +3 -0
  244. package/src/version.ts +1 -1
  245. package/src/wheelZoom.ts +55 -33
  246. package/src/zoomSnapshot.ts +80 -0
  247. package/dist/components/header/ColorSchemeMenu.d.ts +0 -12
  248. package/dist/components/header/ColorSchemeMenu.js +0 -37
  249. package/dist/components/header/ColorSchemeMenu.js.map +0 -1
  250. package/dist/components/header/FileMenu.js +0 -92
  251. package/dist/components/header/FileMenu.js.map +0 -1
  252. package/dist/components/header/GappynessSlider.js.map +0 -1
  253. package/dist/components/header/GoToBox.js +0 -31
  254. package/dist/components/header/GoToBox.js.map +0 -1
  255. package/dist/components/header/MSASettingsMenu.js +0 -11
  256. package/dist/components/header/MSASettingsMenu.js.map +0 -1
  257. package/dist/components/header/ScrollZoomIcons.d.ts +0 -6
  258. package/dist/components/header/ScrollZoomIcons.js +0 -35
  259. package/dist/components/header/ScrollZoomIcons.js.map +0 -1
  260. package/dist/components/header/TreeSettingsMenu.js +0 -11
  261. package/dist/components/header/TreeSettingsMenu.js.map +0 -1
  262. package/dist/components/header/goTo.d.ts +0 -20
  263. package/dist/components/header/goTo.js.map +0 -1
  264. package/dist/components/header/settingsMenuItems.d.ts +0 -5
  265. package/dist/components/header/settingsMenuItems.js +0 -171
  266. package/dist/components/header/settingsMenuItems.js.map +0 -1
  267. package/src/components/header/ColorSchemeMenu.tsx +0 -56
  268. package/src/components/header/FileMenu.tsx +0 -107
  269. package/src/components/header/MSASettingsMenu.tsx +0 -26
  270. package/src/components/header/ScrollZoomIcons.tsx +0 -52
  271. package/src/components/header/TreeSettingsMenu.tsx +0 -30
  272. package/src/components/header/settingsMenuItems.ts +0 -216
@@ -1,29 +1,68 @@
1
1
  import React from 'react';
2
2
  import { makeStyles } from '@jbrowse/core/util/tss-react';
3
- import { Table, TableBody, TableCell, TableRow } from '@mui/material';
4
- const useStyles = makeStyles()({
3
+ const useStyles = makeStyles()(theme => ({
4
+ list: {
5
+ display: 'grid',
6
+ gridTemplateColumns: 'minmax(8em, max-content) minmax(0, 1fr)',
7
+ columnGap: theme.spacing(3),
8
+ margin: 0,
9
+ },
10
+ row: {
11
+ display: 'contents',
12
+ },
5
13
  key: {
6
- fontWeight: 'bold',
7
- verticalAlign: 'top',
14
+ fontWeight: 600,
15
+ padding: theme.spacing(0.75, 0),
16
+ borderTop: `1px solid ${theme.palette.divider}`,
17
+ },
18
+ code: {
19
+ marginLeft: theme.spacing(1),
20
+ fontWeight: 400,
21
+ fontSize: '0.75em',
22
+ fontFamily: 'monospace',
23
+ color: theme.palette.text.secondary,
8
24
  },
9
25
  value: {
26
+ margin: 0,
27
+ padding: theme.spacing(0.75, 0),
28
+ borderTop: `1px solid ${theme.palette.divider}`,
10
29
  whiteSpace: 'pre-wrap',
11
- wordBreak: 'break-word',
30
+ overflowWrap: 'anywhere',
31
+ },
32
+ mono: {
33
+ fontFamily: 'monospace',
34
+ fontSize: '0.85em',
35
+ maxHeight: '8em',
36
+ overflow: 'auto',
37
+ },
38
+ nested: {
39
+ '& > dl': {
40
+ paddingLeft: theme.spacing(2),
41
+ borderLeft: `2px solid ${theme.palette.divider}`,
42
+ },
12
43
  },
13
- });
14
- function isRecord(value) {
15
- return typeof value === 'object' && value !== null && !Array.isArray(value);
44
+ }));
45
+ export function isRecord(value) {
46
+ return (typeof value === 'object' &&
47
+ value !== null &&
48
+ !Array.isArray(value) &&
49
+ !React.isValidElement(value));
16
50
  }
17
51
  export function isEmpty(value) {
18
52
  return isRecord(value) && Object.keys(value).length === 0;
19
53
  }
20
- export default function MetadataTable({ record, }) {
21
- const { classes } = useStyles();
22
- return (React.createElement(Table, { size: "small" },
23
- React.createElement(TableBody, null, Object.entries(record)
24
- .filter(([, value]) => value != null && !isEmpty(value))
25
- .map(([key, value]) => (React.createElement(TableRow, { key: key },
26
- React.createElement(TableCell, { component: "th", className: classes.key }, key),
27
- React.createElement(TableCell, { className: classes.value }, isRecord(value) ? (React.createElement(MetadataTable, { record: value })) : Array.isArray(value) ? (value.join('\n')) : (String(value)))))))));
54
+ export default function MetadataTable({ record, labels = {}, monospaceKeys, }) {
55
+ const { classes, cx } = useStyles();
56
+ return (React.createElement("dl", { className: classes.list }, Object.entries(record)
57
+ .filter(([, value]) => value != null && !isEmpty(value))
58
+ .map(([key, value]) => {
59
+ const label = labels[key];
60
+ const nested = isRecord(value);
61
+ return (React.createElement("div", { key: key, className: classes.row },
62
+ React.createElement("dt", { className: classes.key },
63
+ label ?? key,
64
+ label && label !== key ? (React.createElement("span", { className: classes.code }, key)) : null),
65
+ React.createElement("dd", { className: cx(classes.value, nested && classes.nested, monospaceKeys?.has(key) && classes.mono) }, nested ? (React.createElement(MetadataTable, { record: value, labels: labels, monospaceKeys: monospaceKeys })) : Array.isArray(value) ? (value.join('\n')) : React.isValidElement(value) ? (value) : (String(value)))));
66
+ })));
28
67
  }
29
68
  //# sourceMappingURL=MetadataTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataTable.js","sourceRoot":"","sources":["../../src/components/MetadataTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AACzD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAErE,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;IAC7B,GAAG,EAAE;QACH,UAAU,EAAE,MAAM;QAClB,aAAa,EAAE,KAAK;KACrB;IACD,KAAK,EAAE;QACL,UAAU,EAAE,UAAU;QACtB,SAAS,EAAE,YAAY;KACxB;CACF,CAAC,CAAA;AAEF,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC7E,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAA;AAC3D,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,MAAM,GAGP;IACC,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,OAAO,CACL,oBAAC,KAAK,IAAC,IAAI,EAAC,OAAO;QACjB,oBAAC,SAAS,QACP,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;aACpB,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aACvD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CACrB,oBAAC,QAAQ,IAAC,GAAG,EAAE,GAAG;YAChB,oBAAC,SAAS,IAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAE,OAAO,CAAC,GAAG,IAC7C,GAAG,CACM;YACZ,oBAAC,SAAS,IAAC,SAAS,EAAE,OAAO,CAAC,KAAK,IAChC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACjB,oBAAC,aAAa,IAAC,MAAM,EAAE,KAAK,GAAI,CACjC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACzB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CACjB,CAAC,CAAC,CAAC,CACF,MAAM,CAAC,KAAK,CAAC,CACd,CACS,CACH,CACZ,CAAC,CACM,CACN,CACT,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"MetadataTable.js","sourceRoot":"","sources":["../../src/components/MetadataTable.tsx"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import React, { lazy, useCallback, useRef, useState } from 'react';
2
2
  import BaseTooltip from '@jbrowse/core/ui/BaseTooltip';
3
3
  import { makeStyles } from '@jbrowse/core/util/tss-react';
4
4
  import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';
5
+ import CloseIcon from '@mui/icons-material/Close';
5
6
  import { IconButton, Menu, MenuItem } from '@mui/material';
6
7
  import { observer } from 'mobx-react';
7
8
  import { useWheelScroll } from '../useWheelScroll.js';
@@ -35,6 +36,7 @@ const TrackLabel = observer(function TrackLabel({ model, track, }) {
35
36
  const { model: { name, height }, } = track;
36
37
  const { classes } = useStyles();
37
38
  const trackLabelHeight = Math.min(height, fontSize);
39
+ const closeSize = Math.min(height, Math.max(fontSize, 16));
38
40
  return (React.createElement("div", { style: {
39
41
  width,
40
42
  height,
@@ -50,6 +52,10 @@ const TrackLabel = observer(function TrackLabel({ model, track, }) {
50
52
  textOverflow: 'ellipsis',
51
53
  whiteSpace: 'nowrap',
52
54
  } }, drawLabels ? name : ''),
55
+ React.createElement(IconButton, { className: classes.button, "aria-label": `Hide ${name} track`, title: "Hide track", style: { width: closeSize, height: closeSize, flexShrink: 0 }, onClick: () => {
56
+ model.toggleTrack(track.model.id);
57
+ } },
58
+ React.createElement(CloseIcon, { style: { fontSize: closeSize * 0.8 } })),
53
59
  React.createElement(IconButton, { className: classes.button, "aria-label": `${name} track menu`, style: {
54
60
  width: trackLabelHeight,
55
61
  height: trackLabelHeight,
@@ -1 +1 @@
1
- {"version":3,"file":"Track.js","sourceRoot":"","sources":["../../src/components/Track.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Track.js","sourceRoot":"","sources":["../../src/components/Track.tsx"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export const keyboardControls = [
8
8
  shiftKey: true,
9
9
  },
10
10
  { label: '+ and -', action: 'Zoom in and out', keys: ['+', '=', '-'] },
11
+ { label: '0', action: 'Reset to the default cell size', keys: ['0'] },
11
12
  {
12
13
  label: 'Home and End',
13
14
  action: 'Jump to the first and last column',
@@ -23,7 +24,7 @@ export const mouseControls = [
23
24
  { label: 'Drag', action: 'Pan the alignment' },
24
25
  {
25
26
  label: 'Wheel',
26
- action: 'Scroll, or zoom as set in Alignment settings → Mouse wheel',
27
+ action: 'Scroll, or zoom with Zoom on scroll checked',
27
28
  },
28
29
  { label: 'Ctrl + wheel', action: 'Zoom at the cursor' },
29
30
  selectCells,
@@ -1 +1 @@
1
- {"version":3,"file":"controls.js","sourceRoot":"","sources":["../../src/components/controls.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;AAElE,MAAM,CAAC,MAAM,gBAAgB,GAAiB;IAC5C,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE;IAChE;QACE,KAAK,EAAE,oBAAoB;QAC3B,MAAM,EAAE,iBAAiB;QACzB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf;IACD,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE;IACtE;QACE,KAAK,EAAE,cAAc;QACrB,MAAM,EAAE,mCAAmC;QAC3C,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;KACtB;IACD,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE;CACrE,CAAA;AAED,MAAM,WAAW,GAAY;IAC3B,KAAK,EAAE,cAAc;IACrB,MAAM,EAAE,yBAAyB;CAClC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAc;IACtC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE;IAC9C;QACE,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,4DAA4D;KACrE;IACD,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,oBAAoB,EAAE;IACvD,WAAW;IACX;QACE,KAAK,EAAE,oBAAoB;QAC3B,MAAM,EAAE,4CAA4C;KACrD;IACD;QACE,KAAK,EAAE,mBAAmB;QAC1B,MAAM,EAAE,kDAAkD;KAC3D;IACD;QACE,KAAK,EAAE,yBAAyB;QAChC,MAAM,EAAE,uCAAuC;KAChD;IACD,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,iCAAiC,EAAE;CACvE,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,WAAW;IACX,GAAG,CAAC,GAAG,gBAAgB,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;CAC1E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA"}
1
+ {"version":3,"file":"controls.js","sourceRoot":"","sources":["../../src/components/controls.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;AAElE,MAAM,CAAC,MAAM,gBAAgB,GAAiB;IAC5C,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE;IAChE;QACE,KAAK,EAAE,oBAAoB;QAC3B,MAAM,EAAE,iBAAiB;QACzB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf;IACD,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE;IACtE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,gCAAgC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE;IACrE;QACE,KAAK,EAAE,cAAc;QACrB,MAAM,EAAE,mCAAmC;QAC3C,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;KACtB;IACD,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE;CACrE,CAAA;AAED,MAAM,WAAW,GAAY;IAC3B,KAAK,EAAE,cAAc;IACrB,MAAM,EAAE,yBAAyB;CAClC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAc;IACtC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE;IAC9C;QACE,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,6CAA6C;KACtD;IACD,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,oBAAoB,EAAE;IACvD,WAAW;IACX;QACE,KAAK,EAAE,oBAAoB;QAC3B,MAAM,EAAE,4CAA4C;KACrD;IACD;QACE,KAAK,EAAE,mBAAmB;QAC1B,MAAM,EAAE,kDAAkD;KAC3D;IACD;QACE,KAAK,EAAE,yBAAyB;QAChC,MAAM,EAAE,uCAAuC;KAChD;IACD,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,iCAAiC,EAAE;CACvE,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,WAAW;IACX,GAAG,CAAC,GAAG,gBAAgB,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;CAC1E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA"}
@@ -1,8 +1,9 @@
1
1
  import React, { useState } from 'react';
2
2
  import { Dialog, ErrorMessage } from '@jbrowse/core/ui';
3
- import { Button, DialogActions, DialogContent, FormControl, FormControlLabel, Radio, RadioGroup, TextField, Typography, } from '@mui/material';
3
+ import { Button, DialogActions, DialogContent, FormControl, FormControlLabel, Link, Radio, RadioGroup, TextField, Typography, } from '@mui/material';
4
4
  import { observer } from 'mobx-react';
5
5
  import { annotationTextToGFF } from 'msa-parsers';
6
+ const domainsTutorial = 'https://gmod.org/JBrowseMSA/tutorials/protein_family';
6
7
  async function fetchText(url) {
7
8
  const response = await fetch(url);
8
9
  if (!response.ok) {
@@ -25,7 +26,10 @@ const AnnotationFileDialog = observer(function ({ handleClose, model, }) {
25
26
  }, open: true },
26
27
  React.createElement(DialogContent, null,
27
28
  error ? React.createElement(ErrorMessage, { error: error }) : null,
28
- React.createElement(Typography, null, "Open a GFF3 file of annotations, such as the one `react-msaview-cli interpro` writes, or the JSON an InterProScan run returns."),
29
+ React.createElement(Typography, null,
30
+ "Open a GFF3 file of annotations, such as the one `react-msaview-cli interpro` writes, or the JSON an InterProScan run returns.",
31
+ ' ',
32
+ React.createElement(Link, { href: domainsTutorial, target: "_blank", rel: "noopener noreferrer" }, "How to make one")),
29
33
  React.createElement("div", { style: { display: 'flex', margin: 30 } },
30
34
  React.createElement(FormControl, { component: "fieldset" },
31
35
  React.createElement(RadioGroup, { value: choice, onChange: event => {
@@ -65,6 +69,7 @@ const AnnotationFileDialog = observer(function ({ handleClose, model, }) {
65
69
  model.setGFFFilehandle(undefined);
66
70
  model.setGFF(annotationTextToGFF(text));
67
71
  model.setShowDomains(true);
72
+ model.setCellFill('domain');
68
73
  handleClose();
69
74
  }
70
75
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"AnnotationFileDialog.js","sourceRoot":"","sources":["../../../src/components/dialogs/AnnotationFileDialog.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnnotationFileDialog.js","sourceRoot":"","sources":["../../../src/components/dialogs/AnnotationFileDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEvC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EACL,MAAM,EACN,aAAa,EACb,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,IAAI,EACJ,KAAK,EACL,UAAU,EACV,SAAS,EACT,UAAU,GACX,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAIjD,MAAM,eAAe,GAAG,sDAAsD,CAAA;AAE9E,KAAK,UAAU,SAAS,CAAC,GAAW;IAClC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;IACjC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,QAAQ,QAAQ,CAAC,MAAM,aAAa,GAAG,IAAI,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,CACnE,CAAA;IACH,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;AACxB,CAAC;AAED,MAAM,oBAAoB,GAAG,QAAQ,CAAC,UAAU,EAC9C,WAAW,EACX,KAAK,GAIN;IACC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,EAAQ,CAAA;IACxC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC5C,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAClC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAW,CAAA;IAC7C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE7C,2EAA2E;IAC3E,4EAA4E;IAC5E,yEAAyE;IACzE,oCAAoC;IACpC,OAAO,CACL,oBAAC,MAAM,IACL,QAAQ,EAAC,IAAI,EACb,KAAK,EAAC,sBAAsB,EAC5B,OAAO,EAAE,GAAG,EAAE;YACZ,WAAW,EAAE,CAAA;QACf,CAAC,EACD,IAAI;QAEJ,oBAAC,aAAa;YACX,KAAK,CAAC,CAAC,CAAC,oBAAC,YAAY,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC,CAAC,CAAC,IAAI;YAC9C,oBAAC,UAAU;;gBAEkD,GAAG;gBAC9D,oBAAC,IAAI,IACH,IAAI,EAAE,eAAe,EACrB,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,sBAGpB,CACI;YAEb,6BAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;gBACzC,oBAAC,WAAW,IAAC,SAAS,EAAC,UAAU;oBAC/B,oBAAC,UAAU,IACT,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,KAAK,CAAC,EAAE;4BAChB,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;wBAC/B,CAAC;wBAED,oBAAC,gBAAgB,IAAC,KAAK,EAAC,KAAK,EAAC,OAAO,EAAE,oBAAC,KAAK,OAAG,EAAE,KAAK,EAAC,KAAK,GAAG;wBAChE,oBAAC,gBAAgB,IAAC,KAAK,EAAC,MAAM,EAAC,OAAO,EAAE,oBAAC,KAAK,OAAG,EAAE,KAAK,EAAC,MAAM,GAAG,CACvD,CACD;gBACb,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,CAClB;oBACE,oBAAC,UAAU,6CAAgD;oBAC3D,oBAAC,SAAS,IACR,KAAK,EAAC,KAAK,EACX,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,KAAK,CAAC,EAAE;4BAChB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;wBAC5B,CAAC,GACD,CACE,CACP,CAAC,CAAC,CAAC,CACF,6BAAK,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;oBAC5B,oBAAC,UAAU,wDAEE;oBACb,oBAAC,MAAM,IAAC,OAAO,EAAC,UAAU,EAAC,SAAS,EAAC,OAAO;;wBAE1C,+BACE,IAAI,EAAC,MAAM,EACX,MAAM,QACN,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;gCACvB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;gCAChC,IAAI,MAAM,EAAE,CAAC;oCACX,OAAO,CAAC,MAAM,CAAC,CAAA;gCACjB,CAAC;4BACH,CAAC,GACD,CACK;oBACR,IAAI,CAAC,CAAC,CAAC,oBAAC,UAAU,QAAE,IAAI,CAAC,IAAI,CAAc,CAAC,CAAC,CAAC,IAAI,CAC/C,CACP,CACG,CACQ;QAChB,oBAAC,aAAa;YACZ,oBAAC,MAAM,IACL,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,SAAS,EACf,QAAQ,EAAE,OAAO,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAC9D,OAAO,EAAE,GAAG,EAAE;oBACZ,mEAAmE;oBACnE,CAAC;oBAAA,CAAC,KAAK,IAAI,EAAE;wBACX,UAAU,CAAC,IAAI,CAAC,CAAA;wBAChB,QAAQ,CAAC,SAAS,CAAC,CAAA;wBACnB,IAAI,CAAC;4BACH,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI;gCAC3C,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;gCACb,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;4BACnB,8DAA8D;4BAC9D,+DAA+D;4BAC/D,6DAA6D;4BAC7D,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAA;4BACjC,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAA;4BACvC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;4BAC1B,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;4BAC3B,WAAW,EAAE,CAAA;wBACf,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC;4BACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;4BAChB,QAAQ,CAAC,CAAC,CAAC,CAAA;wBACb,CAAC;gCAAS,CAAC;4BACT,UAAU,CAAC,KAAK,CAAC,CAAA;wBACnB,CAAC;oBACH,CAAC,CAAC,EAAE,CAAA;gBACN,CAAC,uBAGM;YACT,oBAAC,MAAM,IACL,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,WAAW,EACjB,OAAO,EAAE,GAAG,EAAE;oBACZ,WAAW,EAAE,CAAA;gBACf,CAAC,aAGM,CACK,CACT,CACV,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,oBAAoB,CAAA"}
@@ -49,8 +49,8 @@ const FeatureTable = observer(function ({ model }) {
49
49
  React.createElement(TableCell, null, "description"))),
50
50
  React.createElement(TableBody, null, types.map(({ accession, name, description }) => (React.createElement(TableRow, { key: accession },
51
51
  React.createElement(TableCell, { padding: "checkbox" },
52
- React.createElement(Checkbox, { checked: !model.turnedOffFeatures.get(accession), onChange: () => {
53
- model.setFilter(accession, !!model.turnedOffFeatures.get(accession));
52
+ React.createElement(Checkbox, { checked: !model.featureOff(accession), onChange: () => {
53
+ model.setFilter(accession, model.featureOff(accession));
54
54
  } })),
55
55
  React.createElement(TableCell, null,
56
56
  React.createElement("div", { style: {
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureDialog.js","sourceRoot":"","sources":["../../../src/components/dialogs/FeatureDialog.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FeatureDialog.js","sourceRoot":"","sources":["../../../src/components/dialogs/FeatureDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EACL,MAAM,EACN,QAAQ,EACR,aAAa,EACb,KAAK,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,GACV,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAKrC,SAAS,OAAO,CAAC,IAAgB,EAAE,KAAa;IAC9C,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAChE,KAAK,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CACrC,CAAA;AACH,CAAC;AAED,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EACjC,KAAK,EACL,UAAU,GAIX;IACC,MAAM,MAAM,GAAG,CAAC,KAAc,EAAE,EAAE;QAChC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QACnC,CAAC;IACH,CAAC,CAAA;IACD,OAAO,CACL;QACE,oBAAC,MAAM,IACL,OAAO,EAAE,GAAG,EAAE;gBACZ,MAAM,CAAC,IAAI,CAAC,CAAA;YACd,CAAC,oBAGM;QAET,oBAAC,MAAM,IACL,OAAO,EAAE,GAAG,EAAE;gBACZ,MAAM,CAAC,KAAK,CAAC,CAAA;YACf,CAAC,qBAGM,CACL,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,YAAY,GAAG,QAAQ,CAAC,UAAU,EAAE,KAAK,EAA2B;IACxE,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;IAC1E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IACtC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IACzC,MAAM,KAAK,GAAG,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAChD,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CACzC,CAAA;IACD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;IACxC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC1C,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;QAC3B,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACvD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,QAAQ,CAAC,GAAG,CACV,SAAS,EACT,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,WAAW,CAAC,SAAS,CAAE,CAC1D,CAAA;QACH,CAAC;IACH,CAAC;IACD,OAAO,CACL;QACE,oBAAC,SAAS,IACR,KAAK,EAAC,QAAQ,EACd,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,KAAK,CAAC,EAAE;gBAChB,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAC9B,CAAC,GACD;QACF,oBAAC,OAAO,IAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAI;QAClE,oBAAC,KAAK,IAAC,IAAI,EAAC,OAAO;YACjB,oBAAC,SAAS;gBACR,oBAAC,QAAQ;oBACP,oBAAC,SAAS,IAAC,OAAO,EAAC,UAAU,GAAG;oBAChC,oBAAC,SAAS,gBAAkB;oBAC5B,oBAAC,SAAS,oBAAsB;oBAChC,oBAAC,SAAS,eAAiB;oBAC3B,oBAAC,SAAS,gBAAkB;oBAC5B,oBAAC,SAAS,sBAAwB,CACzB,CACD;YACZ,oBAAC,SAAS,QACP,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAC/C,oBAAC,QAAQ,IAAC,GAAG,EAAE,SAAS;gBACtB,oBAAC,SAAS,IAAC,OAAO,EAAC,UAAU;oBAC3B,oBAAC,QAAQ,IACP,OAAO,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EACrC,QAAQ,EAAE,GAAG,EAAE;4BACb,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAA;wBACzD,CAAC,GACD,CACQ;gBACZ,oBAAC,SAAS;oBACR,6BACE,KAAK,EAAE;4BACL,KAAK,EAAE,EAAE;4BACT,MAAM,EAAE,EAAE;4BACV,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;yBACpC,GACD,CACQ;gBACZ,oBAAC,SAAS,QAAE,SAAS,CAAa;gBAClC,oBAAC,SAAS,QAAE,IAAI,CAAa;gBAC7B,oBAAC,SAAS,QAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAa;gBAC9C,oBAAC,SAAS,QAAE,WAAW,CAAa,CAC3B,CACZ,CAAC,CACQ,CACN,CACP,CACJ,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,EAC3C,OAAO,EACP,KAAK,GAIN;IACC,OAAO,CACL,oBAAC,MAAM,IACL,OAAO,EAAE,GAAG,EAAE;YACZ,OAAO,EAAE,CAAA;QACX,CAAC,EACD,IAAI,QACJ,KAAK,EAAC,iBAAiB,EACvB,QAAQ,EAAC,IAAI;QAEb,oBAAC,aAAa;YACZ,oBAAC,YAAY,IAAC,KAAK,EAAE,KAAK,GAAI,CAChB,CACT,CACV,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,iBAAiB,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import type { MsaViewModel } from '../../model.ts';
3
- declare const MSASettingsMenu: ({ model }: {
3
+ declare const GapThresholdDialog: ({ model, onClose, }: {
4
4
  model: MsaViewModel;
5
+ onClose: () => void;
5
6
  }) => React.JSX.Element;
6
- export default MSASettingsMenu;
7
+ export default GapThresholdDialog;
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { Dialog } from '@jbrowse/core/ui';
3
+ import { Button, DialogActions, DialogContent, Typography } from '@mui/material';
4
+ import { observer } from 'mobx-react';
5
+ import GappynessSlider from './GappynessSlider.js';
6
+ const GapThresholdDialog = observer(function ({ model, onClose, }) {
7
+ return (React.createElement(Dialog, { open: true, onClose: onClose, title: "Hide gappy columns" },
8
+ React.createElement(DialogContent, null,
9
+ React.createElement(Typography, { variant: "body2", sx: { mb: 2 } }, "The viewer hides each column where at least this share of the rows has a gap."),
10
+ React.createElement(GappynessSlider, { model: model })),
11
+ React.createElement(DialogActions, null,
12
+ React.createElement(Button, { variant: "contained", onClick: onClose }, "Close"))));
13
+ });
14
+ export default GapThresholdDialog;
15
+ //# sourceMappingURL=GapThresholdDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GapThresholdDialog.js","sourceRoot":"","sources":["../../../src/components/dialogs/GapThresholdDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,eAAe,MAAM,sBAAuB,CAAA;AAInD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,UAAU,EAC5C,KAAK,EACL,OAAO,GAIR;IACC,OAAO,CACL,oBAAC,MAAM,IAAC,IAAI,QAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAC,oBAAoB;QACvD,oBAAC,aAAa;YACZ,oBAAC,UAAU,IAAC,OAAO,EAAC,OAAO,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,oFAG5B;YACb,oBAAC,eAAe,IAAC,KAAK,EAAE,KAAK,GAAI,CACnB;QAChB,oBAAC,aAAa;YACZ,oBAAC,MAAM,IAAC,OAAO,EAAC,WAAW,EAAC,OAAO,EAAE,OAAO,YAEnC,CACK,CACT,CACV,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,kBAAkB,CAAA"}
@@ -2,5 +2,5 @@ import React from 'react';
2
2
  import type { MsaViewModel } from '../../model.ts';
3
3
  declare const GappynessSlider: ({ model, }: {
4
4
  model: MsaViewModel;
5
- }) => React.JSX.Element | null;
5
+ }) => React.JSX.Element;
6
6
  export default GappynessSlider;
@@ -2,15 +2,11 @@ import React, { useState } from 'react';
2
2
  import { Slider, Typography } from '@mui/material';
3
3
  import { observer } from 'mobx-react';
4
4
  const GappynessSlider = observer(function GappynessSlider({ model, }) {
5
- const { hideGaps, allowedGappyness } = model;
6
5
  const [dragValue, setDragValue] = useState();
7
- const value = dragValue ?? allowedGappyness;
8
- if (!hideGaps) {
9
- return null;
10
- }
6
+ const value = dragValue ?? model.allowedGappyness;
11
7
  return (React.createElement("div", { style: { display: 'flex', alignItems: 'center', gap: 8 } },
12
8
  React.createElement(Typography, { style: { whiteSpace: 'nowrap' } },
13
- "Hide columns w/ \u2265",
9
+ "\u2265",
14
10
  value,
15
11
  "% gaps"),
16
12
  React.createElement(Slider
@@ -25,10 +21,7 @@ const GappynessSlider = observer(function GappynessSlider({ model, }) {
25
21
  // The thumb follows local state while dragging and the model takes the
26
22
  // value on release, since each write recomputes the gap columns over
27
23
  // the whole alignment.
28
- //
29
- // The thumb centers on the track's ends, so the margin keeps its
30
- // overhang off the label and the row search beside it.
31
- , { "data-testid": "gappyness_slider", style: { width: 100, marginInline: 10 }, min: 1, max: 100, value: value, onChange: (_, val) => {
24
+ , { "data-testid": "gappyness_slider", style: { width: 200, marginInline: 10 }, min: 1, max: 100, value: value, onChange: (_, val) => {
32
25
  setDragValue(val);
33
26
  }, onChangeCommitted: (_, val) => {
34
27
  model.setAllowedGappyness(val);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GappynessSlider.js","sourceRoot":"","sources":["../../../src/components/dialogs/GappynessSlider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEvC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAIrC,MAAM,eAAe,GAAG,QAAQ,CAAC,SAAS,eAAe,CAAC,EACxD,KAAK,GAGN;IACC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,EAAU,CAAA;IACpD,MAAM,KAAK,GAAG,SAAS,IAAI,KAAK,CAAC,gBAAgB,CAAA;IACjD,OAAO,CACL,6BAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE;QAI3D,oBAAC,UAAU,IAAC,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE;;YACpC,KAAK;qBACC;QACb,oBAAC,MAAM;QACL,qEAAqE;QACrE,6DAA6D;QAC7D,wEAAwE;QACxE,yCAAyC;QACzC,EAAE;QACF,sEAAsE;QACtE,0DAA0D;QAC1D,EAAE;QACF,uEAAuE;QACvE,qEAAqE;QACrE,uBAAuB;2BACX,kBAAkB,EAC9B,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE,EACvC,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;gBACnB,YAAY,CAAC,GAAG,CAAC,CAAA;YACnB,CAAC,EACD,iBAAiB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;gBAC5B,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;gBAC9B,YAAY,CAAC,SAAS,CAAC,CAAA;YACzB,CAAC,GACD,CACE,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,eAAe,CAAA"}
@@ -332,7 +332,9 @@ export declare function labelledInput(params: AutocompleteRenderInputParams): {
332
332
  'aria-label': string;
333
333
  };
334
334
  };
335
- declare const GoToBox: ({ model }: {
335
+ export declare function canGoTo(model: MsaViewModel): boolean;
336
+ declare const GoToBox: ({ model, onFound, }: {
336
337
  model: MsaViewModel;
337
- }) => React.JSX.Element | null;
338
+ onFound?: () => void;
339
+ }) => React.JSX.Element;
338
340
  export default GoToBox;
@@ -0,0 +1,48 @@
1
+ import React, { useState } from 'react';
2
+ import { Autocomplete, TextField } from '@mui/material';
3
+ import { observer } from 'mobx-react';
4
+ import { findableRowNames, goTo, rowNameSuggestions } from './goTo.js';
5
+ const label = 'Go to row or column';
6
+ // MUI 9 hands renderInput `slotProps`; MUI 7, which every released JBrowse host
7
+ // serves, hands it `inputProps` and no `slotProps` at all
8
+ export function labelledInput(params) {
9
+ const { slotProps, inputProps } = params;
10
+ return slotProps
11
+ ? {
12
+ slotProps: {
13
+ ...slotProps,
14
+ htmlInput: { ...slotProps.htmlInput, 'aria-label': label },
15
+ },
16
+ }
17
+ : { inputProps: { ...inputProps, 'aria-label': label } };
18
+ }
19
+ // the menu that opens the dialog hands focus back to its button as it closes,
20
+ // after an autoFocus input would have taken it
21
+ function focusNextFrame(el) {
22
+ if (el) {
23
+ requestAnimationFrame(() => {
24
+ el.focus();
25
+ });
26
+ }
27
+ }
28
+ export function canGoTo(model) {
29
+ return findableRowNames(model).length > 1 || model.numColumns > 0;
30
+ }
31
+ const GoToBox = observer(function ({ model, onFound, }) {
32
+ const [missed, setMissed] = useState(false);
33
+ return (React.createElement(Autocomplete, { freeSolo: true, options: findableRowNames(model), filterOptions: (options, { inputValue }) => rowNameSuggestions(options, inputValue), value: null, blurOnSelect: true, onInputChange: () => {
34
+ setMissed(false);
35
+ }, onChange: (_, text) => {
36
+ if (text) {
37
+ const found = goTo(model, text);
38
+ setMissed(!found);
39
+ if (found) {
40
+ onFound?.();
41
+ }
42
+ }
43
+ }, renderInput: params => (React.createElement(TextField, { ...params, inputRef: focusNextFrame, error: missed, placeholder: "Row name or column number", helperText: missed
44
+ ? 'No row or column matches'
45
+ : 'Or name:N for residue N of that row', ...labelledInput(params) })) }));
46
+ });
47
+ export default GoToBox;
48
+ //# sourceMappingURL=GoToBox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GoToBox.js","sourceRoot":"","sources":["../../../src/components/dialogs/GoToBox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEvC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAKtE,MAAM,KAAK,GAAG,qBAAqB,CAAA;AAEnC,gFAAgF;AAChF,0DAA0D;AAC1D,MAAM,UAAU,aAAa,CAAC,MAAqC;IACjE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAEjC,CAAA;IACD,OAAO,SAAS;QACd,CAAC,CAAC;YACE,SAAS,EAAE;gBACT,GAAG,SAAS;gBACZ,SAAS,EAAE,EAAE,GAAG,SAAS,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE;aAC3D;SACF;QACH,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,GAAG,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,CAAA;AAC5D,CAAC;AAED,8EAA8E;AAC9E,+CAA+C;AAC/C,SAAS,cAAc,CAAC,EAA2B;IACjD,IAAI,EAAE,EAAE,CAAC;QACP,qBAAqB,CAAC,GAAG,EAAE;YACzB,EAAE,CAAC,KAAK,EAAE,CAAA;QACZ,CAAC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,CAAA;AACnE,CAAC;AAED,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EACjC,KAAK,EACL,OAAO,GAIR;IACC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3C,OAAO,CACL,oBAAC,YAAY,IACX,QAAQ,QACR,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAChC,aAAa,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CACzC,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC,EAEzC,KAAK,EAAE,IAAI,EACX,YAAY,QACZ,aAAa,EAAE,GAAG,EAAE;YAClB,SAAS,CAAC,KAAK,CAAC,CAAA;QAClB,CAAC,EACD,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;YACpB,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;gBAC/B,SAAS,CAAC,CAAC,KAAK,CAAC,CAAA;gBACjB,IAAI,KAAK,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE,CAAA;gBACb,CAAC;YACH,CAAC;QACH,CAAC,EACD,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,CACrB,oBAAC,SAAS,OACJ,MAAM,EACV,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,MAAM,EACb,WAAW,EAAC,2BAA2B,EACvC,UAAU,EACR,MAAM;gBACJ,CAAC,CAAC,0BAA0B;gBAC5B,CAAC,CAAC,qCAAqC,KAEvC,aAAa,CAAC,MAAM,CAAC,GACzB,CACH,GACD,CACH,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,OAAO,CAAA"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import type { MsaViewModel } from '../../model.ts';
3
+ export default function GoToDialog({ model, onClose, }: {
4
+ model: MsaViewModel;
5
+ onClose: () => void;
6
+ }): React.JSX.Element;
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { Dialog } from '@jbrowse/core/ui';
3
+ import { DialogContent } from '@mui/material';
4
+ import GoToBox from './GoToBox.js';
5
+ export default function GoToDialog({ model, onClose, }) {
6
+ return (React.createElement(Dialog, { open: true, onClose: onClose, title: "Go to row or column", maxWidth: "xs", fullWidth: true },
7
+ React.createElement(DialogContent, null,
8
+ React.createElement(GoToBox, { model: model, onFound: onClose }))));
9
+ }
10
+ //# sourceMappingURL=GoToDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GoToDialog.js","sourceRoot":"","sources":["../../../src/components/dialogs/GoToDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE7C,OAAO,OAAO,MAAM,cAAe,CAAA;AAInC,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,KAAK,EACL,OAAO,GAIR;IACC,OAAO,CACL,oBAAC,MAAM,IACL,IAAI,QACJ,OAAO,EAAE,OAAO,EAChB,KAAK,EAAC,qBAAqB,EAC3B,QAAQ,EAAC,IAAI,EACb,SAAS;QAET,oBAAC,aAAa;YACZ,oBAAC,OAAO,IAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAI,CAC7B,CACT,CACV,CAAA;AACH,CAAC"}
@@ -2,15 +2,23 @@ import React from 'react';
2
2
  import { Dialog } from '@jbrowse/core/ui';
3
3
  import { DialogContent, Typography } from '@mui/material';
4
4
  import { observer } from 'mobx-react';
5
- import MetadataTable, { isEmpty } from '../MetadataTable.js';
5
+ import MetadataTable, { isEmpty, isRecord } from '../MetadataTable.js';
6
6
  import SequenceTextArea from '../SequenceTextArea.js';
7
+ import { gfLabels, monospaceKeys, sectionLabels } from './metadataLabels.js';
8
+ import { groupGeneral } from './metadataRecord.js';
7
9
  const MetadataDialog = observer(function ({ model, onClose, }) {
8
- const { header } = model;
10
+ const entries = Object.entries(model.header).filter(([, value]) => value != null && !isEmpty(value));
11
+ const fields = Object.fromEntries(entries.filter(([, value]) => !isRecord(value)));
12
+ const sections = entries.filter(([, value]) => isRecord(value));
9
13
  return (React.createElement(Dialog, { onClose: () => {
10
14
  onClose();
11
15
  }, open: true, title: "Metadata", maxWidth: "xl" },
12
16
  React.createElement(DialogContent, null,
13
- Object.values(header).every(isEmpty) ? (React.createElement(Typography, null, "This alignment has no metadata.")) : (React.createElement(MetadataTable, { record: header })),
17
+ entries.length === 0 ? (React.createElement(Typography, null, "This alignment has no metadata.")) : (React.createElement(React.Fragment, null,
18
+ Object.keys(fields).length > 0 ? (React.createElement(MetadataTable, { record: fields })) : null,
19
+ sections.map(([section, value]) => (React.createElement("div", { key: section },
20
+ React.createElement(Typography, { variant: "h6" }, sectionLabels[section] ?? section),
21
+ section === 'General' ? (React.createElement(MetadataTable, { record: groupGeneral(value), labels: gfLabels, monospaceKeys: monospaceKeys })) : (React.createElement(MetadataTable, { record: value }))))))),
14
22
  React.createElement(Typography, { variant: "h6" }, "Sequences"),
15
23
  React.createElement(SequenceTextArea, { str: model.rows }))));
16
24
  });
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataDialog.js","sourceRoot":"","sources":["../../../src/components/dialogs/MetadataDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,aAAa,EAAE,EAAE,OAAO,EAAE,MAAM,qBAAsB,CAAA;AAC7D,OAAO,gBAAgB,MAAM,wBAAyB,CAAA;AAItD,MAAM,cAAc,GAAG,QAAQ,CAAC,UAAU,EACxC,KAAK,EACL,OAAO,GAIR;IACC,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;IACxB,OAAO,CACL,oBAAC,MAAM,IACL,OAAO,EAAE,GAAG,EAAE;YACZ,OAAO,EAAE,CAAA;QACX,CAAC,EACD,IAAI,QACJ,KAAK,EAAC,UAAU,EAChB,QAAQ,EAAC,IAAI;QAEb,oBAAC,aAAa;YACX,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CACtC,oBAAC,UAAU,0CAA6C,CACzD,CAAC,CAAC,CAAC,CACF,oBAAC,aAAa,IAAC,MAAM,EAAE,MAAM,GAAI,CAClC;YACD,oBAAC,UAAU,IAAC,OAAO,EAAC,IAAI,gBAAuB;YAC/C,oBAAC,gBAAgB,IAAC,GAAG,EAAE,KAAK,CAAC,IAAI,GAAI,CACvB,CACT,CACV,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"MetadataDialog.js","sourceRoot":"","sources":["../../../src/components/dialogs/MetadataDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,aAAa,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAsB,CAAA;AACvE,OAAO,gBAAgB,MAAM,wBAAyB,CAAA;AACtD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAsB,CAAA;AAInD,MAAM,cAAc,GAAG,QAAQ,CAAC,UAAU,EACxC,KAAK,EACL,OAAO,GAIR;IACC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CACjD,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAChD,CAAA;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAC/B,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAChD,CAAA;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;IAC/D,OAAO,CACL,oBAAC,MAAM,IACL,OAAO,EAAE,GAAG,EAAE;YACZ,OAAO,EAAE,CAAA;QACX,CAAC,EACD,IAAI,QACJ,KAAK,EAAC,UAAU,EAChB,QAAQ,EAAC,IAAI;QAEb,oBAAC,aAAa;YACX,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACtB,oBAAC,UAAU,0CAA6C,CACzD,CAAC,CAAC,CAAC,CACF;gBACG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAChC,oBAAC,aAAa,IAAC,MAAM,EAAE,MAAM,GAAI,CAClC,CAAC,CAAC,CAAC,IAAI;gBACP,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAClC,6BAAK,GAAG,EAAE,OAAO;oBACf,oBAAC,UAAU,IAAC,OAAO,EAAC,IAAI,IACrB,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,CACvB;oBACZ,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CACvB,oBAAC,aAAa,IACZ,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,EAC3B,MAAM,EAAE,QAAQ,EAChB,aAAa,EAAE,aAAa,GAC5B,CACH,CAAC,CAAC,CAAC,CACF,oBAAC,aAAa,IAAC,MAAM,EAAE,KAAgC,GAAI,CAC5D,CACG,CACP,CAAC,CACD,CACJ;YACD,oBAAC,UAAU,IAAC,OAAO,EAAC,IAAI,gBAAuB;YAC/C,oBAAC,gBAAgB,IAAC,GAAG,EAAE,KAAK,CAAC,IAAI,GAAI,CACvB,CACT,CACV,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,cAAc,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { MsaViewModel } from '../../model.ts';
2
+ export declare function findableRowNames(model: MsaViewModel): string[];
3
+ export declare function rowNameSuggestions(names: string[], input: string, limit?: number): string[];
4
+ /** centers the view on the entry's target and lights it; false if none */
5
+ export declare function goTo(model: MsaViewModel, text: string): boolean;
@@ -17,7 +17,7 @@ export function rowNameSuggestions(names, input, limit = 50) {
17
17
  * column the ruler numbers N, or residue N of a row written `name:N`. A name
18
18
  * is tried whole first, so a row called `chr1:100` stays reachable.
19
19
  */
20
- export function resolveGoTo(model, text) {
20
+ function resolveGoTo(model, text) {
21
21
  const query = text.trim();
22
22
  const row = model.rowNamesSet.get(query);
23
23
  if (row !== undefined) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goTo.js","sourceRoot":"","sources":["../../../src/components/dialogs/goTo.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAAC,KAAmB;IAClD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAC1C,OAAO,KAAK,CAAC,MAAM;SAChB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;SACvE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAChC,CAAC;AAED,uEAAuE;AACvE,4CAA4C;AAC5C,MAAM,UAAU,kBAAkB,CAAC,KAAe,EAAE,KAAa,EAAE,KAAK,GAAG,EAAE;IAC3E,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;IACjC,OAAO,KAAK;SACT,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SAClD,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;AACpB,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,KAAmB,EAAE,IAAY;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;IACzB,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACxC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,EAAE,GAAG,EAAE,CAAA;IAChB,CAAC;IACD,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC1C,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,CAAC,GAAG,OAAO,CAAA;QAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC5C,MAAM,GAAG,GACP,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,GAAI,CAAC,CAAA;QAC1E,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAA;IAC/D,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAA;QAChB,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,KAAK,CAAA;QACxC,MAAM,GAAG,GAAG,UAAU;YACpB,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,UAAU;gBACzB,CAAC,CAAC,CAAC,GAAG,CAAC;gBACP,CAAC,CAAC,SAAS,CAAA;QACf,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAA;IAChD,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,2EAA2E;AAC3E,sCAAsC;AACtC,SAAS,eAAe,CAAC,KAAmB,EAAE,IAAY,EAAE,GAAW;IACrE,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;IACpD,OAAO,SAAS,KAAK,SAAS;QAC5B,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAA;AAC5C,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,IAAI,CAAC,KAAmB,EAAE,IAAY;IACpD,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACvC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAA;QAC3B,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,KAAK,CAAA;QAClE,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,SAAS,GAAG,aAAa,GAAG,CAAC,CAAC,CAAA;QAChE,CAAC;QACD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,QAAQ,GAAG,YAAY,GAAG,CAAC,CAAC,CAAA;QAC9D,CAAC;QACD,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAC7B,CAAC;IACD,OAAO,MAAM,KAAK,SAAS,CAAA;AAC7B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const sectionLabels: Record<string, string>;
2
+ export declare const gfLabels: Record<string, string>;
3
+ export declare const referenceFieldLabels: Record<string, string>;
4
+ export declare const monospaceKeys: Set<string>;
@@ -0,0 +1,52 @@
1
+ export const sectionLabels = {
2
+ General: 'Alignment',
3
+ Accessions: 'Row accessions',
4
+ Dbxref: 'Row cross-references',
5
+ };
6
+ export const gfLabels = {
7
+ ID: 'Identifier',
8
+ AC: 'Accession',
9
+ DE: 'Description',
10
+ AU: 'Authors',
11
+ SE: 'Source of seed',
12
+ SS: 'Source of structure',
13
+ BM: 'Build method',
14
+ SM: 'Search method',
15
+ GA: 'Gathering threshold',
16
+ TC: 'Trusted cutoff',
17
+ NC: 'Noise cutoff',
18
+ TP: 'Family type',
19
+ CL: 'Clan',
20
+ MB: 'Clan members',
21
+ PI: 'Previous identifiers',
22
+ DR: 'Database references',
23
+ CC: 'Comment',
24
+ WK: 'Wikipedia',
25
+ NE: 'Pfam family nested in this one',
26
+ NL: 'Nesting location',
27
+ NH: 'Tree (Newick)',
28
+ SQ: 'Number of sequences',
29
+ RC: 'Reference comment',
30
+ RN: 'Reference number',
31
+ RM: 'PubMed ID',
32
+ RT: 'Reference title',
33
+ RA: 'Reference authors',
34
+ RL: 'Reference journal',
35
+ CB: 'Curation: build',
36
+ DC: 'Database comment',
37
+ DW: 'Database web link',
38
+ OS: 'Organism',
39
+ OC: 'Organism classification',
40
+ AM: 'Alignment method',
41
+ FT: 'Feature',
42
+ SO: 'Sequence Ontology term',
43
+ };
44
+ export const referenceFieldLabels = {
45
+ RT: 'Title',
46
+ RA: 'Authors',
47
+ RL: 'Journal',
48
+ RM: 'PubMed',
49
+ RC: 'Comment',
50
+ };
51
+ export const monospaceKeys = new Set(['NH']);
52
+ //# sourceMappingURL=metadataLabels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadataLabels.js","sourceRoot":"","sources":["../../../src/components/dialogs/metadataLabels.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,OAAO,EAAE,WAAW;IACpB,UAAU,EAAE,gBAAgB;IAC5B,MAAM,EAAE,sBAAsB;CAC/B,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAA2B;IAC9C,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,aAAa;IACjB,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,gBAAgB;IACpB,EAAE,EAAE,qBAAqB;IACzB,EAAE,EAAE,cAAc;IAClB,EAAE,EAAE,eAAe;IACnB,EAAE,EAAE,qBAAqB;IACzB,EAAE,EAAE,gBAAgB;IACpB,EAAE,EAAE,cAAc;IAClB,EAAE,EAAE,aAAa;IACjB,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,cAAc;IAClB,EAAE,EAAE,sBAAsB;IAC1B,EAAE,EAAE,qBAAqB;IACzB,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,gCAAgC;IACpC,EAAE,EAAE,kBAAkB;IACtB,EAAE,EAAE,eAAe;IACnB,EAAE,EAAE,qBAAqB;IACzB,EAAE,EAAE,mBAAmB;IACvB,EAAE,EAAE,kBAAkB;IACtB,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,iBAAiB;IACrB,EAAE,EAAE,mBAAmB;IACvB,EAAE,EAAE,mBAAmB;IACvB,EAAE,EAAE,iBAAiB;IACrB,EAAE,EAAE,kBAAkB;IACtB,EAAE,EAAE,mBAAmB;IACvB,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,yBAAyB;IAC7B,EAAE,EAAE,kBAAkB;IACtB,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,wBAAwB;CAC7B,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC1D,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,SAAS;CACd,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export declare function groupGeneral(general: unknown): Record<string, unknown>;
@@ -0,0 +1,38 @@
1
+ import React from 'react';
2
+ import { referenceFieldLabels } from './metadataLabels.js';
3
+ const referenceTags = ['RM', 'RT', 'RA', 'RL', 'RC'];
4
+ function pubmed(id) {
5
+ return /^\d+$/.test(id) ? (React.createElement("a", { href: `https://pubmed.ncbi.nlm.nih.gov/${id}/`, target: "_blank", rel: "noreferrer" }, id)) : (id);
6
+ }
7
+ function groupReferences(general) {
8
+ const numbers = general.RN;
9
+ if (!Array.isArray(numbers) || numbers.length === 0) {
10
+ return general;
11
+ }
12
+ const present = referenceTags.filter(tag => general[tag] != null);
13
+ const aligned = present.every(tag => {
14
+ const values = general[tag];
15
+ return Array.isArray(values) && values.length === numbers.length;
16
+ });
17
+ if (!aligned) {
18
+ return general;
19
+ }
20
+ const rest = Object.fromEntries(Object.entries(general).filter(([tag]) => tag !== 'RN' && !referenceTags.includes(tag)));
21
+ const references = Object.fromEntries(numbers.map((number, i) => [
22
+ number,
23
+ Object.fromEntries(present.map(tag => {
24
+ const value = general[tag][i];
25
+ return [
26
+ referenceFieldLabels[tag],
27
+ tag === 'RM' ? pubmed(value) : value,
28
+ ];
29
+ })),
30
+ ]));
31
+ return { ...rest, References: references };
32
+ }
33
+ export function groupGeneral(general) {
34
+ return general && typeof general === 'object'
35
+ ? groupReferences(general)
36
+ : {};
37
+ }
38
+ //# sourceMappingURL=metadataRecord.js.map