jbrowse-plugin-graphgenomeviewer 4.0.7 → 4.0.8

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 (73) hide show
  1. package/README.md +26 -43
  2. package/dist/chunks/AddTrackWorkflow-LRRSAVSX.js +2 -0
  3. package/dist/chunks/{AddTrackWorkflow-J44PELJE.js.map → AddTrackWorkflow-LRRSAVSX.js.map} +1 -1
  4. package/dist/chunks/{GbzBaseSyntenyAdapter-BLSUE5LT.js → GbzBaseSyntenyAdapter-WI3VYEF2.js} +5 -5
  5. package/dist/chunks/{GbzBaseSyntenyAdapter-BLSUE5LT.js.map → GbzBaseSyntenyAdapter-WI3VYEF2.js.map} +4 -4
  6. package/dist/chunks/{GraphGenomeView-U4XVAEO3.js → GraphGenomeView-K5PZO33Q.js} +2 -2
  7. package/dist/chunks/{GraphGenomeView-U4XVAEO3.js.map → GraphGenomeView-K5PZO33Q.js.map} +1 -1
  8. package/dist/chunks/{GraphTrackSettingsDialog-6KKN5F3W.js → GraphTrackSettingsDialog-6STIFKVD.js} +2 -2
  9. package/dist/chunks/LinearGraphDisplay-3WQBA6ZX.js +2 -0
  10. package/dist/chunks/{LinearGraphDisplay-IBECRYKJ.js.map → LinearGraphDisplay-3WQBA6ZX.js.map} +2 -2
  11. package/dist/chunks/{chunk-N7EFSGPU.js → chunk-254OZVVL.js} +2 -2
  12. package/dist/chunks/chunk-5TBIQWPH.js +4 -0
  13. package/dist/chunks/chunk-5TBIQWPH.js.map +7 -0
  14. package/dist/chunks/chunk-FCWXYIFC.js +2 -0
  15. package/dist/chunks/chunk-FCWXYIFC.js.map +7 -0
  16. package/dist/chunks/chunk-JVMMNMQG.js +2 -0
  17. package/dist/chunks/chunk-JVMMNMQG.js.map +7 -0
  18. package/dist/chunks/chunk-NBDRTXH2.js +2 -0
  19. package/dist/chunks/chunk-NBDRTXH2.js.map +7 -0
  20. package/dist/chunks/chunk-VXUVWSY5.js +2 -0
  21. package/dist/chunks/chunk-VXUVWSY5.js.map +7 -0
  22. package/dist/jbrowse-plugin-graphgenomeviewer.esm.js +2 -2
  23. package/dist/jbrowse-plugin-graphgenomeviewer.esm.js.map +4 -4
  24. package/package.json +3 -1
  25. package/src/GbzBaseSyntenyAdapter/GbzBaseSyntenyAdapter.test.ts +45 -1
  26. package/src/GbzBaseSyntenyAdapter/GbzBaseSyntenyAdapter.ts +26 -114
  27. package/src/GbzBaseSyntenyAdapter/configSchema.ts +1 -1
  28. package/src/GbzBaseSyntenyAdapter/gbzWindow.ts +166 -0
  29. package/src/GraphAddTrackWorkflow/buildTrackConfig.test.ts +1 -1
  30. package/src/GraphAddTrackWorkflow/buildTrackConfig.ts +1 -1
  31. package/src/GraphGenomeView/components/GraphCanvas.tsx +16 -3
  32. package/src/GraphGenomeView/components/TubeMapOverlay.tsx +70 -0
  33. package/src/GraphGenomeView/labelLayout.test.ts +1 -0
  34. package/src/GraphGenomeView/labelLayout.ts +18 -14
  35. package/src/GraphGenomeView/layout/tubeMapLayout.test.ts +95 -0
  36. package/src/GraphGenomeView/layout/tubeMapLayout.ts +276 -0
  37. package/src/GraphGenomeView/layoutModes.ts +27 -0
  38. package/src/GraphGenomeView/model.test.ts +3 -1
  39. package/src/GraphGenomeView/model.ts +114 -68
  40. package/src/GraphGenomeView/pipeline.ts +14 -5
  41. package/src/GraphGenomeView/renderPasses.bench.ts +1 -0
  42. package/src/GraphGenomeView/tubeMap/draw.ts +264 -0
  43. package/src/GraphGenomeView/tubeMap/frame.test.ts +59 -0
  44. package/src/GraphGenomeView/tubeMap/frame.ts +78 -0
  45. package/src/GraphGenomeView/tubeMap/warp.test.ts +58 -0
  46. package/src/GraphGenomeView/tubeMap/warp.ts +99 -0
  47. package/src/GraphGenomeView/types.ts +8 -4
  48. package/src/GraphGenomeView/viewport.ts +91 -0
  49. package/src/GraphTrack/index.ts +53 -0
  50. package/src/LinearGraphDisplay/LinearGraphDisplay.test.ts +25 -37
  51. package/src/LinearGraphDisplay/components/LinearGraphDisplay.tsx +1 -1
  52. package/src/LinearGraphDisplay/index.ts +12 -9
  53. package/src/LinearGraphDisplay/model.ts +5 -1
  54. package/src/RgfaTabixAdapter/configSchema.ts +1 -1
  55. package/src/core.test.ts +86 -6
  56. package/src/core.ts +38 -0
  57. package/src/graphTrackDefaults/graphTrackDefaults.test.ts +58 -36
  58. package/src/graphTrackDefaults/index.ts +66 -29
  59. package/src/index.ts +2 -0
  60. package/src/launchFromGraph/launchTracks.ts +1 -2
  61. package/src/version.ts +1 -1
  62. package/dist/chunks/AddTrackWorkflow-J44PELJE.js +0 -2
  63. package/dist/chunks/LinearGraphDisplay-IBECRYKJ.js +0 -2
  64. package/dist/chunks/chunk-C6PIPNZS.js +0 -2
  65. package/dist/chunks/chunk-C6PIPNZS.js.map +0 -7
  66. package/dist/chunks/chunk-IVUTPSHP.js +0 -2
  67. package/dist/chunks/chunk-IVUTPSHP.js.map +0 -7
  68. package/dist/chunks/chunk-J2UKZSOC.js +0 -2
  69. package/dist/chunks/chunk-J2UKZSOC.js.map +0 -7
  70. package/dist/chunks/chunk-MT25CI4U.js +0 -4
  71. package/dist/chunks/chunk-MT25CI4U.js.map +0 -7
  72. /package/dist/chunks/{GraphTrackSettingsDialog-6KKN5F3W.js.map → GraphTrackSettingsDialog-6STIFKVD.js.map} +0 -0
  73. /package/dist/chunks/{chunk-N7EFSGPU.js.map → chunk-254OZVVL.js.map} +0 -0
