view x/static/js/965.8524fdac.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/965.8524fdac.chunk.js","mappings":"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","sources":["../../../packages/product-core/src/ui/FileInfoPanel.tsx","../../../packages/product-core/src/ui/RefNameInfoDialog.tsx","../../../packages/product-core/src/ui/AboutDialogContents.tsx","../../../packages/product-core/src/ui/AboutDialog.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react'\nimport {\n  readConfObject,\n  AnyConfigurationModel,\n} from '@jbrowse/core/configuration'\nimport { getSession } from '@jbrowse/core/util'\nimport {\n  BaseCard,\n  Attributes,\n} from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail'\nimport { ErrorMessage, LoadingEllipses } from '@jbrowse/core/ui'\n\ntype FileInfo = Record<string, unknown> | string\n\nexport default function FileInfoPanel({\n  config,\n}: {\n  config: AnyConfigurationModel\n}) {\n  const [error, setError] = useState<unknown>()\n  const [info, setInfo] = useState<FileInfo>()\n  const session = getSession(config)\n  const { rpcManager } = session\n\n  useEffect(() => {\n    // eslint-disable-next-line @typescript-eslint/no-floating-promises\n    ;(async () => {\n      try {\n        const adapterConfig = readConfObject(config, 'adapter')\n        const result = await rpcManager.call(config.trackId, 'CoreGetInfo', {\n          adapterConfig,\n        })\n        setInfo(result as FileInfo)\n      } catch (e) {\n        console.error(e)\n        setError(e)\n      }\n    })()\n  }, [config, rpcManager])\n\n  const details =\n    typeof info === 'string'\n      ? {\n          header: `<pre>${info\n            .replaceAll('<', '&lt;')\n            .replaceAll('>', '&gt;')}</pre>`,\n        }\n      : info || {}\n\n  return (\n    <BaseCard title=\"File info\">\n      {error ? (\n        <ErrorMessage error={error} />\n      ) : info === undefined ? (\n        <LoadingEllipses message=\"Loading file data\" />\n      ) : (\n        <Attributes attributes={details} />\n      )}\n    </BaseCard>\n  )\n}\n","import React, { useState, useEffect } from 'react'\nimport { Button, DialogContent } from '@mui/material'\nimport {\n  readConfObject,\n  AnyConfigurationModel,\n} from '@jbrowse/core/configuration'\nimport { Dialog, ErrorMessage, LoadingEllipses } from '@jbrowse/core/ui'\nimport { getSession } from '@jbrowse/core/util'\nimport { getConfAssemblyNames } from '@jbrowse/core/util/tracks'\nimport { observer } from 'mobx-react'\nimport { makeStyles } from 'tss-react/mui'\nimport copy from 'copy-to-clipboard'\n\nconst MAX_REF_NAMES = 10_000\n\nconst useStyles = makeStyles()(theme => ({\n  container: {\n    minWidth: 800,\n  },\n  refNames: {\n    maxHeight: 300,\n    overflow: 'auto',\n    flexGrow: 1,\n    background: theme.palette.background.default,\n  },\n}))\n\nconst RefNameInfoDialog = observer(function ({\n  config,\n  onClose,\n}: {\n  config: AnyConfigurationModel\n  onClose: () => void\n}) {\n  const { classes } = useStyles()\n  const [error, setError] = useState<unknown>()\n  const [refNames, setRefNames] = useState<Record<string, string[]>>()\n  const [copied, setCopied] = useState(false)\n  const { rpcManager } = getSession(config)\n\n  useEffect(() => {\n    // eslint-disable-next-line @typescript-eslint/no-floating-promises\n    ;(async () => {\n      try {\n        const map = await Promise.all(\n          [...new Set(getConfAssemblyNames(config))].map(async assemblyName => {\n            const adapterConfig = readConfObject(config, 'adapter')\n            return [\n              assemblyName,\n              (await rpcManager.call(config.trackId, 'CoreGetRefNames', {\n                adapterConfig,\n                // hack for synteny adapters\n                regions: [\n                  {\n                    assemblyName,\n                  },\n                ],\n              })) as string[],\n            ] as const\n          }),\n        )\n        setRefNames(Object.fromEntries(map))\n      } catch (e) {\n        console.error(e)\n        setError(e)\n      }\n    })()\n  }, [config, rpcManager])\n\n  const names = refNames ? Object.entries(refNames) : []\n  const result = names\n    .flatMap(([assemblyName, refNames]) => {\n      return [\n        `--- ${assemblyName} ---`,\n        ...refNames.slice(0, MAX_REF_NAMES),\n        refNames.length > MAX_REF_NAMES\n          ? `\\nToo many refNames to show in browser for ${assemblyName}, use \"Copy ref names\" button to copy to clipboard`\n          : '',\n      ]\n    })\n    .filter(f => !!f)\n    .join('\\n')\n\n  return (\n    <Dialog\n      open\n      title=\"Reference sequence names used in track\"\n      onClose={onClose}\n      maxWidth=\"xl\"\n    >\n      <DialogContent className={classes.container}>\n        {error ? (\n          <ErrorMessage error={error} />\n        ) : refNames === undefined ? (\n          <LoadingEllipses message=\"Loading refNames\" />\n        ) : (\n          <>\n            <Button\n              variant=\"contained\"\n              onClick={() => {\n                copy(\n                  names\n                    .flatMap(([assemblyName, refNames]) => [\n                      `--- ${assemblyName} ---`,\n                      ...refNames,\n                    ])\n                    .filter(f => !!f)\n                    .join('\\n'),\n                )\n                setCopied(true)\n                setTimeout(() => {\n                  setCopied(false)\n                }, 1000)\n              }}\n            >\n              {copied ? 'Copied to clipboard!' : 'Copy ref names'}\n            </Button>\n\n            <pre className={classes.refNames}>{result}</pre>\n          </>\n        )}\n      </DialogContent>\n    </Dialog>\n  )\n})\n\nexport default RefNameInfoDialog\n","import React, { useState } from 'react'\nimport { observer } from 'mobx-react'\nimport clone from 'clone'\nimport copy from 'copy-to-clipboard'\nimport { Button } from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\nimport {\n  getConf,\n  readConfObject,\n  AnyConfigurationModel,\n} from '@jbrowse/core/configuration'\nimport { getSession, getEnv } from '@jbrowse/core/util'\nimport {\n  BaseCard,\n  Attributes,\n} from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail'\nimport FileInfoPanel from './FileInfoPanel'\nimport RefNameInfoDialog from './RefNameInfoDialog'\n\nconst useStyles = makeStyles()({\n  content: {\n    minWidth: 800,\n  },\n  button: {\n    float: 'right',\n  },\n})\n\nfunction removeAttr(obj: Record<string, unknown>, attr: string) {\n  for (const prop in obj) {\n    if (prop === attr) {\n      delete obj[prop]\n    } else if (typeof obj[prop] === 'object') {\n      removeAttr(obj[prop] as Record<string, unknown>, attr)\n    }\n  }\n  return obj\n}\n\nconst AboutDialogContents = observer(function ({\n  config,\n}: {\n  config: AnyConfigurationModel\n}) {\n  const [copied, setCopied] = useState(false)\n  const conf = readConfObject(config)\n  const session = getSession(config)\n  const { classes } = useStyles()\n  const [showRefNames, setShowRefNames] = useState(false)\n\n  const hideUris =\n    getConf(session, ['formatAbout', 'hideUris']) ||\n    readConfObject(config, ['formatAbout', 'hideUris'])\n\n  const { pluginManager } = getEnv(session)\n\n  const confPostExt = pluginManager.evaluateExtensionPoint(\n    'Core-customizeAbout',\n    {\n      config: {\n        ...conf,\n        ...getConf(session, ['formatAbout', 'config'], { config: conf }),\n        ...readConfObject(config, ['formatAbout', 'config'], { config: conf }),\n      },\n    },\n    { session, config },\n  ) as Record<string, unknown>\n\n  const ExtraPanel = pluginManager.evaluateExtensionPoint(\n    'Core-extraAboutPanel',\n    null,\n    { session, config },\n  ) as { name: string; Component: React.FC<any> } | null\n\n  return (\n    <div className={classes.content}>\n      <BaseCard title=\"Configuration\">\n        {!hideUris ? (\n          <span className={classes.button}>\n            <Button\n              variant=\"contained\"\n              color=\"secondary\"\n              onClick={() => {\n                setShowRefNames(true)\n              }}\n            >\n              Show ref names\n            </Button>\n            <Button\n              variant=\"contained\"\n              onClick={() => {\n                const snap = removeAttr(clone(conf), 'baseUri')\n                copy(JSON.stringify(snap, null, 2))\n                setCopied(true)\n                setTimeout(() => {\n                  setCopied(false)\n                }, 1000)\n              }}\n            >\n              {copied ? 'Copied to clipboard!' : 'Copy config'}\n            </Button>\n          </span>\n        ) : null}\n        <Attributes\n          attributes={confPostExt}\n          omit={['displays', 'baseUri', 'refNames', 'formatAbout']}\n          hideUris={hideUris}\n        />\n      </BaseCard>\n      {ExtraPanel ? (\n        <BaseCard title={ExtraPanel.name}>\n          <ExtraPanel.Component config={config} />\n        </BaseCard>\n      ) : null}\n      <FileInfoPanel config={config} />\n      {showRefNames ? (\n        <RefNameInfoDialog\n          config={config}\n          onClose={() => {\n            setShowRefNames(false)\n          }}\n        />\n      ) : null}\n    </div>\n  )\n})\n\nexport default AboutDialogContents\n","import React from 'react'\nimport { AnyConfigurationModel } from '@jbrowse/core/configuration'\nimport Dialog from '@jbrowse/core/ui/Dialog'\nimport { getSession, getEnv } from '@jbrowse/core/util'\nimport { getTrackName } from '@jbrowse/core/util/tracks'\nimport AboutContents from './AboutDialogContents'\n\nexport function AboutDialog({\n  config,\n  handleClose,\n}: {\n  config: AnyConfigurationModel\n  handleClose: () => void\n}) {\n  const session = getSession(config)\n  const trackName = getTrackName(config, session)\n  const { pluginManager } = getEnv(session)\n\n  const AboutComponent = pluginManager.evaluateExtensionPoint(\n    'Core-replaceAbout',\n    AboutContents,\n    { session, config },\n  ) as React.FC<any>\n\n  return (\n    <Dialog open onClose={handleClose} title={trackName} maxWidth=\"xl\">\n      <AboutComponent config={config} />\n    </Dialog>\n  )\n}\n"],"names":["FileInfoPanel","config","error","setError","useState","info","setInfo","session","getSession","rpcManager","useEffect","adapterConfig","readConfObject","result","call","trackId","e","console","details","header","replaceAll","React","BaseCard","title","ErrorMessage","undefined","LoadingEllipses","message","Attributes","attributes","useStyles","makeStyles","theme","container","minWidth","refNames","maxHeight","overflow","flexGrow","background","palette","default","observer","onClose","classes","setRefNames","copied","setCopied","map","Promise","all","Set","getConfAssemblyNames","async","assemblyName","regions","Object","fromEntries","names","entries","flatMap","slice","length","filter","f","join","Dialog","open","maxWidth","DialogContent","className","Button","variant","onClick","copy","setTimeout","content","button","float","removeAttr","obj","attr","prop","conf","showRefNames","setShowRefNames","hideUris","getConf","pluginManager","getEnv","confPostExt","evaluateExtensionPoint","ExtraPanel","color","snap","clone","JSON","stringify","omit","name","Component","RefNameInfoDialog","AboutDialog","handleClose","trackName","getTrackName","AboutComponent","AboutContents"],"sourceRoot":""}