jbrowse-plugin-msaview 2.2.1 → 2.2.2

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 (131) hide show
  1. package/dist/BgzipFastaMsaAdapter/BgzipFastaMsaAdapter.d.ts +10 -0
  2. package/dist/BgzipFastaMsaAdapter/BgzipFastaMsaAdapter.js +64 -0
  3. package/dist/BgzipFastaMsaAdapter/BgzipFastaMsaAdapter.js.map +1 -0
  4. package/dist/BgzipFastaMsaAdapter/configSchema.d.ts +7 -0
  5. package/dist/BgzipFastaMsaAdapter/configSchema.js +13 -0
  6. package/dist/BgzipFastaMsaAdapter/configSchema.js.map +1 -0
  7. package/dist/BgzipFastaMsaAdapter/index.d.ts +2 -0
  8. package/dist/BgzipFastaMsaAdapter/index.js +15 -0
  9. package/dist/BgzipFastaMsaAdapter/index.js.map +1 -0
  10. package/dist/LaunchMsaView/components/EnsemblGeneTree/EnsemblGeneTree.js.map +1 -1
  11. package/dist/LaunchMsaView/components/EnsemblGeneTree/useGeneTree.d.ts +1 -1
  12. package/dist/LaunchMsaView/components/EnsemblGeneTree/useGeneTree.js +3 -23
  13. package/dist/LaunchMsaView/components/EnsemblGeneTree/useGeneTree.js.map +1 -1
  14. package/dist/LaunchMsaView/components/EnsemblGeneTree/util.d.ts +1 -4
  15. package/dist/LaunchMsaView/components/EnsemblGeneTree/util.js +1 -37
  16. package/dist/LaunchMsaView/components/EnsemblGeneTree/util.js.map +1 -1
  17. package/dist/LaunchMsaView/components/LaunchMsaViewDialog.d.ts +1 -1
  18. package/dist/LaunchMsaView/components/LaunchMsaViewDialog.js +21 -16
  19. package/dist/LaunchMsaView/components/LaunchMsaViewDialog.js.map +1 -1
  20. package/dist/LaunchMsaView/components/ManualMSALoader/ManualMSALoader.js +1 -1
  21. package/dist/LaunchMsaView/components/ManualMSALoader/ManualMSALoader.js.map +1 -1
  22. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastAutomaticPanel.js +12 -8
  23. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastAutomaticPanel.js.map +1 -1
  24. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastManualPanel.js +1 -1
  25. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastManualPanel.js.map +1 -1
  26. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastPanel.js +8 -7
  27. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastPanel.js.map +1 -1
  28. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBISettingsDialog.js +1 -1
  29. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBISettingsDialog.js.map +1 -1
  30. package/dist/LaunchMsaView/components/PreLoadedMSA/PreLoadedMSADataPanel.js +87 -63
  31. package/dist/LaunchMsaView/components/PreLoadedMSA/PreLoadedMSADataPanel.js.map +1 -1
  32. package/dist/LaunchMsaView/components/PreLoadedMSA/consts.d.ts +7 -0
  33. package/dist/LaunchMsaView/components/PreLoadedMSA/consts.js +8 -0
  34. package/dist/LaunchMsaView/components/PreLoadedMSA/consts.js.map +1 -0
  35. package/dist/LaunchMsaView/components/PreLoadedMSA/fetchMSAData.d.ts +12 -0
  36. package/dist/LaunchMsaView/components/PreLoadedMSA/fetchMSAData.js +12 -0
  37. package/dist/LaunchMsaView/components/PreLoadedMSA/fetchMSAData.js.map +1 -0
  38. package/dist/LaunchMsaView/components/PreLoadedMSA/findValidTranscriptId.d.ts +5 -0
  39. package/dist/LaunchMsaView/components/PreLoadedMSA/findValidTranscriptId.js +16 -0
  40. package/dist/LaunchMsaView/components/PreLoadedMSA/findValidTranscriptId.js.map +1 -0
  41. package/dist/LaunchMsaView/components/PreLoadedMSA/preCalculatedLaunchView.d.ts +6 -3
  42. package/dist/LaunchMsaView/components/PreLoadedMSA/preCalculatedLaunchView.js +3 -20
  43. package/dist/LaunchMsaView/components/PreLoadedMSA/preCalculatedLaunchView.js.map +1 -1
  44. package/dist/LaunchMsaView/components/PreLoadedMSA/types.d.ts +7 -0
  45. package/dist/LaunchMsaView/components/PreLoadedMSA/types.js +2 -0
  46. package/dist/LaunchMsaView/components/PreLoadedMSA/types.js.map +1 -0
  47. package/dist/LaunchMsaView/components/TranscriptSelector.js +2 -2
  48. package/dist/LaunchMsaView/components/TranscriptSelector.js.map +1 -1
  49. package/dist/LaunchMsaView/components/calculateProteinSequence.d.ts +2 -2
  50. package/dist/LaunchMsaView/components/calculateProteinSequence.js +2 -2
  51. package/dist/LaunchMsaView/components/calculateProteinSequence.js.map +1 -1
  52. package/dist/LaunchMsaView/components/types.d.ts +1 -0
  53. package/dist/LaunchMsaView/components/useFeatureSequence.d.ts +3 -7
  54. package/dist/LaunchMsaView/components/useFeatureSequence.js +9 -62
  55. package/dist/LaunchMsaView/components/useFeatureSequence.js.map +1 -1
  56. package/dist/LaunchMsaView/components/useSWRFeatureSequence.d.ts +13 -0
  57. package/dist/LaunchMsaView/components/useSWRFeatureSequence.js +53 -0
  58. package/dist/LaunchMsaView/components/useSWRFeatureSequence.js.map +1 -0
  59. package/dist/LaunchMsaView/index.js +3 -1
  60. package/dist/LaunchMsaView/index.js.map +1 -1
  61. package/dist/MsaViewPanel/components/RIDLink.js +1 -1
  62. package/dist/MsaViewPanel/components/RIDLink.js.map +1 -1
  63. package/dist/MsaViewPanel/genomeToMSA.js +2 -2
  64. package/dist/MsaViewPanel/genomeToMSA.js.map +1 -1
  65. package/dist/MsaViewPanel/model.d.ts +13 -84
  66. package/dist/MsaViewPanel/model.js +6 -2
  67. package/dist/MsaViewPanel/model.js.map +1 -1
  68. package/dist/MsaViewPanel/msaCoordToGenomeCoord.js +39 -14
  69. package/dist/MsaViewPanel/msaCoordToGenomeCoord.js.map +1 -1
  70. package/dist/MsaViewPanel/util.js +2 -2
  71. package/dist/MsaViewPanel/util.js.map +1 -1
  72. package/dist/components/ExternalLink.js.map +1 -0
  73. package/dist/components/ReadOnlyTextField2.js.map +1 -0
  74. package/dist/components/TextField2.js.map +1 -0
  75. package/dist/index.d.ts +19 -0
  76. package/dist/index.js +26 -0
  77. package/dist/index.js.map +1 -1
  78. package/dist/jbrowse-plugin-msaview.umd.production.min.js +46 -33
  79. package/dist/jbrowse-plugin-msaview.umd.production.min.js.map +4 -4
  80. package/dist/out.js +55367 -0
  81. package/dist/utils/fetch.d.ts +3 -1
  82. package/dist/utils/fetch.js +24 -3
  83. package/dist/utils/fetch.js.map +1 -1
  84. package/package.json +7 -6
  85. package/src/BgzipFastaMsaAdapter/BgzipFastaMsaAdapter.ts +78 -0
  86. package/src/BgzipFastaMsaAdapter/configSchema.ts +18 -0
  87. package/src/BgzipFastaMsaAdapter/index.ts +18 -0
  88. package/src/LaunchMsaView/components/EnsemblGeneTree/EnsemblGeneTree.tsx +0 -1
  89. package/src/LaunchMsaView/components/EnsemblGeneTree/useGeneTree.ts +6 -24
  90. package/src/LaunchMsaView/components/EnsemblGeneTree/util.ts +6 -45
  91. package/src/LaunchMsaView/components/LaunchMsaViewDialog.tsx +23 -24
  92. package/src/LaunchMsaView/components/ManualMSALoader/ManualMSALoader.tsx +1 -1
  93. package/src/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastAutomaticPanel.tsx +13 -8
  94. package/src/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastManualPanel.tsx +1 -1
  95. package/src/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastPanel.tsx +20 -29
  96. package/src/LaunchMsaView/components/NCBIBlastQuery/NCBISettingsDialog.tsx +1 -1
  97. package/src/LaunchMsaView/components/PreLoadedMSA/PreLoadedMSADataPanel.tsx +154 -68
  98. package/src/LaunchMsaView/components/PreLoadedMSA/consts.ts +7 -0
  99. package/src/LaunchMsaView/components/PreLoadedMSA/fetchMSAData.ts +33 -0
  100. package/src/LaunchMsaView/components/PreLoadedMSA/findValidTranscriptId.ts +25 -0
  101. package/src/LaunchMsaView/components/PreLoadedMSA/preCalculatedLaunchView.ts +7 -26
  102. package/src/LaunchMsaView/components/PreLoadedMSA/types.ts +8 -0
  103. package/src/LaunchMsaView/components/TranscriptSelector.tsx +2 -2
  104. package/src/LaunchMsaView/components/calculateProteinSequence.ts +3 -3
  105. package/src/LaunchMsaView/components/types.ts +1 -0
  106. package/src/LaunchMsaView/components/useFeatureSequence.ts +10 -71
  107. package/src/LaunchMsaView/components/useSWRFeatureSequence.ts +90 -0
  108. package/src/LaunchMsaView/index.ts +4 -1
  109. package/src/MsaViewPanel/components/RIDLink.tsx +1 -1
  110. package/src/MsaViewPanel/genomeToMSA.ts +2 -2
  111. package/src/MsaViewPanel/model.ts +6 -2
  112. package/src/MsaViewPanel/msaCoordToGenomeCoord.ts +43 -16
  113. package/src/MsaViewPanel/util.ts +2 -2
  114. package/src/index.ts +31 -0
  115. package/src/utils/fetch.ts +31 -3
  116. package/dist/ExternalLink.js.map +0 -1
  117. package/dist/LaunchMsaView/components/PreLoadedMSA/fetchGeneList.d.ts +0 -1
  118. package/dist/LaunchMsaView/components/PreLoadedMSA/fetchGeneList.js +0 -12
  119. package/dist/LaunchMsaView/components/PreLoadedMSA/fetchGeneList.js.map +0 -1
  120. package/dist/ReadOnlyTextField2.js.map +0 -1
  121. package/dist/TextField2.js.map +0 -1
  122. package/src/LaunchMsaView/components/PreLoadedMSA/fetchGeneList.ts +0 -13
  123. /package/dist/{ExternalLink.d.ts → components/ExternalLink.d.ts} +0 -0
  124. /package/dist/{ExternalLink.js → components/ExternalLink.js} +0 -0
  125. /package/dist/{ReadOnlyTextField2.d.ts → components/ReadOnlyTextField2.d.ts} +0 -0
  126. /package/dist/{ReadOnlyTextField2.js → components/ReadOnlyTextField2.js} +0 -0
  127. /package/dist/{TextField2.d.ts → components/TextField2.d.ts} +0 -0
  128. /package/dist/{TextField2.js → components/TextField2.js} +0 -0
  129. /package/src/{ExternalLink.tsx → components/ExternalLink.tsx} +0 -0
  130. /package/src/{ReadOnlyTextField2.tsx → components/ReadOnlyTextField2.tsx} +0 -0
  131. /package/src/{TextField2.tsx → components/TextField2.tsx} +0 -0
