view x/static/js/8704.ae4808df.chunk.js.map @ 125:49f3d3878413 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 5ea1f9c1eef1de76232e69aa6d34cda77d90d566
author fubar
date Sat, 05 Oct 2024 23:58:05 +0000
parents
children
line wrap: on
line source

{"version":3,"file":"static/js/8704.ae4808df.chunk.js","mappings":"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","sources":["../../../plugins/data-management/src/AddTrackWidget/components/TextIndexingConfig.tsx","../../../plugins/data-management/src/AddTrackWidget/components/TrackTypeSelector.tsx","../../../plugins/data-management/src/AddTrackWidget/components/TrackAdapterSelector.tsx","../../../plugins/data-management/src/AddTrackWidget/components/ConfirmTrack.tsx","../../../plugins/data-management/src/AddTrackWidget/components/TrackSourceSelect.tsx","../../../plugins/data-management/src/AddTrackWidget/components/DefaultAddTrackWorkflow.tsx","../../../plugins/data-management/src/AddTrackWidget/components/PasteConfigWorkflow.tsx","../../../plugins/data-management/src/AddTrackWidget/components/AddTrackWidget.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\nimport {\n  Card,\n  CardContent,\n  IconButton,\n  InputLabel,\n  InputAdornment,\n  List,\n  ListItem,\n  Paper,\n  TextField,\n} from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\nimport { observer } from 'mobx-react'\n\n// icons\nimport DeleteIcon from '@mui/icons-material/Delete'\nimport AddIcon from '@mui/icons-material/Add'\n\n// locals\nimport { AddTrackModel } from '../model'\n\nconst useStyles = makeStyles()(theme => ({\n  paper: {\n    display: 'flex',\n    flexDirection: 'column',\n    padding: theme.spacing(1),\n  },\n\n  card: {\n    marginTop: theme.spacing(1),\n  },\n}))\n\nconst TextIndexingConfig = observer(function ({\n  model,\n}: {\n  model: AddTrackModel\n}) {\n  const { classes } = useStyles()\n  const [value1, setValue1] = useState('')\n  const [value2, setValue2] = useState('')\n  const [attributes, setAttributes] = useState(['Name', 'ID'])\n  const [exclude, setExclude] = useState(['CDS', 'exon'])\n  const sections = [\n    {\n      label: 'Indexing attributes',\n      values: attributes,\n    },\n    {\n      label: 'Feature types to exclude',\n      values: exclude,\n    },\n  ]\n  useEffect(() => {\n    model.setTextIndexingConf({ attributes, exclude })\n  }, [model, attributes, exclude])\n\n  return (\n    <Paper className={classes.paper}>\n      <InputLabel>Indexing configuration</InputLabel>\n      {sections.map((section, index) => (\n        <Card raised key={section.label} className={classes.card}>\n          <CardContent>\n            <InputLabel>{section.label}</InputLabel>\n            <List disablePadding>\n              {section.values.map((val, idx) => (\n                /* biome-ignore lint/suspicious/noArrayIndexKey: */\n                <ListItem key={`${val}-${idx}`} disableGutters>\n                  <TextField\n                    value={val}\n                    InputProps={{\n                      endAdornment: (\n                        <InputAdornment position=\"end\">\n                          <IconButton\n                            onClick={() => {\n                              const newAttr = section.values.filter(\n                                (_, i) => i !== idx,\n                              )\n                              if (index === 0) {\n                                setAttributes(newAttr)\n                              } else {\n                                setExclude(newAttr)\n                              }\n                            }}\n                          >\n                            <DeleteIcon />\n                          </IconButton>\n                        </InputAdornment>\n                      ),\n                    }}\n                  />\n                </ListItem>\n              ))}\n              <ListItem disableGutters>\n                <TextField\n                  value={index === 0 ? value1 : value2}\n                  placeholder=\"add new\"\n                  onChange={event => {\n                    if (index === 0) {\n                      setValue1(event.target.value)\n                    } else {\n                      setValue2(event.target.value)\n                    }\n                  }}\n                  InputProps={{\n                    endAdornment: (\n                      <InputAdornment position=\"end\">\n                        <IconButton\n                          onClick={() => {\n                            if (index === 0) {\n                              setAttributes([...attributes, value1])\n                              setValue1('')\n                            } else {\n                              setExclude([...exclude, value2])\n                              setValue2('')\n                            }\n                          }}\n                          disabled={index === 0 ? value1 === '' : value2 === ''}\n                          data-testid=\"stringArrayAdd-Feat\"\n                        >\n                          <AddIcon />\n                        </IconButton>\n                      </InputAdornment>\n                    ),\n                  }}\n                />\n              </ListItem>\n            </List>\n          </CardContent>\n        </Card>\n      ))}\n    </Paper>\n  )\n})\n\nexport default TextIndexingConfig\n","import React from 'react'\nimport { MenuItem, TextField } from '@mui/material'\nimport { getEnv } from '@jbrowse/core/util'\nimport { observer } from 'mobx-react'\nimport { makeStyles } from 'tss-react/mui'\n\n// locals\nimport { AddTrackModel } from '../model'\n\nconst useStyles = makeStyles()(theme => ({\n  spacing: {\n    marginBottom: theme.spacing(3),\n  },\n}))\n\nconst TrackTypeSelector = observer(({ model }: { model: AddTrackModel }) => {\n  const { classes } = useStyles()\n  const { pluginManager } = getEnv(model)\n  const { trackType } = model\n  const trackTypes = pluginManager.getTrackElements()\n\n  return (\n    <TextField\n      className={classes.spacing}\n      value={trackType}\n      variant=\"outlined\"\n      label=\"Track type\"\n      helperText=\"Select track type\"\n      select\n      fullWidth\n      onChange={event => {\n        model.setTrackType(event.target.value)\n      }}\n      SelectProps={{\n        // @ts-expect-error\n        SelectDisplayProps: { 'data-testid': 'trackTypeSelect' },\n      }}\n    >\n      {trackTypes.map(({ name, displayName }) => (\n        <MenuItem key={name} value={name}>\n          {displayName}\n        </MenuItem>\n      ))}\n    </TextField>\n  )\n})\n\nexport default TrackTypeSelector\n","import React from 'react'\nimport { ListSubheader, MenuItem, TextField } from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\nimport { getEnv } from '@jbrowse/core/util'\nimport { observer } from 'mobx-react'\nimport AdapterType from '@jbrowse/core/pluggableElementTypes/AdapterType'\n\n// locals\nimport { AddTrackModel } from '../model'\n\nconst useStyles = makeStyles()(theme => ({\n  spacing: {\n    marginBottom: theme.spacing(3),\n  },\n}))\n\n// collate adapters into a map with\n// key: category\n// value: array of adapters with that category\nfunction categorizeAdapters(adaptersList: AdapterType[]) {\n  const map = {} as Record<string, AdapterType[]>\n  adaptersList.forEach(adapter => {\n    const key = adapter.adapterMetadata?.category || 'Default'\n    if (!map[key]) {\n      map[key] = []\n    }\n    map[key].push(adapter)\n  })\n  return map\n}\n\nconst TrackAdapterSelector = observer(({ model }: { model: AddTrackModel }) => {\n  const { classes } = useStyles()\n  const { trackAdapter } = model\n  const { pluginManager } = getEnv(model)\n  return (\n    <TextField\n      className={classes.spacing}\n      value={trackAdapter?.type !== 'UNKNOWN' ? trackAdapter?.type : ''}\n      label=\"Adapter type\"\n      variant=\"outlined\"\n      helperText=\"Select an adapter type\"\n      select\n      fullWidth\n      onChange={event => {\n        model.setAdapterHint(event.target.value)\n      }}\n      SelectProps={{\n        // @ts-expect-error\n        SelectDisplayProps: { 'data-testid': 'adapterTypeSelect' },\n      }}\n    >\n      {Object.entries(\n        categorizeAdapters(\n          pluginManager\n            .getAdapterElements()\n            .filter(e => !e.adapterMetadata?.hiddenFromGUI),\n        ),\n      ).map(([key, val]) => {\n        // returning array avoids needing to use a react fragment which\n        // Select/TextField sub-elements disagree with\n        return [\n          <ListSubheader key={key}>{key}</ListSubheader>,\n          val.map(elt => (\n            <MenuItem key={elt.name} value={elt.name}>\n              {elt.displayName}\n            </MenuItem>\n          )),\n        ]\n      })}\n    </TextField>\n  )\n})\n\nexport default TrackAdapterSelector\n","import React, { useEffect, useState } from 'react'\nimport {\n  Checkbox,\n  FormControl,\n  FormControlLabel,\n  Link,\n  TextField,\n  Typography,\n} from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\nimport {\n  isSupportedIndexingAdapter,\n  getSession,\n  isElectron,\n} from '@jbrowse/core/util'\nimport { observer } from 'mobx-react'\nimport { UNKNOWN } from '@jbrowse/core/util/tracks'\nimport { AssemblySelector } from '@jbrowse/core/ui'\n\n// locals\nimport { AddTrackModel } from '../model'\nimport TextIndexingConfig from './TextIndexingConfig'\nimport TrackTypeSelector from './TrackTypeSelector'\nimport TrackAdapterSelector from './TrackAdapterSelector'\n\nconst useStyles = makeStyles()(theme => ({\n  spacing: {\n    marginBottom: theme.spacing(3),\n  },\n}))\n\nfunction StatusMessage({\n  trackAdapter,\n  trackType,\n}: {\n  trackAdapter: { type: string; subadapter?: { type: string } }\n  trackType: string\n}) {\n  const { classes } = useStyles()\n  const { type, subadapter } = trackAdapter\n  return type === 'SNPCoverageAdapter' ? (\n    <Typography className={classes.spacing}>\n      Selected <code>{trackType}</code>. Using adapter <code>{type}</code> with\n      subadapter <code>{subadapter?.type}</code>. Please enter a track name and,\n      if necessary, update the track type.\n    </Typography>\n  ) : (\n    <Typography className={classes.spacing}>\n      Using adapter <code>{type}</code> and guessing track type{' '}\n      <code>{trackType}</code>. Please enter a track name and, if necessary,\n      update the track type.\n    </Typography>\n  )\n}\n\nfunction UnknownAdapterPrompt({ model }: { model: AddTrackModel }) {\n  const { classes } = useStyles()\n  return (\n    <>\n      <Typography className={classes.spacing}>\n        JBrowse was not able to guess the adapter type for this data, but it may\n        be in the list below. If not, you can{' '}\n        <Link\n          href=\"https://github.com/GMOD/jbrowse-components/releases\"\n          target=\"_blank\"\n          rel=\"noopener noreferrer\"\n        >\n          check for new releases\n        </Link>{' '}\n        of JBrowse to see if they support this data type or{' '}\n        <Link\n          href=\"https://github.com/GMOD/jbrowse-components/issues/new\"\n          target=\"_blank\"\n          rel=\"noopener noreferrer\"\n        >\n          file an issue\n        </Link>{' '}\n        and add a feature request for this data type.\n      </Typography>\n      <TrackAdapterSelector model={model} />\n    </>\n  )\n}\n\nconst ConfirmTrack = observer(function ConfirmTrack({\n  model,\n}: {\n  model: AddTrackModel\n}) {\n  const { classes } = useStyles()\n  const [check, setCheck] = useState(true)\n  const session = getSession(model)\n  const {\n    trackName,\n    unsupported,\n    trackAdapter,\n    trackType,\n    warningMessage,\n    adapterHint,\n  } = model\n\n  useEffect(() => {\n    if (adapterHint === '' && trackAdapter) {\n      model.setAdapterHint(trackAdapter.type)\n    }\n  }, [adapterHint, trackAdapter, trackAdapter?.type, model])\n\n  if (unsupported) {\n    return (\n      <Typography className={classes.spacing}>\n        This version of JBrowse cannot display data of this type. It is\n        possible, however, that there is a newer version that can display them.\n        You can{' '}\n        <Link\n          href=\"https://github.com/GMOD/jbrowse-components/releases\"\n          target=\"_blank\"\n          rel=\"noopener noreferrer\"\n        >\n          check for new releases\n        </Link>{' '}\n        of JBrowse or{' '}\n        <Link\n          href=\"https://github.com/GMOD/jbrowse-components/issues/new\"\n          target=\"_blank\"\n          rel=\"noopener noreferrer\"\n        >\n          file an issue\n        </Link>{' '}\n        and add a feature request for this data type.\n      </Typography>\n    )\n  }\n  if (trackAdapter?.type === UNKNOWN) {\n    return <UnknownAdapterPrompt model={model} />\n  }\n\n  if (!trackAdapter?.type) {\n    return <Typography>Could not recognize this data type.</Typography>\n  }\n\n  const supportedForIndexing = isSupportedIndexingAdapter(trackAdapter.type)\n  return (\n    <div>\n      <StatusMessage trackAdapter={trackAdapter} trackType={trackType} />\n      {warningMessage ? (\n        <Typography style={{ color: 'orange' }}>{warningMessage}</Typography>\n      ) : null}\n      <TextField\n        className={classes.spacing}\n        label=\"trackName\"\n        helperText=\"A name for this track\"\n        fullWidth\n        value={trackName}\n        onChange={event => {\n          model.setTrackName(event.target.value)\n        }}\n        inputProps={{ 'data-testid': 'trackNameInput' }}\n      />\n      <TrackAdapterSelector model={model} />\n      <TrackTypeSelector model={model} />\n      <AssemblySelector\n        session={session}\n        helperText=\"Select assembly to add track to\"\n        selected={model.assembly}\n        onChange={asm => {\n          model.setAssembly(asm)\n        }}\n        TextFieldProps={{\n          fullWidth: true,\n          SelectProps: {\n            // @ts-expect-error\n            SelectDisplayProps: { 'data-testid': 'assemblyNameSelect' },\n          },\n        }}\n      />\n      {isElectron && supportedForIndexing && (\n        <FormControl>\n          <FormControlLabel\n            label={'Index track for text searching?'}\n            control={\n              <Checkbox\n                checked={check}\n                onChange={e => {\n                  setCheck(e.target.checked)\n                  model.setTextIndexTrack(e.target.checked)\n                }}\n              />\n            }\n          />\n        </FormControl>\n      )}\n      {isElectron && check && supportedForIndexing ? (\n        <TextIndexingConfig model={model} />\n      ) : null}\n    </div>\n  )\n})\n\nexport default ConfirmTrack\n","import React from 'react'\nimport { FileSelector } from '@jbrowse/core/ui'\nimport { AbstractRootModel } from '@jbrowse/core/util'\nimport { Paper } from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\nimport { getRoot } from 'mobx-state-tree'\nimport { observer } from 'mobx-react'\n\n// locals\nimport { AddTrackModel } from '../model'\n\nconst useStyles = makeStyles()(theme => ({\n  paper: {\n    padding: theme.spacing(2),\n  },\n  spacer: {\n    height: theme.spacing(8),\n  },\n}))\n\nconst TrackSourceSelect = observer(function ({\n  model,\n}: {\n  model: AddTrackModel\n}) {\n  const { classes } = useStyles()\n  const rootModel = getRoot<AbstractRootModel>(model)\n\n  return (\n    <Paper className={classes.paper}>\n      <FileSelector\n        name=\"Main file\"\n        description=\"\"\n        location={model.trackData}\n        setLocation={model.setTrackData}\n        setName={model.setTrackName}\n        rootModel={rootModel}\n      />\n      <div className={classes.spacer} />\n      <FileSelector\n        name=\"Index file\"\n        description=\"(Optional) The URL of the index file is automatically inferred from the URL of the main file if it is not supplied.\"\n        location={model.indexTrackData}\n        setLocation={model.setIndexTrackData}\n        setName={model.setTrackName}\n        rootModel={rootModel}\n      />\n    </Paper>\n  )\n})\n\nexport default TrackSourceSelect\n","import React, { useState } from 'react'\nimport {\n  Alert,\n  Button,\n  Step,\n  StepContent,\n  StepLabel,\n  Stepper,\n  Typography,\n} from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\nimport { getRoot } from 'mobx-state-tree'\n\nimport {\n  getSession,\n  isElectron,\n  isSessionModelWithWidgets,\n  isSessionWithAddTracks,\n  isSupportedIndexingAdapter,\n} from '@jbrowse/core/util'\nimport { getConf } from '@jbrowse/core/configuration'\nimport { observer } from 'mobx-react'\n\n// locals\nimport ConfirmTrack from './ConfirmTrack'\nimport TrackSourceSelect from './TrackSourceSelect'\nimport { AddTrackModel } from '../model'\n\nconst useStyles = makeStyles()(theme => ({\n  root: {\n    marginTop: theme.spacing(1),\n  },\n  stepper: {\n    backgroundColor: theme.palette.background.default,\n  },\n  button: {\n    marginRight: theme.spacing(1),\n  },\n  actionsContainer: {\n    marginTop: theme.spacing(10),\n    marginBottom: theme.spacing(2),\n  },\n  alertContainer: {\n    padding: `${theme.spacing(2)}px 0px ${theme.spacing(2)}px 0px`,\n  },\n}))\n\nconst steps = ['Enter track data', 'Confirm track type']\n\nconst DefaultAddTrackWorkflow = observer(function ({\n  model,\n}: {\n  model: AddTrackModel\n}) {\n  const [activeStep, setActiveStep] = useState(0)\n  const { classes } = useStyles()\n\n  const { jobsManager } = getRoot<any>(model)\n  const session = getSession(model)\n  const {\n    assembly,\n    trackAdapter,\n    trackData,\n    trackName,\n    trackType,\n    textIndexTrack,\n    textIndexingConf,\n  } = model\n  const [trackErrorMessage, setTrackErrorMessage] = useState<string>()\n\n  function getStepContent(step: number) {\n    switch (step) {\n      case 0:\n        return <TrackSourceSelect model={model} />\n      case 1:\n        return <ConfirmTrack model={model} />\n      default:\n        return <Typography>Unknown step</Typography>\n    }\n  }\n\n  async function handleNext() {\n    if (activeStep !== steps.length - 1) {\n      setActiveStep(activeStep + 1)\n      return\n    }\n\n    const trackId = [\n      `${trackName.toLowerCase().replaceAll(' ', '_')}-${Date.now()}`,\n      session.adminMode ? '' : '-sessionTrack',\n    ].join('')\n\n    const assemblyInstance = session.assemblyManager.get(assembly)\n    if (!isSessionWithAddTracks(session)) {\n      setTrackErrorMessage('Unable to add tracks to this model')\n      return\n    }\n    if (assemblyInstance && trackAdapter && trackAdapter.type !== 'UNKNOWN') {\n      session.addTrackConf({\n        trackId,\n        type: trackType,\n        name: trackName,\n        assemblyNames: [assembly],\n        adapter: {\n          ...trackAdapter,\n          sequenceAdapter: getConf(assemblyInstance, ['sequence', 'adapter']),\n        },\n      })\n      model.view.showTrack?.(trackId)\n      if (\n        isElectron &&\n        textIndexTrack &&\n        isSupportedIndexingAdapter(trackAdapter.type)\n      ) {\n        const attr = textIndexingConf || {\n          attributes: ['Name', 'ID'],\n          exclude: ['CDS', 'exon'],\n        }\n        const indexName = `${trackName}-index`\n        const newEntry = {\n          indexingParams: {\n            ...attr,\n            assemblies: [assembly],\n            tracks: [trackId],\n            indexType: 'perTrack',\n            name: indexName,\n            timestamp: new Date().toISOString(),\n          },\n          name: indexName,\n          cancelCallback: () => jobsManager.abortJob(),\n        }\n        jobsManager.queueJob(newEntry)\n      }\n      model.clearData()\n      if (isSessionModelWithWidgets(session)) {\n        session.hideWidget(model)\n      }\n    } else {\n      setTrackErrorMessage(\n        'Failed to add track.\\nThe configuration of this file is not currently supported.',\n      )\n    }\n  }\n\n  function isNextDisabled() {\n    switch (activeStep) {\n      case 0:\n        return !trackData\n      case 1:\n        return !(trackName && trackType && trackAdapter?.type && assembly)\n      default:\n        return true\n    }\n  }\n\n  return (\n    <div className={classes.root}>\n      <Stepper\n        className={classes.stepper}\n        activeStep={activeStep}\n        orientation=\"vertical\"\n      >\n        {steps.map((label, idx) => (\n          <Step key={label}>\n            <StepLabel>{label}</StepLabel>\n            <StepContent>\n              {getStepContent(idx)}\n              <div className={classes.actionsContainer}>\n                <Button\n                  disabled={activeStep === 0}\n                  onClick={() => {\n                    setTrackErrorMessage(undefined)\n                    setActiveStep(activeStep - 1)\n                  }}\n                  className={classes.button}\n                >\n                  Back\n                </Button>\n                <Button\n                  disabled={isNextDisabled()}\n                  variant=\"contained\"\n                  color=\"primary\"\n                  onClick={handleNext}\n                  className={classes.button}\n                  data-testid=\"addTrackNextButton\"\n                >\n                  {activeStep === steps.length - 1 ? 'Add' : 'Next'}\n                </Button>\n              </div>\n              {trackErrorMessage ? (\n                <div className={classes.alertContainer}>\n                  <Alert severity=\"error\">{trackErrorMessage}</Alert>\n                </div>\n              ) : null}\n            </StepContent>\n          </Step>\n        ))}\n      </Stepper>\n    </div>\n  )\n})\nexport default DefaultAddTrackWorkflow\n","import React, { useState } from 'react'\nimport { Button, TextField } from '@mui/material'\nimport { ErrorMessage } from '@jbrowse/core/ui'\nimport { makeStyles } from 'tss-react/mui'\nimport {\n  getSession,\n  isSessionModelWithWidgets,\n  isSessionWithAddTracks,\n} from '@jbrowse/core/util'\nimport { observer } from 'mobx-react'\n\n// locals\nimport { AddTrackModel } from '../model'\n\nconst useStyles = makeStyles()({\n  textbox: {\n    width: '100%',\n  },\n  submit: {\n    marginTop: 25,\n    marginBottom: 100,\n    display: 'block',\n  },\n})\n\nconst PasteConfigAddTrackWorkflow = observer(function ({\n  model,\n}: {\n  model: AddTrackModel\n}) {\n  const { classes } = useStyles()\n  const [val, setVal] = useState('')\n  const [error, setError] = useState<unknown>()\n\n  return (\n    <div>\n      {error ? <ErrorMessage error={error} /> : null}\n      <TextField\n        multiline\n        rows={10}\n        value={val}\n        onChange={event => {\n          setVal(event.target.value)\n        }}\n        placeholder={\n          'Paste track config or array of track configs in JSON format'\n        }\n        variant=\"outlined\"\n        className={classes.textbox}\n      />\n      <Button\n        variant=\"contained\"\n        className={classes.submit}\n        onClick={() => {\n          try {\n            setError(undefined)\n            const session = getSession(model)\n            const conf = JSON.parse(val)\n            const confs = Array.isArray(conf) ? conf : [conf]\n            if (\n              isSessionWithAddTracks(session) &&\n              isSessionModelWithWidgets(session)\n            ) {\n              confs.forEach(c => {\n                session.addTrackConf(c)\n              })\n              confs.forEach(c => model.view.showTrack(c.trackId))\n              model.clearData()\n              session.hideWidget(model)\n            }\n          } catch (e) {\n            console.error(e)\n            setError(e)\n          }\n        }}\n      >\n        Submit\n      </Button>\n    </div>\n  )\n})\nexport default PasteConfigAddTrackWorkflow\n","import React, { useState } from 'react'\nimport { observer } from 'mobx-react'\nimport { FormControl, FormHelperText, Select, MenuItem } from '@mui/material'\nimport { getEnv } from '@jbrowse/core/util'\n\n// locals\nimport { AddTrackModel } from '../model'\nimport DefaultAddTrackWorkflow from './DefaultAddTrackWorkflow'\nimport PasteConfigWorkflow from './PasteConfigWorkflow'\n\nconst AddTrackSelector = observer(function ({\n  model,\n}: {\n  model: AddTrackModel\n}) {\n  const [val, setVal] = useState('Default add track workflow')\n  const { pluginManager } = getEnv(model)\n  const widgets = pluginManager.getAddTrackWorkflowElements()\n  const ComponentMap = {\n    'Default add track workflow': DefaultAddTrackWorkflow,\n    'Add track JSON': PasteConfigWorkflow,\n    ...Object.fromEntries(widgets.map(w => [w.name, w.ReactComponent])),\n  } as Record<string, React.FC<{ model: AddTrackModel }>>\n\n  // make sure the selected value is in the list\n  const val2 = ComponentMap[val] ? val : 'Default add track workflow'\n  const Component = ComponentMap[val2]!\n  return (\n    <>\n      <FormControl>\n        <Select\n          value={val2}\n          onChange={event => {\n            setVal(event.target.value)\n          }}\n        >\n          {Object.keys(ComponentMap).map(e => (\n            <MenuItem key={e} value={e}>\n              {e}\n            </MenuItem>\n          ))}\n        </Select>\n        <FormHelperText>Type of add track workflow</FormHelperText>\n      </FormControl>\n\n      <br />\n      <Component model={model} />\n    </>\n  )\n})\n\nexport default AddTrackSelector\n"],"names":["useStyles","makeStyles","theme","paper","display","flexDirection","padding","spacing","card","marginTop","observer","model","classes","value1","setValue1","useState","value2","setValue2","attributes","setAttributes","exclude","setExclude","sections","label","values","useEffect","setTextIndexingConf","React","Paper","className","InputLabel","map","section","index","Card","raised","key","CardContent","List","disablePadding","val","idx","ListItem","disableGutters","TextField","value","InputProps","endAdornment","InputAdornment","position","IconButton","onClick","newAttr","filter","_","i","DeleteIcon","placeholder","onChange","event","target","disabled","AddIcon","marginBottom","pluginManager","getEnv","trackType","trackTypes","getTrackElements","variant","helperText","select","fullWidth","setTrackType","SelectProps","SelectDisplayProps","name","displayName","MenuItem","trackAdapter","type","setAdapterHint","Object","entries","adaptersList","forEach","adapter","adapterMetadata","category","push","categorizeAdapters","getAdapterElements","e","hiddenFromGUI","ListSubheader","elt","StatusMessage","subadapter","Typography","UnknownAdapterPrompt","Link","href","rel","TrackAdapterSelector","check","setCheck","session","getSession","trackName","unsupported","warningMessage","adapterHint","UNKNOWN","supportedForIndexing","isSupportedIndexingAdapter","style","color","setTrackName","inputProps","TrackTypeSelector","AssemblySelector","selected","assembly","asm","setAssembly","TextFieldProps","isElectron","FormControl","FormControlLabel","control","Checkbox","checked","setTextIndexTrack","TextIndexingConfig","spacer","height","rootModel","getRoot","FileSelector","description","location","trackData","setLocation","setTrackData","setName","indexTrackData","setIndexTrackData","root","stepper","backgroundColor","palette","background","default","button","marginRight","actionsContainer","alertContainer","steps","activeStep","setActiveStep","jobsManager","textIndexTrack","textIndexingConf","trackErrorMessage","setTrackErrorMessage","async","handleNext","length","trackId","toLowerCase","replaceAll","Date","now","adminMode","join","assemblyInstance","assemblyManager","get","isSessionWithAddTracks","addTrackConf","assemblyNames","sequenceAdapter","getConf","view","showTrack","indexName","newEntry","indexingParams","assemblies","tracks","indexType","timestamp","toISOString","cancelCallback","abortJob","queueJob","clearData","isSessionModelWithWidgets","hideWidget","isNextDisabled","Stepper","orientation","Step","StepLabel","StepContent","step","TrackSourceSelect","ConfirmTrack","getStepContent","Button","undefined","Alert","severity","textbox","width","submit","setVal","error","setError","ErrorMessage","multiline","rows","conf","JSON","parse","confs","Array","isArray","c","console","widgets","getAddTrackWorkflowElements","ComponentMap","DefaultAddTrackWorkflow","PasteConfigWorkflow","fromEntries","w","ReactComponent","val2","Component","Select","keys","FormHelperText"],"sourceRoot":""}