view x/static/js/4806.7e497d7a.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/4806.7e497d7a.chunk.js","mappings":"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","sources":["../../../plugins/alignments/src/LinearPileupDisplay/components/GroupByDialog.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\nimport { observer } from 'mobx-react'\nimport {\n  Button,\n  Checkbox,\n  DialogActions,\n  DialogContent,\n  FormControlLabel,\n  TextField,\n  Typography,\n} from '@mui/material'\nimport { Dialog, ErrorMessage, LoadingEllipses } from '@jbrowse/core/ui'\nimport { getSnapshot, IAnyStateTreeNode } from 'mobx-state-tree'\nimport {\n  getContainingTrack,\n  getContainingView,\n  getSession,\n  useDebounce,\n} from '@jbrowse/core/util'\nimport { AnyConfigurationModel } from '@jbrowse/core/configuration'\nimport { LinearGenomeViewModel } from '@jbrowse/plugin-linear-genome-view'\n\n// locals\nimport { getUniqueTagValues } from '../../shared'\nimport { LinearAlignmentsDisplayModel } from '../../LinearAlignmentsDisplay/models/model'\n\nfunction clone(c: unknown) {\n  return JSON.parse(JSON.stringify(c))\n}\n\nconst GroupByTagDialog = observer(function (props: {\n  model: {\n    adapterConfig: AnyConfigurationModel\n    configuration: AnyConfigurationModel\n  } & IAnyStateTreeNode\n  handleClose: () => void\n}) {\n  const { model, handleClose } = props\n  const [tag, setTag] = useState('')\n  const [tagSet, setTagSet] = useState<string[]>()\n  const [loading, setLoading] = useState(false)\n  const [error, setError] = useState<unknown>()\n  const [includeUndefined, setIncludeUndefined] = useState(true)\n\n  const validTag = /^[A-Za-z][A-Za-z0-9]$/.exec(tag)\n  const isInvalid = tag.length === 2 && !validTag\n  const debouncedTag = useDebounce(tag, 1000)\n  useEffect(() => {\n    // eslint-disable-next-line @typescript-eslint/no-floating-promises\n    ;(async () => {\n      try {\n        if (!isInvalid) {\n          setError(undefined)\n          setLoading(true)\n          const vals = await getUniqueTagValues({\n            self: model,\n            tag: debouncedTag,\n            blocks: (getContainingView(model) as LinearGenomeViewModel)\n              .staticBlocks,\n          })\n          setTagSet(vals)\n        }\n      } catch (e) {\n        console.error(e)\n        setError(e)\n      } finally {\n        setLoading(false)\n      }\n    })()\n  }, [model, isInvalid, debouncedTag])\n  return (\n    <Dialog open onClose={handleClose} title=\"Group by tag\">\n      <DialogContent>\n        <Typography>\n          Set the tag to group by. NOTE: this will make a set of fully\n          functional subtracks with the filter by by default set to the values\n          of the tag that are visible in the current view\n        </Typography>\n        <Typography color=\"textSecondary\">\n          Examples: HP for haplotype, RG for read group, etc.\n        </Typography>\n\n        <FormControlLabel\n          control={\n            <Checkbox\n              checked={includeUndefined}\n              onChange={() => {\n                setIncludeUndefined(!includeUndefined)\n              }}\n            />\n          }\n          label=\"Make a new subtrack for undefined values of tag as well?\"\n        />\n        <TextField\n          value={tag}\n          onChange={event => {\n            setTag(event.target.value)\n          }}\n          placeholder=\"Enter tag name\"\n          inputProps={{\n            maxLength: 2,\n            'data-testid': 'group-tag-name-input',\n          }}\n          error={isInvalid}\n          helperText={isInvalid ? 'Not a valid tag' : ''}\n          autoComplete=\"off\"\n          data-testid=\"group-tag-name\"\n        />\n        {error ? (\n          <ErrorMessage error={error} />\n        ) : loading ? (\n          <LoadingEllipses title=\"Loading unique tags\" />\n        ) : tagSet ? (\n          <div>\n            <div>Found unique {tag} values:</div>\n            <div>{tagSet.join(', ')}</div>\n          </div>\n        ) : null}\n      </DialogContent>\n      <DialogActions>\n        <Button\n          variant=\"contained\"\n          color=\"primary\"\n          type=\"submit\"\n          disabled={!tagSet}\n          autoFocus\n          onClick={() => {\n            const track = getContainingTrack(model)\n            const trackConf = clone(getSnapshot(track.configuration))\n            const session = getSession(model)\n            if (tagSet) {\n              const ret = [...tagSet] as (string | undefined)[]\n              if (includeUndefined) {\n                ret.push(undefined)\n              }\n              for (const tagValue of ret) {\n                // @ts-expect-error\n                const newTrackConf = session.addTrackConf({\n                  ...trackConf,\n                  trackId: `${trackConf.trackId}-${tag}:${tagValue}-${+Date.now()}-sessionTrack`,\n                  name: `${trackConf.name} ${tag}:${tagValue}`,\n                  displays: undefined,\n                })\n                const view = getContainingView(model) as LinearGenomeViewModel\n                const t = view.showTrack(newTrackConf.trackId)\n                const d = t.displays[0] as LinearAlignmentsDisplayModel\n                d.setFilterBy({\n                  flagInclude: 0,\n                  flagExclude: 1540,\n                  tagFilter: {\n                    tag,\n                    value: tagValue,\n                  },\n                })\n              }\n            }\n            handleClose()\n          }}\n        >\n          Submit\n        </Button>\n        <Button\n          variant=\"contained\"\n          color=\"secondary\"\n          onClick={() => {\n            handleClose()\n          }}\n        >\n          Cancel\n        </Button>\n      </DialogActions>\n    </Dialog>\n  )\n})\n\nexport default GroupByTagDialog\n"],"names":["observer","props","model","handleClose","tag","setTag","useState","tagSet","setTagSet","loading","setLoading","error","setError","includeUndefined","setIncludeUndefined","validTag","exec","isInvalid","length","debouncedTag","useDebounce","useEffect","undefined","vals","getUniqueTagValues","self","blocks","getContainingView","staticBlocks","e","console","React","Dialog","open","onClose","title","DialogContent","Typography","color","FormControlLabel","control","Checkbox","checked","onChange","label","TextField","value","event","target","placeholder","inputProps","maxLength","helperText","autoComplete","ErrorMessage","LoadingEllipses","join","DialogActions","Button","variant","type","disabled","autoFocus","onClick","track","getContainingTrack","trackConf","c","getSnapshot","configuration","JSON","parse","stringify","session","getSession","ret","push","tagValue","newTrackConf","addTrackConf","trackId","Date","now","name","displays","showTrack","setFilterBy","flagInclude","flagExclude","tagFilter"],"sourceRoot":""}