@@ -65,6 +65,10 @@ export default function stateModelFactory() {
65
65
  * #property
66
66
  */
67
67
  blastParams: types.frozen<BlastParams | undefined>(),
68
+ /**
69
+ * #property
70
+ */
71
+ querySeqName: 'QUERY',
68
72
 
69
73
  /**
70
74
  * #property
@@ -241,12 +245,12 @@ export default function stateModelFactory() {
241
245
  if (self.blastParams) {
242
246
  try {
243
247
  self.setProgress('Submitting query')
248
+ self.setError(undefined)
244
249
  const data = await doLaunchBlast({
245
- self: self as JBrowsePluginMsaViewModel,
250
+ self,
246
251
  })
247
252
  self.setData(data)
248
253
  self.setBlastParams(undefined)
249
- self.setProgress('')
250
254
  } catch (e) {
251
255
  self.setError(e)
252
256
  console.error(e)
@@ -1,5 +1,19 @@
1
1
  import { JBrowsePluginMsaViewModel } from './model'
2
2
 
3
+ /**
4
+ * Convert gapped MSA column coordinate to ungapped sequence coordinate
5
+ * This is the inverse of ungappedCoordMap
6
+ */
7
+ function gappedToUngappedCoord(seq: string, gappedPos: number): number {
8
+ let ungappedPos = 0
9
+ for (let i = 0; i < gappedPos && i < seq.length; i++) {
10
+ if (seq[i] !== '-') {
11
+ ungappedPos++
12
+ }
13
+ }
14
+ return ungappedPos
15
+ }
16
+
3
17
  export function msaCoordToGenomeCoord({
4
18
  model,
5
19
  coord: mouseCol,
@@ -7,22 +21,35 @@ export function msaCoordToGenomeCoord({
7
21
  model: JBrowsePluginMsaViewModel
8
22
  coord: number
9
23
  }) {
10
- const { transcriptToMsaMap } = model
24
+ const { querySeqName, transcriptToMsaMap } = model
11
25
  if (transcriptToMsaMap === undefined) {
12
- return
13
- }
26
+ return undefined
27
+ } else {
28
+ // Get the query sequence
29
+ const queryRow = model.rows.find(f => f[0] === querySeqName)
30
+ const querySeq = queryRow?.[1]
31
+ if (!querySeq) {
32
+ return undefined
33
+ }
14
34
 
15
- const c = mouseCol
16
- const k1 = model.seqCoordToRowSpecificGlobalCoord('QUERY', c) || 0
17
- const k2 = model.seqCoordToRowSpecificGlobalCoord('QUERY', c + 1) || 0
18
- const { refName, p2g } = transcriptToMsaMap
19
- const s = p2g[k1]
20
- const e = p2g[k2]
21
- return s !== undefined && e !== undefined
22
- ? {
23
- refName,
24
- start: Math.min(s, e),
25
- end: Math.max(s, e),
26
- }
27
- : undefined
35
+ // Check if the position in the query sequence is a gap
36
+ if (querySeq[mouseCol] === '-') {
37
+ return undefined
38
+ }
39
+
40
+ // Convert gapped MSA column to ungapped sequence coordinate
41
+ const ungappedPos = gappedToUngappedCoord(querySeq, mouseCol)
42
+
43
+ // Use the ungapped position to look up in the p2g map
44
+ const { refName, p2g } = transcriptToMsaMap
45
+ const s = p2g[ungappedPos]
46
+ const e = p2g[ungappedPos + 1]
47
+ return s !== undefined && e !== undefined
48
+ ? {
49
+ refName,
50
+ start: Math.min(s, e),
51
+ end: Math.max(s, e),
52
+ }
53
+ : undefined
54
+ }
28
55
  }
@@ -5,8 +5,8 @@ export function checkHovered(hovered: unknown): hovered is {
5
5
  hoverPosition: { coord: number; refName: string }
6
6
  } {
7
7
  return (
8
- !!hovered &&
9
- typeof hovered == 'object' &&
8
+ typeof hovered === 'object' &&
9
+ hovered !== null &&
10
10
  'hoverFeature' in hovered &&
11
11
  'hoverPosition' in hovered
12
12
  )
package/src/index.ts CHANGED
@@ -1,10 +1,13 @@
1
1
  import Plugin from '@jbrowse/core/Plugin'
2
2
  import PluginManager from '@jbrowse/core/PluginManager'
3
+ import { ConfigurationSchema } from '@jbrowse/core/configuration'
3
4
  import { AbstractSessionModel, isAbstractMenuManager } from '@jbrowse/core/util'
4
5
  import GridOn from '@mui/icons-material/GridOn'
6
+ import { types } from 'mobx-state-tree'
5
7
 
6
8
  import { version } from '../package.json'
7
9
  import AddHighlightModelF from './AddHighlightModel'
10
+ import BgzipFastaMsaAdapterF from './BgzipFastaMsaAdapter'
8
11
  import LaunchMsaViewF from './LaunchMsaView'
9
12
  import MsaViewF from './MsaViewPanel'
10
13
 
@@ -16,6 +19,7 @@ export default class MsaViewPlugin extends Plugin {
16
19
  MsaViewF(pluginManager)
17
20
  LaunchMsaViewF(pluginManager)
18
21
  AddHighlightModelF(pluginManager)
22
+ BgzipFastaMsaAdapterF(pluginManager)
19
23
  }
20
24
 
21
25
  configure(pluginManager: PluginManager) {
@@ -29,4 +33,31 @@ export default class MsaViewPlugin extends Plugin {
29
33
  })
30
34
  }
31
35
  }
36
+
37
+ // @ts-expect-error
38
+ rootConfigurationSchema(pluginManager: PluginManager) {
39
+ return {
40
+ msa: ConfigurationSchema('MSA', {
41
+ datasets: types.maybe(
42
+ types.array(
43
+ ConfigurationSchema('MSAEntry', {
44
+ datasetId: {
45
+ type: 'string',
46
+ defaultValue: '',
47
+ },
48
+ description: {
49
+ type: 'string',
50
+ defaultValue: '',
51
+ },
52
+ name: {
53
+ type: 'string',
54
+ defaultValue: '',
55
+ },
56
+ adapter: pluginManager.pluggableConfigSchemaType('adapter'),
57
+ }),
58
+ ),
59
+ ),
60
+ }),
61
+ }
62
+ }
32
63
  }
