Mercurial > repos > fubar > jbrowse2
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":""}