package/README.md CHANGED
@@ -1,31 +1,21 @@
1
1
  # jbrowse-plugin-graphgenomeviewer
2
2
 
3
- A JBrowse 2 plugin that draws a pangenome graph (GFA / rGFA, or a gbz-base
4
- database) as a track of a linear genome view, and as a **GraphGenomeView** of
5
- its own for a whole file.
3
+ Pangenome graphs in JBrowse 2.
6
4
 
7
5
  ![KIV-2, force-directed, with its bubbles marked](img/force_kiv2.png)
8
6
 
9
- The LPA KIV-2 window of the HPRC release 2 graph: the GRCh38 backbone runs left
10
- to right, and the kringle repeat array forms the loops in the middle.
7
+ ![Tube maps, and a tube map track under a linear view](img/tube_map.png)
11
8
 
12
- ## Core ideas
13
-
14
- - **Six layouts, one graph.** Force-directed (Bandage's OGDF FMMM, compiled to
15
- wasm) shows the graph's shape; the variant map, ordered, anchored, sample-row
16
- and walk-row layouts put it on reference coordinates so it lines up under a
17
- linear view.
18
- - **Bubbles are the unit.** The plugin reads `gfatools bubble` output beside an
19
- rGFA index, or derives bubbles from the graph itself, then marks them and
20
- opens any one level by level.
21
- - **Haplotypes as walks.** Over gbz-base a node draws thicker the more
22
- haplotypes carry it, and picking one walk lifts its route out of the drawing
23
- with its length against the reference.
24
-
25
- ![HG00133's walk lifted out of the KIV-2 cut](img/force_kiv2_walk.png)
9
+ - Eight layouts: force-directed (Bandage FMMM), variant map, ordered, anchored,
10
+ sample rows, walk rows, and sequenceTubeMap's tube map on its own axis or the
11
+ reference's
12
+ - Bubbles from `gfatools bubble` or the graph itself, opened level by level
13
+ - gbz-base haplotypes as walks: carriage as node thickness, one walk lifted out
26
14
 
27
15
  ## Usage
28
16
 
17
+ Needs JBrowse 5.0.0-beta.9 or later.
18
+
29
19
  ```json
30
20
  {
31
21
  "plugins": [
@@ -37,15 +27,14 @@ to right, and the kringle repeat array forms the loops in the middle.
37
27
  }
38
28
  ```
39
29
 
40
- The plugin needs a JBrowse host of 5.0.0-beta.9 or later. **File → Open track**
41
- takes a `.segs.bed.gz` url from `build_rgfa_tabix.sh` and opens it as a graph
42
- track with no config. A hand-written track needs only the adapter; a
43
- `FeatureTrack` over an rGFA opens as `LinearGraphDisplay` unless its config
44
- lists `displays`:
30
+ - **File → Open track** opens an rGFA index (`.segs.bed.gz` from
31
+ `build_rgfa_tabix.sh`) or a gbz-base database (`.gbz.db`) as a `GraphTrack`
32
+ - **Add → Graph genome view** opens a whole GFA file
33
+ - A hand-written track needs only the adapter:
45
34
 
46
35
  ```json
47
36
  {
48
- "type": "FeatureTrack",
37
+ "type": "GraphTrack",
49
38
  "trackId": "hprc_graph",
50
39
  "name": "HPRC release 2 graph",
51
40
  "assemblyNames": ["hg38"],
@@ -60,27 +49,21 @@ lists `displays`:
60
49
  }
61
50
  ```
62
51
 
63
- The display cuts the visible window plus one window-width each side, up to 5 Mb.
64
- Past `aboveBpPerPx` it cuts the optional `coarse` tier instead, one node per
65
- bubble with no size cap, built by `build_bubble_tier.sh` in jbrowse-components.
66
- Layouts on reference bp pan and zoom with the view; the force-directed and
67
- ordered layouts fit the track and zoom from its menu. The track menu picks the
68
- layout, colour and walk, and switches to the segments lane, one block per
69
- segment.
70
-
71
- **Add → Graph genome view** opens a whole GFA file in its own view.
52
+ - The track menu picks layout, colour and walk, and switches to the segments
53
+ lane or, for gbz-base, the haplotype lanes
54
+ - Cuts the window plus a window each side, up to 5 Mb; past `aboveBpPerPx`, the
55
+ `coarse` tier (`build_bubble_tier.sh` in jbrowse-components)
56
+ - gbz-base swaps in `{ "type": "GbzBaseSyntenyAdapter", "uri": "….gbz.db" }`; an
57
+ `hg38` or `hs1` track finds the graph's GRCh38 or CHM13 reference sample, and
58
+ `assemblyNameToPanSN` covers other names
72
59
 
73
60
  ## Docs
74
61
 
75
- - [docs/layouts.md](docs/layouts.md) — every layout, bubbles, walks, genes on
76
- the graph, and the demonstration loci
77
- - [docs/developing.md](docs/developing.md) — dev server, building, the Bandage
78
- engine, testing and `host-compat`
79
- - [docs/layout-experiments.md](docs/layout-experiments.md) — all six loci in
80
- every layout, current and proposed
62
+ - [docs/layouts.md](docs/layouts.md) — layouts, bubbles, walks, genes, loci
63
+ - [docs/developing.md](docs/developing.md) — building, testing, `host-compat`
64
+ - [docs/layout-experiments.md](docs/layout-experiments.md) — every locus in
65
+ every layout
81
66
 
82
67
  ## License
83
68
 
84
- GPL-3.0-or-later, because the force-directed layout runs a wasm build of
85
- Bandage's FMMM layout from [OGDF](https://ogdf.github.io/), and both are GPL.
86
- JBrowse stays Apache-2.0, since configs load this plugin separately at runtime.
69
+ GPL-3.0-or-later (the wasm FMMM engine is OGDF, GPL).
@@ -0,0 +1,2 @@
1
+ import{a as F,b as T,e as y}from"./chunk-JVMMNMQG.js";import"./chunk-D7XFR2IV.js";import{a as N}from"./chunk-J4OLMLS5.js";import{a as W}from"./chunk-FCWXYIFC.js";import{a as C,b as B,c as H,d as _,e as O}from"./chunk-XEJ47DLD.js";import{a as w,b as t}from"./chunk-FY3BTKY4.js";var S=w((q,L)=>{L.exports=JBrowseExports["@jbrowse/core/util/tss-react"]});var s=t(O(),1),i=t(_(),1),l=t(N(),1),A=t(S(),1),R=t(W(),1),e=t(H(),1),x=t(B(),1);var o=t(C(),1),j=(0,A.makeStyles)()(n=>({paper:{margin:n.spacing(),padding:n.spacing()},field:{marginTop:n.spacing(2)},submit:{marginTop:25,marginBottom:100,display:"block"}})),D=["RgfaTabixAdapter","MinigraphBubbleAdapter"],J=(0,x.observer)(function({model:r}){let{classes:c}=j(),h=(0,l.getSession)(r),b=(0,R.getRoot)(r),[m,G]=(0,s.useState)("RgfaTabixAdapter"),[p,v]=(0,s.useState)(),[g,P]=(0,s.useState)(),[u,I]=(0,s.useState)(""),[d,M]=(0,s.useState)("Pangenome graph"),[f,k]=(0,s.useState)();function E(){if(!(!p||!r.assembly))try{k(void 0);let a=d.trim();(0,l.addTrackFromWidget)({model:r,session:h,conf:y({choice:m,loc:p,indexLoc:g,assembly:r.assembly,sample:u,trackId:(0,l.makeTrackId)({name:a}),name:a})})}catch(a){k(a)}}return(0,o.jsxs)(e.Paper,{className:c.paper,children:[f?(0,o.jsx)(i.ErrorMessage,{error:f}):null,(0,o.jsxs)(e.FormControl,{children:[(0,o.jsx)(e.FormLabel,{children:"File type"}),(0,o.jsx)(e.RadioGroup,{value:m,onChange:a=>{G(a.target.value)},children:D.map(a=>(0,o.jsx)(e.FormControlLabel,{value:a,control:(0,o.jsx)(e.Radio,{}),label:F[a]},a))})]}),(0,o.jsx)(i.FileSelector,{location:p,name:T[m],rootModel:b,setLocation:v}),(0,o.jsx)(i.FileSelector,{location:g,name:"Path to tabix index (optional; the sibling .tbi is assumed, a .csi is recognised by name)",rootModel:b,setLocation:P}),(0,o.jsx)(e.TextField,{className:c.field,value:u,onChange:a=>{I(a.target.value)},label:"Sample name in the graph",slotProps:{htmlInput:{"data-testid":"graph-sample-input"}},helperText:"Optional. The PanSN prefix the graph gives this assembly, e.g. GRCh38 for HPRC's GRCh38#0#chr1; leave blank when the graph's stable names are bare",placeholder:"GRCh38",fullWidth:!0}),(0,o.jsx)(e.TextField,{className:c.field,value:d,helperText:"Track name",slotProps:{htmlInput:{"data-testid":"graph-track-name-input"}},onChange:a=>{M(a.target.value)}}),(0,o.jsx)(i.AssemblySelector,{session:h,helperText:"Select assembly to add track to",selected:r.assembly,onChange:a=>{r.setAssembly(a)},fullWidth:!0}),(0,o.jsx)(e.Button,{variant:"contained",className:c.submit,disabled:!p||!d.trim()||!r.assembly,onClick:E,children:"Submit"})]})}),K=J;export{K as default};
2
+ //# sourceMappingURL=AddTrackWorkflow-LRRSAVSX.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["global-externals:@jbrowse/core/util/tss-react", "../../src/GraphAddTrackWorkflow/AddTrackWorkflow.tsx"],
4
4
  "sourcesContent": ["module.exports = JBrowseExports[\"@jbrowse/core/util/tss-react\"];", "import { useState } from 'react'\n\nimport { AssemblySelector, ErrorMessage, FileSelector } from '@jbrowse/core/ui'\nimport { addTrackFromWidget, getSession, makeTrackId } from '@jbrowse/core/util'\nimport { makeStyles } from '@jbrowse/core/util/tss-react'\nimport { getRoot } from '@jbrowse/mobx-state-tree'\nimport {\n Button,\n FormControl,\n FormControlLabel,\n FormLabel,\n Paper,\n Radio,\n RadioGroup,\n TextField,\n} from '@mui/material'\nimport { observer } from 'mobx-react'\n\nimport {\n GRAPH_FILE_FIELDS,\n GRAPH_FILE_LABELS,\n buildTrackConfig,\n} from './buildTrackConfig'\n\nimport type { GraphFileChoice } from './buildTrackConfig'\nimport type {\n AbstractRootModel,\n AddTrackWorkflowModel,\n FileLocation,\n} from '@jbrowse/core/util'\n\nconst useStyles = makeStyles()(theme => ({\n paper: {\n margin: theme.spacing(),\n padding: theme.spacing(),\n },\n field: {\n marginTop: theme.spacing(2),\n },\n submit: {\n marginTop: 25,\n marginBottom: 100,\n display: 'block',\n },\n}))\n\nconst CHOICES: GraphFileChoice[] = [\n 'RgfaTabixAdapter',\n 'MinigraphBubbleAdapter',\n]\n\nconst GraphAddTrackWidget = observer(function GraphAddTrackWidget({\n model,\n}: {\n model: AddTrackWorkflowModel\n}) {\n const { classes } = useStyles()\n const session = getSession(model)\n const rootModel = getRoot<AbstractRootModel>(model)\n const [choice, setChoice] = useState<GraphFileChoice>('RgfaTabixAdapter')\n const [loc, setLoc] = useState<FileLocation>()\n const [indexLoc, setIndexLoc] = useState<FileLocation>()\n const [sample, setSample] = useState('')\n const [trackName, setTrackName] = useState('Pangenome graph')\n const [error, setError] = useState<unknown>()\n\n function handleSubmit() {\n if (!loc || !model.assembly) {\n return\n }\n try {\n setError(undefined)\n const name = trackName.trim()\n addTrackFromWidget({\n model,\n session,\n conf: buildTrackConfig({\n choice,\n loc,\n indexLoc,\n assembly: model.assembly,\n sample,\n trackId: makeTrackId({ name }),\n name,\n }),\n })\n } catch (e) {\n setError(e)\n }\n }\n\n return (\n <Paper className={classes.paper}>\n {error ? <ErrorMessage error={error} /> : null}\n <FormControl>\n <FormLabel>File type</FormLabel>\n <RadioGroup\n value={choice}\n onChange={event => {\n setChoice(event.target.value as GraphFileChoice)\n }}\n >\n {CHOICES.map(option => (\n <FormControlLabel\n key={option}\n value={option}\n control={<Radio />}\n label={GRAPH_FILE_LABELS[option]}\n />\n ))}\n </RadioGroup>\n </FormControl>\n <FileSelector\n location={loc}\n name={GRAPH_FILE_FIELDS[choice]}\n rootModel={rootModel}\n setLocation={setLoc}\n />\n <FileSelector\n location={indexLoc}\n name=\"Path to tabix index (optional; the sibling .tbi is assumed, a .csi is recognised by name)\"\n rootModel={rootModel}\n setLocation={setIndexLoc}\n />\n <TextField\n className={classes.field}\n value={sample}\n onChange={event => {\n setSample(event.target.value)\n }}\n label=\"Sample name in the graph\"\n slotProps={{ htmlInput: { 'data-testid': 'graph-sample-input' } }}\n helperText=\"Optional. The PanSN prefix the graph gives this assembly, e.g. GRCh38 for HPRC's GRCh38#0#chr1; leave blank when the graph's stable names are bare\"\n placeholder=\"GRCh38\"\n fullWidth\n />\n <TextField\n className={classes.field}\n value={trackName}\n helperText=\"Track name\"\n slotProps={{ htmlInput: { 'data-testid': 'graph-track-name-input' } }}\n onChange={event => {\n setTrackName(event.target.value)\n }}\n />\n <AssemblySelector\n session={session}\n helperText=\"Select assembly to add track to\"\n selected={model.assembly}\n onChange={arg => {\n model.setAssembly(arg)\n }}\n fullWidth\n />\n <Button\n variant=\"contained\"\n className={classes.submit}\n disabled={!loc || !trackName.trim() || !model.assembly}\n onClick={handleSubmit}\n >\n Submit\n </Button>\n </Paper>\n )\n})\n\nexport default GraphAddTrackWidget\n"],
5
- "mappings": "oPAAA,IAAAA,EAAAC,EAAA,CAAAC,EAAAC,IAAA,CAAAA,EAAO,QAAU,eAAe,8BAA8B,ICA9D,IAAAC,EAAyB,SAEzBC,EAA6D,SAC7DC,EAA4D,SAC5DC,EAA2B,SAC3BC,EAAwB,SACxBC,EASO,SACPC,EAAyB,SA6EV,IAAAC,EAAA,SA9DTC,KAAY,cAAW,EAAEC,IAAU,CACvC,MAAO,CACL,OAAQA,EAAM,QAAQ,EACtB,QAASA,EAAM,QAAQ,CACzB,EACA,MAAO,CACL,UAAWA,EAAM,QAAQ,CAAC,CAC5B,EACA,OAAQ,CACN,UAAW,GACX,aAAc,IACd,QAAS,OACX,CACF,EAAE,EAEIC,EAA6B,CACjC,mBACA,wBACF,EAEMC,KAAsB,YAAS,SAA6B,CAChE,MAAAC,CACF,EAEG,CACD,GAAM,CAAE,QAAAC,CAAQ,EAAIL,EAAU,EACxBM,KAAU,cAAWF,CAAK,EAC1BG,KAAY,WAA2BH,CAAK,EAC5C,CAACI,EAAQC,CAAS,KAAI,YAA0B,kBAAkB,EAClE,CAACC,EAAKC,CAAM,KAAI,YAAuB,EACvC,CAACC,EAAUC,CAAW,KAAI,YAAuB,EACjD,CAACC,EAAQC,CAAS,KAAI,YAAS,EAAE,EACjC,CAACC,EAAWC,CAAY,KAAI,YAAS,iBAAiB,EACtD,CAACC,EAAOC,CAAQ,KAAI,YAAkB,EAE5C,SAASC,GAAe,CACtB,GAAI,GAACV,GAAO,CAACN,EAAM,UAGnB,GAAI,CACFe,EAAS,MAAS,EAClB,IAAME,EAAOL,EAAU,KAAK,KAC5B,sBAAmB,CACjB,MAAAZ,EACA,QAAAE,EACA,KAAMgB,EAAiB,CACrB,OAAAd,EACA,IAAAE,EACA,SAAAE,EACA,SAAUR,EAAM,SAChB,OAAAU,EACA,WAAS,eAAY,CAAE,KAAAO,CAAK,CAAC,EAC7B,KAAAA,CACF,CAAC,CACH,CAAC,CACH,OAASE,EAAG,CACVJ,EAASI,CAAC,CACZ,CACF,CAEA,SACE,QAAC,SAAM,UAAWlB,EAAQ,MACvB,UAAAa,KAAQ,OAAC,gBAAa,MAAOA,EAAO,EAAK,QAC1C,QAAC,eACC,oBAAC,aAAU,qBAAS,KACpB,OAAC,cACC,MAAOV,EACP,SAAUgB,GAAS,CACjBf,EAAUe,EAAM,OAAO,KAAwB,CACjD,EAEC,SAAAtB,EAAQ,IAAIuB,MACX,OAAC,oBAEC,MAAOA,EACP,WAAS,OAAC,UAAM,EAChB,MAAOC,EAAkBD,CAAM,GAH1BA,CAIP,CACD,EACH,GACF,KACA,OAAC,gBACC,SAAUf,EACV,KAAMiB,EAAkBnB,CAAM,EAC9B,UAAWD,EACX,YAAaI,EACf,KACA,OAAC,gBACC,SAAUC,EACV,KAAK,4FACL,UAAWL,EACX,YAAaM,EACf,KACA,OAAC,aACC,UAAWR,EAAQ,MACnB,MAAOS,EACP,SAAUU,GAAS,CACjBT,EAAUS,EAAM,OAAO,KAAK,CAC9B,EACA,MAAM,2BACN,UAAW,CAAE,UAAW,CAAE,cAAe,oBAAqB,CAAE,EAChE,WAAW,qJACX,YAAY,SACZ,UAAS,GACX,KACA,OAAC,aACC,UAAWnB,EAAQ,MACnB,MAAOW,EACP,WAAW,aACX,UAAW,CAAE,UAAW,CAAE,cAAe,wBAAyB,CAAE,EACpE,SAAUQ,GAAS,CACjBP,EAAaO,EAAM,OAAO,KAAK,CACjC,EACF,KACA,OAAC,oBACC,QAASlB,EACT,WAAW,kCACX,SAAUF,EAAM,SAChB,SAAUwB,GAAO,CACfxB,EAAM,YAAYwB,CAAG,CACvB,EACA,UAAS,GACX,KACA,OAAC,UACC,QAAQ,YACR,UAAWvB,EAAQ,OACnB,SAAU,CAACK,GAAO,CAACM,EAAU,KAAK,GAAK,CAACZ,EAAM,SAC9C,QAASgB,EACV,kBAED,GACF,CAEJ,CAAC,EAEMS,EAAQ1B",
5
+ "mappings": "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",
6
6
  "names": ["require_tss_react", "__commonJSMin", "exports", "module", "import_react", "import_ui", "import_util", "import_tss_react", "import_mobx_state_tree", "import_material", "import_mobx_react", "import_jsx_runtime", "useStyles", "theme", "CHOICES", "GraphAddTrackWidget", "model", "classes", "session", "rootModel", "choice", "setChoice", "loc", "setLoc", "indexLoc", "setIndexLoc", "sample", "setSample", "trackName", "setTrackName", "error", "setError", "handleSubmit", "name", "buildTrackConfig", "e", "event", "option", "GRAPH_FILE_LABELS", "GRAPH_FILE_FIELDS", "arg", "AddTrackWorkflow_default"]
7
7
  }