@@ -1,4 +1,6 @@
1
- export async function myfetch(url: string, args?: RequestInit) {
1
+ import { ungzip } from 'pako'
2
+
3
+ export async function handleFetch(url: string, args?: RequestInit) {
2
4
  const response = await fetch(url, args)
3
5
 
4
6
  if (!response.ok) {
@@ -11,15 +13,41 @@ export async function myfetch(url: string, args?: RequestInit) {
11
13
  }
12
14
 
13
15
  export async function textfetch(url: string, args?: RequestInit) {
14
- const response = await myfetch(url, args)
16
+ const response = await handleFetch(url, args)
15
17
  return response.text()
16
18
  }
17
19
 
18
20
  export async function jsonfetch<T>(url: string, args?: RequestInit) {
19
- const response = await myfetch(url, args)
21
+ const response = await handleFetch(url, args)
20
22
  return response.json() as Promise<T>
21
23
  }
22
24
 
23
25
  export function timeout(time: number) {
24
26
  return new Promise(res => setTimeout(res, time))
25
27
  }
28
+
29
+ export async function fetchWithLocalStorageCache<T>(
30
+ key: string,
31
+ fetchFn: () => Promise<T>,
32
+ ): Promise<T> {
33
+ const cachedData = localStorage.getItem(key)
34
+
35
+ if (cachedData) {
36
+ try {
37
+ return JSON.parse(cachedData) as T
38
+ } catch (error) {
39
+ console.error(`Error parsing cached data for ${key}:`, error)
40
+ // Continue to fetch fresh data if parsing fails
41
+ localStorage.removeItem(key)
42
+ }
43
+ }
44
+
45
+ const data = await fetchFn()
46
+ localStorage.setItem(key, JSON.stringify(data))
47
+ return data
48
+ }
49
+
50
+ export async function unzipfetch(url: string, arg?: RequestInit) {
51
+ const res = await handleFetch(url, arg)
52
+ return ungzip(await res.arrayBuffer(), { to: 'string' })
53
+ }
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExternalLink.js","sourceRoot":"","sources":["../src/ExternalLink.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,aAAa,MAAM,+BAA+B,CAAA;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAIpC,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,KAAgB;IACnD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAA;IACnC,OAAO,CACL,oBAAC,IAAI,OAAK,IAAI,EAAE,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,YAAY;QAC7C,QAAQ;;QAAE,oBAAC,aAAa,IAAC,QAAQ,EAAC,OAAO,GAAG,CACxC,CACR,CAAA;AACH,CAAC"}
@@ -1 +0,0 @@
1
- export declare function fetchGeneList(): Promise<string[]>;
@@ -1,12 +0,0 @@
1
- export async function fetchGeneList() {
2
- const res = await fetch('https://jbrowse.org/demos/msaview/knownCanonical/list.txt');
3
- if (!res.ok) {
4
- throw new Error(`HTTP ${res.status} fetching list ${await res.text()}`);
5
- }
6
- const result = await res.text();
7
- return result
8
- .split('\n')
9
- .map(f => f.trim())
10
- .filter(f => !!f);
11
- }
12
- //# sourceMappingURL=fetchGeneList.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetchGeneList.js","sourceRoot":"","sources":["../../../../src/LaunchMsaView/components/PreLoadedMSA/fetchGeneList.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,2DAA2D,CAC5D,CAAA;IACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,kBAAkB,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IACzE,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;IAC/B,OAAO,MAAM;SACV,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACrB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ReadOnlyTextField2.js","sourceRoot":"","sources":["../src/ReadOnlyTextField2.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,OAAO,UAAU,MAAM,cAAc,CAAA;AAErC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;IAC7B,YAAY,EAAE;QACZ,UAAU,EAAE,aAAa;KAC1B;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EAAE,KAAK,EAAqB;IACrE,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,OAAO,CACL,oBAAC,UAAU,IACT,OAAO,EAAC,UAAU,EAClB,SAAS,QACT,OAAO,EAAE,CAAC,EACV,OAAO,EAAE,EAAE,EACX,SAAS,QACT,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE;YACT,KAAK,EAAE;gBACL,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE;oBACP,KAAK,EAAE,OAAO,CAAC,YAAY;iBAC5B;aACF;SACF,GACD,CACH,CAAA;AACH,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TextField2.js","sourceRoot":"","sources":["../src/TextField2.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAIzC,SAAS,UAAU,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAkB;IACvD,OAAO,CACL;QACE,oBAAC,SAAS,OAAK,IAAI,IAAG,QAAQ,CAAa,CACvC,CACP,CAAA;AACH,CAAC;AAED,eAAe,UAAU,CAAA"}
@@ -1,13 +0,0 @@
1
- export async function fetchGeneList() {
2
- const res = await fetch(
3
- 'https://jbrowse.org/demos/msaview/knownCanonical/list.txt',
4
- )
5
- if (!res.ok) {
6
- throw new Error(`HTTP ${res.status} fetching list ${await res.text()}`)
7
- }
8
- const result = await res.text()
9
- return result
10
- .split('\n')
11
- .map(f => f.trim())
12
- .filter(f => !!f)
13
- }