view x/static/js/8762.3d2b9142.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/8762.3d2b9142.chunk.js","mappings":"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","sources":["../../../node_modules/@mui/icons-material/esm/ViewList.js","../../../plugins/menus/src/SessionManager/components/SessionListItem.tsx","../../../plugins/menus/src/SessionManager/components/AutosavedSessionsList.tsx","../../../plugins/menus/src/SessionManager/components/DeleteSavedSessionDialog.tsx","../../../plugins/menus/src/SessionManager/components/RegularSavedSessionsList.tsx","../../../plugins/menus/src/SessionManager/components/SessionManager.tsx","../../../node_modules/@mui/material/ListItemButton/ListItemButton.js"],"sourcesContent":["\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n  d: \"M3 14h4v-4H3zm0 5h4v-4H3zM3 9h4V5H3zm5 5h13v-4H8zm0 5h13v-4H8zM8 5v4h13V5z\"\n}), 'ViewList');","import React from 'react'\nimport {\n  ListItem,\n  ListItemButton,\n  ListItemIcon,\n  ListItemText,\n} from '@mui/material'\n\nimport { observer } from 'mobx-react'\nimport pluralize from 'pluralize'\n\n// icons\nimport ViewListIcon from '@mui/icons-material/ViewList'\nimport { AbstractSessionModel, sum } from '@jbrowse/core/util'\n\n// locals\nimport { SessionSnap } from './util'\n\nconst SessionListItem = observer(function ({\n  session,\n  sessionSnapshot,\n  onClick,\n  secondaryAction,\n}: {\n  sessionSnapshot: SessionSnap\n  session: AbstractSessionModel\n  onClick: () => void\n  secondaryAction?: React.ReactNode\n}) {\n  const { views = [] } = sessionSnapshot\n  const totalTracks = sum(views.map(view => view.tracks?.length ?? 0))\n  const n = views.length\n\n  return (\n    <ListItem secondaryAction={secondaryAction}>\n      <ListItemButton onClick={onClick}>\n        <ListItemIcon>\n          <ViewListIcon />\n        </ListItemIcon>\n        <ListItemText\n          primary={sessionSnapshot.name}\n          secondary={\n            session.name === sessionSnapshot.name\n              ? 'Currently open'\n              : `${n} ${pluralize('view', n)}; ${totalTracks} open ${pluralize(\n                  'track',\n                  totalTracks,\n                )}`\n          }\n        />\n      </ListItemButton>\n    </ListItem>\n  )\n})\n\nexport default SessionListItem\n","import React from 'react'\nimport { List, ListSubheader, Paper } from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\n\nimport { observer } from 'mobx-react'\n\n// icons\nimport { SessionModel, SessionSnap } from './util'\nimport SessionListItem from './SessionListItem'\n\nconst useStyles = makeStyles()(theme => ({\n  root: {\n    margin: theme.spacing(1),\n  },\n}))\n\nconst AutosaveSessionsList = observer(function ({\n  session,\n}: {\n  session: SessionModel\n}) {\n  const { classes } = useStyles()\n  const autosavedSession = JSON.parse(\n    localStorage.getItem(session.previousAutosaveId) || '{}',\n  ).session as SessionSnap | undefined\n\n  return autosavedSession ? (\n    <Paper className={classes.root}>\n      <List subheader={<ListSubheader>Previous autosaved entry</ListSubheader>}>\n        <SessionListItem\n          session={session}\n          sessionSnapshot={autosavedSession}\n          onClick={() => {\n            session.loadAutosaveSession()\n          }}\n        />\n      </List>\n    </Paper>\n  ) : null\n})\n\nexport default AutosaveSessionsList\n","import React from 'react'\nimport {\n  Button,\n  DialogActions,\n  DialogContent,\n  DialogContentText,\n} from '@mui/material'\nimport { Dialog } from '@jbrowse/core/ui'\n\nexport default function DeleteSavedSessionDialog({\n  open,\n  sessionNameToDelete,\n  handleClose,\n}: {\n  sessionNameToDelete: string\n  open: boolean\n  handleClose: (arg?: boolean) => void\n}) {\n  return (\n    <Dialog open={open} title={`Delete session \"${sessionNameToDelete}\"?`}>\n      <DialogContent>\n        <DialogContentText>This action cannot be undone</DialogContentText>\n      </DialogContent>\n      <DialogActions>\n        <Button\n          onClick={() => {\n            handleClose()\n          }}\n          color=\"primary\"\n        >\n          Cancel\n        </Button>\n        <Button\n          onClick={() => {\n            handleClose(true)\n          }}\n          color=\"primary\"\n          autoFocus\n        >\n          Delete\n        </Button>\n      </DialogActions>\n    </Dialog>\n  )\n}\n","import React, { useState } from 'react'\nimport {\n  IconButton,\n  List,\n  ListSubheader,\n  Paper,\n  Typography,\n} from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\n\nimport { observer } from 'mobx-react'\n\n// icons\nimport DeleteIcon from '@mui/icons-material/Delete'\n\n// locals\nimport { SessionModel } from './util'\nimport DeleteSavedSessionDialog from './DeleteSavedSessionDialog'\nimport SessionListItem from './SessionListItem'\n\nconst useStyles = makeStyles()(theme => ({\n  root: {\n    margin: theme.spacing(1),\n  },\n  message: {\n    padding: theme.spacing(3),\n  },\n}))\n\nconst RegularSavedSessionsList = observer(function ({\n  session,\n}: {\n  session: SessionModel\n}) {\n  const { classes } = useStyles()\n  const [sessionIndexToDelete, setSessionIndexToDelete] = useState<number>()\n\n  function handleDialogClose(deleteSession = false) {\n    if (deleteSession && sessionIndexToDelete !== undefined) {\n      session.removeSavedSession(session.savedSessions[sessionIndexToDelete]!)\n    }\n    setSessionIndexToDelete(undefined)\n  }\n\n  const sessionNameToDelete =\n    sessionIndexToDelete !== undefined\n      ? session.savedSessions[sessionIndexToDelete]!.name\n      : ''\n  return (\n    <Paper className={classes.root}>\n      <List subheader={<ListSubheader>Saved sessions</ListSubheader>}>\n        {session.savedSessions.length ? (\n          session.savedSessions.map((sessionSnapshot, idx) => (\n            <SessionListItem\n              onClick={() => {\n                session.activateSession(sessionSnapshot.name)\n              }}\n              sessionSnapshot={sessionSnapshot}\n              session={session}\n              key={sessionSnapshot.name}\n              secondaryAction={\n                <IconButton\n                  edge=\"end\"\n                  disabled={session.name === sessionSnapshot.name}\n                  onClick={() => {\n                    setSessionIndexToDelete(idx)\n                  }}\n                >\n                  <DeleteIcon />\n                </IconButton>\n              }\n            />\n          ))\n        ) : (\n          <Typography className={classes.message}>\n            No saved sessions found\n          </Typography>\n        )}\n      </List>\n      {sessionNameToDelete ? (\n        <React.Suspense fallback={null}>\n          <DeleteSavedSessionDialog\n            open\n            sessionNameToDelete={sessionNameToDelete}\n            handleClose={handleDialogClose}\n          />\n        </React.Suspense>\n      ) : null}\n    </Paper>\n  )\n})\n\nexport default RegularSavedSessionsList\n","import React from 'react'\nimport { observer } from 'mobx-react'\n\n// icons\nimport { SessionModel } from './util'\nimport AutosaveSessionsList from './AutosavedSessionsList'\nimport RegularSavedSessionsList from './RegularSavedSessionsList'\n\nconst SessionManager = observer(function ({\n  session,\n}: {\n  session: SessionModel\n}) {\n  return (\n    <>\n      <AutosaveSessionsList session={session} />\n      <RegularSavedSessionsList session={session} />\n    </>\n  )\n})\n\nexport default SessionManager\n","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { alpha } from '@mui/system/colorManipulator';\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport rootShouldForwardProp from \"../styles/rootShouldForwardProp.js\";\nimport ButtonBase from \"../ButtonBase/index.js\";\nimport useEnhancedEffect from \"../utils/useEnhancedEffect.js\";\nimport useForkRef from \"../utils/useForkRef.js\";\nimport ListContext from \"../List/ListContext.js\";\nimport listItemButtonClasses, { getListItemButtonUtilityClass } from \"./listItemButtonClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const overridesResolver = (props, styles) => {\n  const {\n    ownerState\n  } = props;\n  return [styles.root, ownerState.dense && styles.dense, ownerState.alignItems === 'flex-start' && styles.alignItemsFlexStart, ownerState.divider && styles.divider, !ownerState.disableGutters && styles.gutters];\n};\nconst useUtilityClasses = ownerState => {\n  const {\n    alignItems,\n    classes,\n    dense,\n    disabled,\n    disableGutters,\n    divider,\n    selected\n  } = ownerState;\n  const slots = {\n    root: ['root', dense && 'dense', !disableGutters && 'gutters', divider && 'divider', disabled && 'disabled', alignItems === 'flex-start' && 'alignItemsFlexStart', selected && 'selected']\n  };\n  const composedClasses = composeClasses(slots, getListItemButtonUtilityClass, classes);\n  return {\n    ...classes,\n    ...composedClasses\n  };\n};\nconst ListItemButtonRoot = styled(ButtonBase, {\n  shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n  name: 'MuiListItemButton',\n  slot: 'Root',\n  overridesResolver\n})(memoTheme(({\n  theme\n}) => ({\n  display: 'flex',\n  flexGrow: 1,\n  justifyContent: 'flex-start',\n  alignItems: 'center',\n  position: 'relative',\n  textDecoration: 'none',\n  minWidth: 0,\n  boxSizing: 'border-box',\n  textAlign: 'left',\n  paddingTop: 8,\n  paddingBottom: 8,\n  transition: theme.transitions.create('background-color', {\n    duration: theme.transitions.duration.shortest\n  }),\n  '&:hover': {\n    textDecoration: 'none',\n    backgroundColor: (theme.vars || theme).palette.action.hover,\n    // Reset on touch devices, it doesn't add specificity\n    '@media (hover: none)': {\n      backgroundColor: 'transparent'\n    }\n  },\n  [`&.${listItemButtonClasses.selected}`]: {\n    backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),\n    [`&.${listItemButtonClasses.focusVisible}`]: {\n      backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)\n    }\n  },\n  [`&.${listItemButtonClasses.selected}:hover`]: {\n    backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),\n    // Reset on touch devices, it doesn't add specificity\n    '@media (hover: none)': {\n      backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity)\n    }\n  },\n  [`&.${listItemButtonClasses.focusVisible}`]: {\n    backgroundColor: (theme.vars || theme).palette.action.focus\n  },\n  [`&.${listItemButtonClasses.disabled}`]: {\n    opacity: (theme.vars || theme).palette.action.disabledOpacity\n  },\n  variants: [{\n    props: ({\n      ownerState\n    }) => ownerState.divider,\n    style: {\n      borderBottom: `1px solid ${(theme.vars || theme).palette.divider}`,\n      backgroundClip: 'padding-box'\n    }\n  }, {\n    props: {\n      alignItems: 'flex-start'\n    },\n    style: {\n      alignItems: 'flex-start'\n    }\n  }, {\n    props: ({\n      ownerState\n    }) => !ownerState.disableGutters,\n    style: {\n      paddingLeft: 16,\n      paddingRight: 16\n    }\n  }, {\n    props: ({\n      ownerState\n    }) => ownerState.dense,\n    style: {\n      paddingTop: 4,\n      paddingBottom: 4\n    }\n  }]\n})));\nconst ListItemButton = /*#__PURE__*/React.forwardRef(function ListItemButton(inProps, ref) {\n  const props = useDefaultProps({\n    props: inProps,\n    name: 'MuiListItemButton'\n  });\n  const {\n    alignItems = 'center',\n    autoFocus = false,\n    component = 'div',\n    children,\n    dense = false,\n    disableGutters = false,\n    divider = false,\n    focusVisibleClassName,\n    selected = false,\n    className,\n    ...other\n  } = props;\n  const context = React.useContext(ListContext);\n  const childContext = React.useMemo(() => ({\n    dense: dense || context.dense || false,\n    alignItems,\n    disableGutters\n  }), [alignItems, context.dense, dense, disableGutters]);\n  const listItemRef = React.useRef(null);\n  useEnhancedEffect(() => {\n    if (autoFocus) {\n      if (listItemRef.current) {\n        listItemRef.current.focus();\n      } else if (process.env.NODE_ENV !== 'production') {\n        console.error('MUI: Unable to set focus to a ListItemButton whose component has not been rendered.');\n      }\n    }\n  }, [autoFocus]);\n  const ownerState = {\n    ...props,\n    alignItems,\n    dense: childContext.dense,\n    disableGutters,\n    divider,\n    selected\n  };\n  const classes = useUtilityClasses(ownerState);\n  const handleRef = useForkRef(listItemRef, ref);\n  return /*#__PURE__*/_jsx(ListContext.Provider, {\n    value: childContext,\n    children: /*#__PURE__*/_jsx(ListItemButtonRoot, {\n      ref: handleRef,\n      href: other.href || other.to\n      // `ButtonBase` processes `href` or `to` if `component` is set to 'button'\n      ,\n      component: (other.href || other.to) && component === 'div' ? 'button' : component,\n      focusVisibleClassName: clsx(classes.focusVisible, focusVisibleClassName),\n      ownerState: ownerState,\n      className: clsx(classes.root, className),\n      ...other,\n      classes: classes,\n      children: children\n    })\n  });\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItemButton.propTypes /* remove-proptypes */ = {\n  // ┌────────────────────────────── Warning ──────────────────────────────┐\n  // │ These PropTypes are generated from the TypeScript type definitions. │\n  // │    To update them, edit the d.ts file and run `pnpm proptypes`.     │\n  // └─────────────────────────────────────────────────────────────────────┘\n  /**\n   * Defines the `align-items` style property.\n   * @default 'center'\n   */\n  alignItems: PropTypes.oneOf(['center', 'flex-start']),\n  /**\n   * If `true`, the list item is focused during the first mount.\n   * Focus will also be triggered if the value changes from false to true.\n   * @default false\n   */\n  autoFocus: PropTypes.bool,\n  /**\n   * The content of the component if a `ListItemSecondaryAction` is used it must\n   * be the last child.\n   */\n  children: PropTypes.node,\n  /**\n   * Override or extend the styles applied to the component.\n   */\n  classes: PropTypes.object,\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: PropTypes.elementType,\n  /**\n   * If `true`, compact vertical padding designed for keyboard and mouse input is used.\n   * The prop defaults to the value inherited from the parent List component.\n   * @default false\n   */\n  dense: PropTypes.bool,\n  /**\n   * If `true`, the component is disabled.\n   * @default false\n   */\n  disabled: PropTypes.bool,\n  /**\n   * If `true`, the left and right padding is removed.\n   * @default false\n   */\n  disableGutters: PropTypes.bool,\n  /**\n   * If `true`, a 1px light border is added to the bottom of the list item.\n   * @default false\n   */\n  divider: PropTypes.bool,\n  /**\n   * This prop can help identify which element has keyboard focus.\n   * The class name will be applied when the element gains the focus through keyboard interaction.\n   * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).\n   * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).\n   * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components\n   * if needed.\n   */\n  focusVisibleClassName: PropTypes.string,\n  /**\n   * @ignore\n   */\n  href: PropTypes.string,\n  /**\n   * Use to apply selected styling.\n   * @default false\n   */\n  selected: PropTypes.bool,\n  /**\n   * The system prop that allows defining system overrides as well as additional CSS styles.\n   */\n  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default ListItemButton;"],"names":["createSvgIcon","d","observer","session","sessionSnapshot","onClick","secondaryAction","views","totalTracks","sum","map","view","tracks","length","n","React","ListItem","ListItemButton","ListItemIcon","ViewListIcon","ListItemText","primary","name","secondary","pluralize","useStyles","makeStyles","theme","root","margin","spacing","classes","autosavedSession","JSON","parse","localStorage","getItem","previousAutosaveId","Paper","className","List","subheader","ListSubheader","SessionListItem","loadAutosaveSession","DeleteSavedSessionDialog","open","sessionNameToDelete","handleClose","Dialog","title","DialogContent","DialogContentText","DialogActions","Button","color","autoFocus","message","padding","sessionIndexToDelete","setSessionIndexToDelete","useState","undefined","savedSessions","idx","activateSession","key","IconButton","edge","disabled","DeleteIcon","Typography","fallback","deleteSession","removeSavedSession","AutosaveSessionsList","RegularSavedSessionsList","ListItemButtonRoot","shouldForwardProp","prop","slot","overridesResolver","props","styles","ownerState","dense","alignItems","alignItemsFlexStart","divider","disableGutters","gutters","display","flexGrow","justifyContent","position","textDecoration","minWidth","boxSizing","textAlign","paddingTop","paddingBottom","transition","transitions","create","duration","shortest","backgroundColor","vars","palette","action","hover","selected","mainChannel","selectedOpacity","main","focusVisible","focusOpacity","hoverOpacity","focus","opacity","disabledOpacity","variants","style","borderBottom","backgroundClip","paddingLeft","paddingRight","inProps","ref","component","children","focusVisibleClassName","other","context","childContext","listItemRef","current","slots","composedClasses","useUtilityClasses","handleRef","Provider","value","href","to"],"sourceRoot":""}