Mercurial > repos > fubar > jbrowse2
view x/static/js/8546.0a89cbee.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/8546.0a89cbee.chunk.js","mappings":"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","sources":["../../../plugins/spreadsheet-view/src/SpreadsheetView/components/NumberEditor.tsx","../../../plugins/spreadsheet-view/src/SpreadsheetView/components/ImportWizard.tsx","../../../plugins/spreadsheet-view/src/SpreadsheetView/components/RowMenu.tsx","../../../plugins/spreadsheet-view/src/SpreadsheetView/components/CellData.tsx","../../../plugins/spreadsheet-view/src/SpreadsheetView/components/DataRow.tsx","../../../plugins/spreadsheet-view/src/SpreadsheetView/components/ColumnMenu.tsx","../../../plugins/spreadsheet-view/src/SpreadsheetView/components/SortIndicator.tsx","../../../plugins/spreadsheet-view/src/SpreadsheetView/components/util.ts","../../../plugins/spreadsheet-view/src/SpreadsheetView/components/DataTableHeader.tsx","../../../plugins/spreadsheet-view/src/SpreadsheetView/components/DataTable.tsx","../../../plugins/spreadsheet-view/src/SpreadsheetView/components/Spreadsheet.tsx","../../../plugins/spreadsheet-view/src/SpreadsheetView/components/GlobalFilterControls.tsx","../../../plugins/spreadsheet-view/src/SpreadsheetView/components/ColumnFilterControls.tsx","../../../plugins/spreadsheet-view/src/SpreadsheetView/components/RowCountMessage.tsx","../../../plugins/spreadsheet-view/src/SpreadsheetView/components/StatusBar.tsx","../../../plugins/spreadsheet-view/src/SpreadsheetView/components/SpreadsheetView.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react'\nimport { TextField } from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\nimport { observer } from 'mobx-react'\n\n// locals\nimport { ImportWizardModel } from '../models/ImportWizard'\n\nconst useStyles = makeStyles()({\n textField: {\n width: '2rem',\n verticalAlign: 'baseline',\n },\n})\n\nconst NumberEditor = observer(function ({\n model,\n disabled,\n modelPropName,\n modelSetterName,\n}: {\n model: ImportWizardModel\n disabled: boolean\n modelPropName: string\n modelSetterName: string\n}) {\n // @ts-expect-error\n const [val, setVal] = useState(model[modelPropName])\n const { classes } = useStyles()\n useEffect(() => {\n const num = Number.parseInt(val, 10)\n if (!Number.isNaN(num)) {\n if (num > 0) {\n // @ts-expect-error\n model[modelSetterName](num)\n } else {\n setVal(1)\n }\n }\n }, [model, modelSetterName, val])\n return (\n <TextField\n value={val}\n disabled={disabled}\n type=\"number\"\n onChange={evt => {\n setVal(evt.target.value)\n }}\n className={classes.textField}\n />\n )\n})\n\nexport default NumberEditor\n","import React, { useState } from 'react'\nimport {\n Button,\n Checkbox,\n FormControl,\n FormGroup,\n FormLabel,\n FormControlLabel,\n RadioGroup,\n Radio,\n} from '@mui/material'\nimport { observer } from 'mobx-react'\nimport { getRoot } from 'mobx-state-tree'\nimport { AbstractRootModel, getSession } from '@jbrowse/core/util'\nimport { FileSelector, ErrorMessage, AssemblySelector } from '@jbrowse/core/ui'\n\n// locals\nimport { ImportWizardModel } from '../models/ImportWizard'\nimport NumberEditor from './NumberEditor'\nimport { makeStyles } from 'tss-react/mui'\n\nconst useStyles = makeStyles()({\n container: {\n margin: '0 auto',\n maxWidth: '25em',\n padding: 20,\n },\n})\n\nconst ImportWizard = observer(({ model }: { model: ImportWizardModel }) => {\n const session = getSession(model)\n const { classes } = useStyles()\n const { assemblyNames, assemblyManager } = session\n const {\n fileType,\n canCancel,\n fileSource,\n isReadyToOpen,\n fileTypes,\n hasColumnNameLine,\n error,\n } = model\n const [selected, setSelected] = useState(assemblyNames[0])\n const err = assemblyManager.get(selected!)?.error || error\n const showRowControls = fileType === 'CSV' || fileType === 'TSV'\n const rootModel = getRoot(model)\n\n return (\n <div className={classes.container}>\n {err ? <ErrorMessage error={err} /> : null}\n <div>\n <FormControl component=\"fieldset\">\n <FormLabel component=\"legend\">Tabular file</FormLabel>\n <FormGroup>\n <FileSelector\n location={fileSource}\n setLocation={arg => {\n model.setFileSource(arg)\n }}\n rootModel={rootModel as AbstractRootModel}\n />\n </FormGroup>\n </FormControl>\n </div>\n <div>\n <FormControl component=\"fieldset\">\n <FormLabel component=\"legend\">File Type</FormLabel>\n <RadioGroup row aria-label=\"file type\" name=\"type\" value={fileType}>\n {fileTypes.map(fileTypeName => (\n <FormControlLabel\n key={fileTypeName}\n checked={fileType === fileTypeName}\n value={fileTypeName}\n onClick={() => {\n model.setFileType(fileTypeName)\n }}\n control={<Radio />}\n label={fileTypeName}\n />\n ))}\n </RadioGroup>\n </FormControl>\n </div>\n {showRowControls ? (\n <div>\n <FormControl component=\"fieldset\">\n <FormLabel component=\"legend\">Column Names</FormLabel>\n <FormControlLabel\n disabled={!showRowControls}\n label=\"has column names on line\"\n labelPlacement=\"end\"\n control={\n <Checkbox\n checked={hasColumnNameLine}\n onClick={() => {\n model.toggleHasColumnNameLine()\n }}\n />\n }\n />\n <NumberEditor\n model={model}\n disabled={!hasColumnNameLine}\n modelPropName=\"columnNameLineNumber\"\n modelSetterName=\"setColumnNameLineNumber\"\n />\n </FormControl>\n </div>\n ) : null}\n <div>\n <AssemblySelector\n session={session}\n selected={selected}\n onChange={val => {\n setSelected(val)\n }}\n />\n </div>\n <div>\n {canCancel ? (\n <Button\n variant=\"contained\"\n color=\"secondary\"\n onClick={() => {\n model.cancelButton()\n }}\n disabled={!canCancel}\n >\n Cancel\n </Button>\n ) : null}{' '}\n <Button\n disabled={!isReadyToOpen || !!err}\n variant=\"contained\"\n data-testid=\"open_spreadsheet\"\n color=\"primary\"\n onClick={() => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n model.import(selected!)\n }}\n >\n Open\n </Button>\n </div>\n </div>\n )\n})\n\nexport default ImportWizard\n","import React from 'react'\nimport { observer } from 'mobx-react'\nimport { Menu, MenuItem } from '@jbrowse/core/ui'\nimport { Instance } from 'mobx-state-tree'\n\n// locals\nimport type SpreadsheetModel from '../models/Spreadsheet'\nimport type ViewModel from '../models/SpreadsheetView'\n\nconst RowMenu = observer(function ({\n viewModel,\n spreadsheetModel,\n}: {\n viewModel: Instance<typeof ViewModel>\n spreadsheetModel: Instance<typeof SpreadsheetModel>\n}) {\n const currentRowMenu = spreadsheetModel.rowMenuPosition\n const { setRowMenuPosition } = spreadsheetModel\n\n const rowMenuClose = () => {\n setRowMenuPosition(null)\n }\n\n const rowNumber = spreadsheetModel.rowMenuPosition?.rowNumber\n if (rowNumber === undefined) {\n return null\n }\n\n const row = spreadsheetModel.rowSet.rows[+rowNumber - 1]\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n function handleMenuItemClick(_event: unknown, callback: Function) {\n callback(viewModel, spreadsheetModel, rowNumber, row)\n rowMenuClose()\n }\n\n // got through and evaluate all the `disabled` callbacks of the menu items\n const menuItems: MenuItem[] = viewModel.rowMenuItems.map(item => {\n if (typeof item.disabled === 'function') {\n const disabled = item.disabled(\n viewModel,\n spreadsheetModel,\n +rowNumber,\n row!,\n )\n return { ...item, disabled }\n }\n return item\n })\n\n return (\n <Menu\n anchorEl={currentRowMenu?.anchorEl}\n open={Boolean(currentRowMenu)}\n onMenuItemClick={handleMenuItemClick}\n onClose={rowMenuClose}\n menuItems={menuItems}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n />\n )\n})\n\nexport default RowMenu\n","import React from 'react'\nimport { observer } from 'mobx-react'\nimport { Instance } from 'mobx-state-tree'\n\n// locals\nimport type SpreadsheetStateModel from '../models/Spreadsheet'\n\ntype SpreadsheetModel = Instance<typeof SpreadsheetStateModel>\n\nconst CellData = observer(function ({\n cell,\n spreadsheetModel,\n columnNumber,\n}: {\n cell: any\n spreadsheetModel: SpreadsheetModel\n columnNumber: number\n}) {\n const column = spreadsheetModel.columns[columnNumber]\n return column &&\n 'dataType' in column &&\n column.dataType.DataCellReactComponent ? (\n <column.dataType.DataCellReactComponent\n cell={cell}\n dataType={column.dataType}\n columnNumber={columnNumber}\n spreadsheet={spreadsheetModel}\n />\n ) : (\n cell.text\n )\n})\n\nexport default CellData\n","import React from 'react'\nimport { Checkbox, IconButton, FormControlLabel } from '@mui/material'\nimport { observer } from 'mobx-react'\nimport { Instance } from 'mobx-state-tree'\nimport { indigo } from '@mui/material/colors'\nimport { makeStyles } from 'tss-react/mui'\n\n// icons\nimport ArrowDropDown from '@mui/icons-material/ArrowDropDown'\n\n// locals\nimport type SpreadsheetStateModel from '../models/Spreadsheet'\nimport type RowStateModel from '../models/Row'\n\nimport CellData from './CellData'\n\ntype SpreadsheetModel = Instance<typeof SpreadsheetStateModel>\ntype RowModel = Instance<typeof RowStateModel>\n\nconst useStyles = makeStyles()(theme => ({\n rowNumCell: {\n textAlign: 'left',\n border: `1px solid ${theme.palette.action.disabledBackground}`,\n position: 'relative',\n padding: '0 2px 0 0',\n whiteSpace: 'nowrap',\n userSelect: 'none',\n },\n rowNumber: {\n fontWeight: 'normal',\n display: 'inline-block',\n flex: 'none',\n paddingRight: '20px',\n margin: 0,\n whiteSpace: 'nowrap',\n },\n rowMenuButton: {\n padding: 0,\n margin: 0,\n position: 'absolute',\n right: 0,\n display: 'inline-block',\n whiteSpace: 'nowrap',\n flex: 'none',\n },\n rowMenuButtonIcon: {},\n rowSelector: {\n position: 'relative',\n top: '-2px',\n margin: 0,\n padding: '0 0.2rem',\n },\n\n dataRowSelected: {\n background: indigo[100],\n '& th': {\n background: indigo[100],\n },\n },\n}))\n\nconst DataRow = observer(function ({\n rowModel,\n rowNumber,\n spreadsheetModel,\n}: {\n rowModel: RowModel\n rowNumber: string\n spreadsheetModel: SpreadsheetModel\n}) {\n const { classes } = useStyles()\n const { hideRowSelection, columnDisplayOrder } = spreadsheetModel\n let rowClass = ''\n if (rowModel.isSelected) {\n rowClass += classes.dataRowSelected\n }\n\n function labelClick(evt: React.MouseEvent) {\n rowModel.toggleSelect()\n evt.stopPropagation()\n evt.preventDefault()\n }\n\n return (\n <tr className={rowClass}>\n <td className={classes.rowNumCell} onClick={labelClick}>\n {hideRowSelection ? (\n <FormControlLabel\n className={classes.rowNumber}\n control={\n <Checkbox\n className={classes.rowSelector}\n checked={rowModel.isSelected}\n onClick={labelClick}\n />\n }\n label={rowModel.id}\n />\n ) : null}\n <IconButton\n className={classes.rowMenuButton}\n onClick={event => {\n spreadsheetModel.setRowMenuPosition({\n anchorEl: event.currentTarget,\n rowNumber,\n })\n event.preventDefault()\n event.stopPropagation()\n }}\n >\n <ArrowDropDown className={classes.rowMenuButtonIcon} />\n </IconButton>\n </td>\n {columnDisplayOrder.map(colNumber => (\n <td key={colNumber}>\n <CellData\n cell={rowModel.cellsWithDerived[colNumber]}\n spreadsheetModel={spreadsheetModel}\n columnNumber={colNumber}\n />\n </td>\n ))}\n </tr>\n )\n})\n\nexport default DataRow\n","import React from 'react'\nimport { observer } from 'mobx-react'\nimport { iterMap } from '@jbrowse/core/util'\nimport { Menu } from '@jbrowse/core/ui'\nimport { MenuItem } from '@jbrowse/core/ui/Menu'\nimport { SpreadsheetModel } from '../models/Spreadsheet'\nimport { SpreadsheetViewModel } from '../models/SpreadsheetView'\n\n// icons\nimport CheckIcon from '@mui/icons-material/Check'\nimport FilterListIcon from '@mui/icons-material/FilterList'\nimport PermDataSettingIcon from '@mui/icons-material/PermDataSetting'\nimport SortIcon from '@mui/icons-material/Sort'\n\nconst ColumnMenu = observer(function ({\n viewModel,\n spreadsheetModel,\n currentColumnMenu,\n setColumnMenu,\n}: {\n spreadsheetModel: SpreadsheetModel\n viewModel: SpreadsheetViewModel\n currentColumnMenu?: { colNumber: number; anchorEl: HTMLElement }\n setColumnMenu: (arg?: { anchorEl: HTMLElement; colNumber: number }) => void\n}) {\n const columnMenuClose = () => {\n setColumnMenu(undefined)\n }\n const columnNumber = currentColumnMenu?.colNumber || 0\n const sortMenuClick = (descending: boolean) => {\n spreadsheetModel.setSortColumns([\n {\n columnNumber,\n descending,\n },\n ])\n }\n\n const { dataTypeChoices } = spreadsheetModel\n\n // make a Map of categoryName => [entry...]\n type Record = (typeof dataTypeChoices)[0]\n interface RecordGroup {\n isCategory: boolean\n subMenuItems: Record[]\n }\n const dataTypeTopLevelMenu = new Map<string, Record | RecordGroup>()\n dataTypeChoices.forEach(dataTypeRecord => {\n const { displayName, categoryName } = dataTypeRecord\n if (categoryName) {\n let entry = dataTypeTopLevelMenu.get(categoryName) as\n | RecordGroup\n | undefined\n if (!entry) {\n entry = {\n isCategory: true,\n subMenuItems: [],\n }\n dataTypeTopLevelMenu.set(categoryName, entry)\n }\n entry.subMenuItems.push(dataTypeRecord)\n } else {\n dataTypeTopLevelMenu.set(displayName, dataTypeRecord)\n }\n })\n\n const { columns, sortColumns } = spreadsheetModel\n const dataType = currentColumnMenu && columns[columnNumber]!.dataType\n const dataTypeName = dataType?.type || ''\n const dataTypeDisplayName =\n (currentColumnMenu && columns[columnNumber]!.dataType.displayName) || ''\n\n const isSortingAscending =\n !!currentColumnMenu &&\n sortColumns.some(\n c => c.columnNumber === currentColumnMenu.colNumber && !c.descending,\n )\n const isSortingDescending =\n !!currentColumnMenu &&\n sortColumns.some(\n c => c.columnNumber === currentColumnMenu.colNumber && c.descending,\n )\n\n const menuItems = [\n // top-level column menu\n {\n label: 'Sort ascending',\n icon: SortIcon,\n type: 'radio',\n checked: isSortingAscending,\n onClick: () => {\n sortMenuClick(false)\n },\n },\n {\n label: 'Sort descending',\n icon: SortIcon,\n type: 'radio',\n checked: isSortingDescending,\n onClick: () => {\n sortMenuClick(true)\n },\n },\n {\n label: 'No sort',\n icon: SortIcon,\n type: 'radio',\n checked: !isSortingDescending && !isSortingAscending,\n onClick: () => {\n spreadsheetModel.setSortColumns([])\n },\n },\n // data type menu\n {\n label: `Type: ${dataTypeDisplayName}`,\n icon: PermDataSettingIcon,\n subMenu: iterMap(\n dataTypeTopLevelMenu.entries(),\n ([displayName, record]) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if ('typeName' in record && record.typeName) {\n const { typeName } = record\n return {\n label: displayName || typeName,\n icon: dataTypeName === typeName ? CheckIcon : undefined,\n onClick: () => {\n spreadsheetModel.setColumnType(columnNumber, typeName)\n },\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if ('subMenuItems' in record && record.subMenuItems) {\n const { subMenuItems } = record\n return {\n label: displayName,\n icon: subMenuItems.some(i => i.typeName === dataTypeName)\n ? CheckIcon\n : undefined,\n subMenu: subMenuItems.map(({ typeName, displayName }) => ({\n label: displayName,\n icon: typeName === dataTypeName ? CheckIcon : undefined,\n onClick: () => {\n spreadsheetModel.setColumnType(columnNumber, typeName)\n },\n })),\n }\n }\n return null\n },\n ).filter(Boolean),\n },\n ] as MenuItem[]\n\n // don't display the filter item if this data type doesn't have filtering\n // implemented\n if (dataType?.hasFilter) {\n menuItems.push({\n label: 'Create filter',\n icon: FilterListIcon,\n onClick: () => {\n viewModel.filterControls.addBlankColumnFilter(columnNumber)\n },\n })\n }\n\n return (\n <Menu\n anchorEl={currentColumnMenu?.anchorEl}\n open={Boolean(currentColumnMenu)}\n onMenuItemClick={(_event, callback) => {\n callback()\n columnMenuClose()\n }}\n onClose={columnMenuClose}\n menuItems={menuItems}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n />\n )\n})\n\nexport default ColumnMenu\n","import React from 'react'\nimport { makeStyles } from 'tss-react/mui'\n\n// icons\nimport KeyboardArrowUpIcon from '@mui/icons-material/KeyboardArrowUp'\nimport KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown'\nimport { SpreadsheetModel } from '../models/Spreadsheet'\n\nconst useStyles = makeStyles()({\n sortIndicator: {\n position: 'relative',\n top: '0.2rem',\n fontSize: '1rem',\n },\n})\n\nexport default function SortIndicator({\n model,\n columnNumber,\n}: {\n model: SpreadsheetModel\n columnNumber: number\n}) {\n const { classes } = useStyles()\n const sortSpec = model.sortColumns.find(c => c.columnNumber === columnNumber)\n\n if (sortSpec) {\n const { descending } = sortSpec\n return descending ? (\n <KeyboardArrowUpIcon className={classes.sortIndicator} />\n ) : (\n <KeyboardArrowDownIcon className={classes.sortIndicator} />\n )\n }\n return null\n}\n","function letterFor(n: number) {\n return String.fromCharCode(n + 65)\n}\n\nexport function numToColName(num: number) {\n if (num >= 0) {\n if (num < 26) {\n return letterFor(num)\n }\n if (num < 27 * 26) {\n return letterFor(Math.floor(num / 26 - 1)) + letterFor(num % 26)\n }\n }\n\n throw new RangeError('column number out of range')\n}\n","import React, { useState } from 'react'\nimport { IconButton, Tooltip } from '@mui/material'\nimport { observer } from 'mobx-react'\nimport { getParent } from 'mobx-state-tree'\nimport { makeStyles } from 'tss-react/mui'\n\n// icons\nimport CropFreeIcon from '@mui/icons-material/CropFree'\nimport ArrowDropDown from '@mui/icons-material/ArrowDropDown'\n\n// locals\nimport { SpreadsheetModel } from '../models/Spreadsheet'\nimport ColumnMenu from './ColumnMenu'\nimport SortIndicator from './SortIndicator'\nimport { numToColName } from './util'\n\ninterface ColMenu {\n colNumber: number\n anchorEl: HTMLElement\n}\n\nconst useStyles = makeStyles()(theme => ({\n columnHead: {\n fontWeight: 'normal',\n background: theme.palette.mode === 'dark' ? '#333' : '#eee',\n position: 'sticky',\n top: 0,\n zIndex: 2,\n whiteSpace: 'nowrap',\n },\n\n columnButtonContainer: {\n display: 'none',\n position: 'absolute',\n right: 0,\n top: 0,\n background: theme.palette.background.paper,\n height: '100%',\n },\n\n topLeftCorner: {\n background: theme.palette.mode === 'dark' ? '#333' : '#eee',\n zIndex: 2,\n position: 'sticky',\n top: 0,\n minWidth: theme.spacing(2),\n textAlign: 'left',\n },\n}))\n\nconst DataTableHeader = observer(function ({\n model,\n}: {\n model: SpreadsheetModel\n}) {\n const { classes } = useStyles()\n const { columnDisplayOrder, columns, hasColumnNames, rowSet } = model\n const [currentColumnMenu, setColumnMenu] = useState<ColMenu>()\n const [currentHoveredColumn, setHoveredColumn] = useState<number>()\n\n return (\n <>\n <thead>\n <tr>\n <th className={classes.topLeftCorner}>\n <Tooltip title=\"Unselect all\" placement=\"right\">\n <span>\n <IconButton\n onClick={() => {\n model.unselectAll()\n }}\n disabled={!rowSet.selectedCount}\n >\n <CropFreeIcon />\n </IconButton>\n </span>\n </Tooltip>\n </th>\n {columnDisplayOrder.map(colNumber => (\n <th\n className={classes.columnHead}\n key={colNumber}\n onMouseOver={() => {\n setHoveredColumn(colNumber)\n }}\n onMouseOut={() => {\n setHoveredColumn(undefined)\n }}\n >\n <SortIndicator model={model} columnNumber={colNumber} />\n {(hasColumnNames && columns[colNumber]!.name) ||\n numToColName(colNumber)}\n <div\n className={classes.columnButtonContainer}\n style={{\n display:\n currentHoveredColumn === colNumber ||\n currentColumnMenu?.colNumber === colNumber\n ? 'block'\n : 'none',\n }}\n >\n <IconButton\n onClick={evt => {\n setColumnMenu({\n colNumber,\n anchorEl: evt.currentTarget,\n })\n }}\n >\n <ArrowDropDown />\n </IconButton>\n </div>\n </th>\n ))}\n </tr>\n </thead>\n <ColumnMenu\n viewModel={getParent(model)}\n spreadsheetModel={model}\n currentColumnMenu={currentColumnMenu}\n setColumnMenu={setColumnMenu}\n />\n </>\n )\n})\n\nexport default DataTableHeader\n","import React from 'react'\nimport { observer } from 'mobx-react'\nimport { getParent, Instance } from 'mobx-state-tree'\nimport { makeStyles } from 'tss-react/mui'\n\n// locals\nimport type SpreadsheetStateModel from '../models/Spreadsheet'\nimport type RowStateModel from '../models/Row'\nimport RowMenu from './RowMenu'\nimport DataRow from './DataRow'\nimport DataTableHeader from './DataTableHeader'\n\ntype SpreadsheetModel = Instance<typeof SpreadsheetStateModel>\ntype RowModel = Instance<typeof RowStateModel>\n\nconst useStyles = makeStyles()(theme => ({\n dataTable: {\n borderCollapse: 'collapse',\n '& td': {\n border: `1px solid ${theme.palette.action.disabledBackground}`,\n padding: '0.2rem',\n maxWidth: '50em',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n },\n\n emptyMessage: {\n captionSide: 'bottom',\n },\n}))\n\nconst DataTableBody = observer(function ({\n rows,\n spreadsheetModel,\n page,\n rowsPerPage,\n}: {\n rows: RowModel[]\n spreadsheetModel: SpreadsheetModel\n page: number\n rowsPerPage: number\n}) {\n return (\n <tbody>\n {rows.slice(rowsPerPage * page, rowsPerPage * (page + 1)).map(row => (\n <DataRow\n key={row.id}\n rowNumber={row.id}\n spreadsheetModel={spreadsheetModel}\n rowModel={row}\n />\n ))}\n </tbody>\n )\n})\n\nconst DataTable = observer(function ({\n model,\n page,\n rowsPerPage,\n}: {\n model: SpreadsheetModel\n page: number\n rowsPerPage: number\n}) {\n const { rowSet } = model\n const { classes } = useStyles()\n const rows = rowSet.sortedFilteredRows\n return (\n <>\n <RowMenu viewModel={getParent(model)} spreadsheetModel={model} />\n <table className={classes.dataTable}>\n <DataTableHeader model={model} />\n <DataTableBody\n rows={rows}\n spreadsheetModel={model}\n page={page}\n rowsPerPage={rowsPerPage}\n />\n {!rows.length ? (\n <caption className={classes.emptyMessage}>\n {rowSet.count ? 'no rows match criteria' : 'no rows present'}\n </caption>\n ) : null}\n </table>\n </>\n )\n})\n\nexport default DataTable\n","import React from 'react'\nimport { observer } from 'mobx-react'\nimport { Instance } from 'mobx-state-tree'\nimport { makeStyles } from 'tss-react/mui'\nimport { LoadingEllipses } from '@jbrowse/core/ui'\n\n// locals\nimport type SpreadsheetStateModel from '../models/Spreadsheet'\nimport DataTable from './DataTable'\n\ntype SpreadsheetModel = Instance<typeof SpreadsheetStateModel>\n\nconst useStyles = makeStyles()(theme => ({\n root: {\n position: 'relative',\n marginBottom: theme.spacing(1),\n background: theme.palette.background.paper,\n overflow: 'auto',\n },\n}))\n\nconst Spreadsheet = observer(function ({\n model,\n height,\n page,\n rowsPerPage,\n}: {\n model: SpreadsheetModel\n height: number\n page: number\n rowsPerPage: number\n}) {\n const { classes } = useStyles()\n\n return (\n <div className={classes.root} style={{ height }}>\n {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n model.rowSet.isLoaded && model.initialized ? (\n <DataTable model={model} page={page} rowsPerPage={rowsPerPage} />\n ) : (\n <LoadingEllipses variant=\"h6\" />\n )\n }\n </div>\n )\n})\n\nexport default Spreadsheet\n","import React, { useState, useEffect } from 'react'\n\nimport { IconButton, InputAdornment, TextField } from '@mui/material'\nimport ClearIcon from '@mui/icons-material/Clear'\nimport FilterIcon from '@mui/icons-material/FilterList'\n\nimport { observer } from 'mobx-react'\nimport { makeStyles } from 'tss-react/mui'\nimport { useDebounce } from '@jbrowse/core/util'\n\nconst useStyles = makeStyles()({\n textFilterControlEndAdornment: {\n marginRight: '-18px',\n },\n})\n\nconst TextFilter = observer(function ({\n textFilter,\n}: {\n textFilter: { stringToFind: string; setString: (arg: string) => void }\n}) {\n const { classes } = useStyles()\n // this paragraph is silliness to debounce the text filter input\n const [textFilterValue, setTextFilterValue] = useState(\n textFilter.stringToFind,\n )\n const debouncedTextFilter = useDebounce(textFilterValue, 500)\n useEffect(() => {\n textFilter.setString(debouncedTextFilter)\n }, [debouncedTextFilter, textFilter])\n\n return (\n <div>\n <TextField\n label=\"text filter\"\n value={textFilterValue}\n onChange={evt => {\n setTextFilterValue(evt.target.value)\n }}\n variant=\"outlined\"\n InputProps={{\n startAdornment: (\n <InputAdornment position=\"start\">\n <FilterIcon />\n </InputAdornment>\n ),\n endAdornment: (\n <InputAdornment\n className={classes.textFilterControlEndAdornment}\n position=\"end\"\n >\n <IconButton\n aria-label=\"clear filter\"\n onClick={() => {\n setTextFilterValue('')\n }}\n >\n <ClearIcon />\n </IconButton>\n </InputAdornment>\n ),\n }}\n />\n </div>\n )\n})\n\nconst GlobalFilterControls = observer(({ model }: { model: any }) => {\n const textFilter = model.filterControls.rowFullText\n return <TextFilter textFilter={textFilter} />\n})\n\nexport default GlobalFilterControls\n","import React from 'react'\nimport { Grid, IconButton, Typography } from '@mui/material'\nimport { observer } from 'mobx-react'\nimport { getParent } from 'mobx-state-tree'\nimport { makeStyles } from 'tss-react/mui'\n\n// icons\nimport FilterIcon from '@mui/icons-material/FilterList'\nimport CloseIcon from '@mui/icons-material/Close'\n\nconst useStyles = makeStyles()(theme => ({\n columnName: {\n verticalAlign: 'middle',\n paddingRight: '0.3em',\n },\n columnFilter: {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n boxSizing: 'border-box',\n width: '100%',\n position: 'relative',\n },\n filterIcon: {\n position: 'relative',\n top: '12px',\n },\n filterIconBg: {\n background: theme.palette.tertiary.main,\n color: 'white',\n padding: theme.spacing(1.5),\n },\n}))\n\nfunction FilterOperations({ filterModel }: { filterModel: any }) {\n if (filterModel) {\n return <filterModel.ReactComponent filterModel={filterModel} />\n }\n return null\n}\n\nconst ColumnFilterControls = observer(function ({\n viewModel,\n filterModel,\n columnNumber,\n height,\n}: any) {\n const { classes } = useStyles()\n\n const columnDefinition = viewModel.spreadsheet.columns[columnNumber]\n if (!columnDefinition) {\n throw new Error('no column definition! filters are probably out of date')\n }\n return (\n <Grid\n container\n direction=\"row\"\n className={classes.columnFilter}\n style={{ height }}\n >\n <Grid item className={classes.filterIconBg}>\n <FilterIcon className={classes.filterIcon} />\n </Grid>\n <Grid item>\n <IconButton\n onClick={() =>\n getParent<any>(filterModel, 2).removeColumnFilter(filterModel)\n }\n title=\"remove filter\"\n >\n <CloseIcon />\n </IconButton>\n <Typography className={classes.columnName} component=\"span\">\n {columnDefinition.name}\n </Typography>{' '}\n <FilterOperations filterModel={filterModel} />\n </Grid>\n </Grid>\n )\n})\n\nexport default ColumnFilterControls\n","import React from 'react'\nimport { observer } from 'mobx-react'\n\n// locals\nimport type { SpreadsheetModel } from '../models/Spreadsheet'\n\nconst RowCountMessage = observer(function ({\n spreadsheet,\n}: {\n spreadsheet: SpreadsheetModel\n}) {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (spreadsheet.rowSet.isLoaded) {\n const {\n passingFiltersCount,\n count,\n selectedCount,\n selectedAndPassingFiltersCount,\n } = spreadsheet.rowSet\n\n let rowMessage: string\n if (passingFiltersCount !== count) {\n rowMessage = `${spreadsheet.rowSet.passingFiltersCount} rows of ${spreadsheet.rowSet.count} total`\n if (selectedCount) {\n rowMessage += `, ${selectedAndPassingFiltersCount} selected`\n const selectedAndNotPassingFiltersCount =\n selectedCount - selectedAndPassingFiltersCount\n if (selectedAndNotPassingFiltersCount) {\n rowMessage += ` (${selectedAndNotPassingFiltersCount} selected rows do not pass filters)`\n }\n }\n } else {\n rowMessage = `${spreadsheet.rowSet.count} rows`\n if (selectedCount) {\n rowMessage += `, ${selectedCount} selected`\n }\n }\n return <>{rowMessage}</>\n }\n return null\n})\nexport default RowCountMessage\n","import React from 'react'\nimport { FormGroup, TablePagination } from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\n\n// locals\nimport RowCountMessage from './RowCountMessage'\nimport { SpreadsheetModel } from '../models/Spreadsheet'\nimport { observer } from 'mobx-react'\n\nconst statusBarHeight = 40\n\nconst useStyles = makeStyles()(theme => ({\n statusBar: {\n height: statusBarHeight,\n boxSizing: 'border-box',\n borderTop: '1px outset #b1b1b1',\n paddingLeft: theme.spacing(1),\n },\n verticallyCenter: {\n display: 'flex',\n justifyContent: 'center',\n flexDirection: 'column',\n },\n spacer: {\n flexGrow: 1,\n },\n}))\n\nconst StatusBar = observer(function StatusBar({\n page,\n rowsPerPage,\n setPage,\n setRowsPerPage,\n spreadsheet,\n mode,\n}: {\n page: number\n mode: string\n spreadsheet: SpreadsheetModel\n rowsPerPage: number\n setPage: (arg: number) => void\n setRowsPerPage: (arg: number) => void\n}) {\n const { classes } = useStyles()\n return (\n <div\n className={classes.statusBar}\n style={{ display: mode === 'display' ? undefined : 'none' }}\n >\n <FormGroup row>\n <div className={classes.verticallyCenter}>\n <RowCountMessage spreadsheet={spreadsheet} />\n </div>\n <div className={classes.spacer} />\n <TablePagination\n rowsPerPageOptions={[10, 25, 100, 1000]}\n count={spreadsheet.rowSet.count}\n component=\"div\"\n rowsPerPage={rowsPerPage}\n page={page}\n onPageChange={(_, newPage) => {\n setPage(newPage)\n }}\n onRowsPerPageChange={event => {\n setRowsPerPage(+event.target.value)\n setPage(0)\n }}\n />\n <div className={classes.spacer} />\n </FormGroup>\n </div>\n )\n})\n\nexport default StatusBar\n","import React, { useState } from 'react'\nimport { Grid } from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\nimport { observer } from 'mobx-react'\nimport { ResizeHandle } from '@jbrowse/core/ui'\n\n// locals\nimport ImportWizard from './ImportWizard'\nimport Spreadsheet from './Spreadsheet'\nimport GlobalFilterControls from './GlobalFilterControls'\nimport ColumnFilterControls from './ColumnFilterControls'\nimport { SpreadsheetViewModel } from '../models/SpreadsheetView'\nimport StatusBar from './StatusBar'\n\nconst headerHeight = 52\nconst colFilterHeight = 46\nconst statusBarHeight = 40\n\nconst useStyles = makeStyles()(theme => ({\n header: {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n boxSizing: 'border-box',\n height: headerHeight,\n paddingLeft: theme.spacing(1),\n },\n contentArea: {\n overflow: 'auto',\n },\n resizeHandle: {\n height: 3,\n position: 'absolute',\n bottom: 0,\n left: 0,\n background: theme.palette.action.disabled,\n boxSizing: 'border-box',\n borderTop: '1px solid #fafafa',\n },\n}))\n\nconst SpreadsheetView = observer(function ({\n model,\n}: {\n model: SpreadsheetViewModel\n}) {\n const { classes } = useStyles()\n const {\n spreadsheet,\n filterControls,\n hideFilterControls,\n hideVerticalResizeHandle,\n mode,\n height,\n } = model\n const [page, setPage] = useState(0)\n const [rowsPerPage, setRowsPerPage] = useState(100)\n\n return (\n <div>\n {mode !== 'display' || hideFilterControls ? null : (\n <>\n <Grid container direction=\"row\" className={classes.header}>\n <Grid item>\n <GlobalFilterControls model={model} />\n </Grid>\n </Grid>\n {filterControls.columnFilters.map((f, i) => (\n <ColumnFilterControls\n key={`${f.columnNumber}-${i}`}\n viewModel={model}\n filterModel={f}\n columnNumber={f.columnNumber}\n height={colFilterHeight}\n />\n ))}\n </>\n )}\n\n {mode === 'import' ? (\n <ImportWizard model={model.importWizard} />\n ) : (\n <div className={classes.contentArea}>\n <div\n style={{\n position: 'relative',\n display: mode === 'display' ? undefined : 'none',\n }}\n >\n {spreadsheet ? (\n <Spreadsheet\n page={page}\n rowsPerPage={rowsPerPage}\n model={spreadsheet}\n height={\n height -\n headerHeight -\n filterControls.columnFilters.length * colFilterHeight -\n statusBarHeight\n }\n />\n ) : null}\n </div>\n </div>\n )}\n {spreadsheet ? (\n <StatusBar\n page={page}\n setPage={setPage}\n rowsPerPage={rowsPerPage}\n setRowsPerPage={setRowsPerPage}\n mode={mode}\n spreadsheet={spreadsheet}\n />\n ) : null}\n {hideVerticalResizeHandle ? null : (\n <ResizeHandle\n onDrag={model.resizeHeight}\n className={classes.resizeHandle}\n />\n )}\n </div>\n )\n})\n\nexport default SpreadsheetView\n"],"names":["useStyles","makeStyles","textField","width","verticalAlign","observer","model","disabled","modelPropName","modelSetterName","val","setVal","useState","classes","useEffect","num","Number","parseInt","isNaN","React","TextField","value","type","onChange","evt","target","className","container","margin","maxWidth","padding","session","getSession","assemblyNames","assemblyManager","fileType","canCancel","fileSource","isReadyToOpen","fileTypes","hasColumnNameLine","error","selected","setSelected","err","get","showRowControls","rootModel","getRoot","ErrorMessage","FormControl","component","FormLabel","FormGroup","FileSelector","location","setLocation","arg","setFileSource","RadioGroup","row","name","map","fileTypeName","FormControlLabel","key","checked","onClick","setFileType","control","Radio","label","labelPlacement","Checkbox","toggleHasColumnNameLine","NumberEditor","AssemblySelector","Button","variant","color","cancelButton","import","viewModel","spreadsheetModel","currentRowMenu","rowMenuPosition","setRowMenuPosition","rowMenuClose","rowNumber","undefined","rowSet","rows","menuItems","rowMenuItems","item","Menu","anchorEl","open","Boolean","onMenuItemClick","_event","callback","onClose","anchorOrigin","vertical","horizontal","cell","columnNumber","column","columns","dataType","DataCellReactComponent","spreadsheet","text","theme","rowNumCell","textAlign","border","palette","action","disabledBackground","position","whiteSpace","userSelect","fontWeight","display","flex","paddingRight","rowMenuButton","right","rowMenuButtonIcon","rowSelector","top","dataRowSelected","background","indigo","rowModel","hideRowSelection","columnDisplayOrder","rowClass","labelClick","toggleSelect","stopPropagation","preventDefault","isSelected","id","IconButton","event","currentTarget","ArrowDropDown","colNumber","CellData","cellsWithDerived","currentColumnMenu","setColumnMenu","columnMenuClose","sortMenuClick","descending","setSortColumns","dataTypeChoices","dataTypeTopLevelMenu","Map","forEach","dataTypeRecord","displayName","categoryName","entry","isCategory","subMenuItems","set","push","sortColumns","dataTypeName","dataTypeDisplayName","isSortingAscending","some","c","isSortingDescending","icon","SortIcon","PermDataSettingIcon","subMenu","iterMap","entries","record","typeName","CheckIcon","setColumnType","i","filter","hasFilter","FilterListIcon","filterControls","addBlankColumnFilter","sortIndicator","fontSize","SortIndicator","sortSpec","find","KeyboardArrowUpIcon","KeyboardArrowDownIcon","letterFor","n","String","fromCharCode","columnHead","mode","zIndex","columnButtonContainer","paper","height","topLeftCorner","minWidth","spacing","hasColumnNames","currentHoveredColumn","setHoveredColumn","Tooltip","title","placement","unselectAll","selectedCount","CropFreeIcon","onMouseOver","onMouseOut","Math","floor","RangeError","numToColName","style","ColumnMenu","getParent","dataTable","borderCollapse","overflow","textOverflow","emptyMessage","captionSide","DataTableBody","page","rowsPerPage","slice","DataRow","sortedFilteredRows","RowMenu","DataTableHeader","length","count","root","marginBottom","isLoaded","initialized","DataTable","LoadingEllipses","textFilterControlEndAdornment","marginRight","TextFilter","textFilter","textFilterValue","setTextFilterValue","stringToFind","debouncedTextFilter","useDebounce","setString","InputProps","startAdornment","InputAdornment","FilterIcon","endAdornment","ClearIcon","rowFullText","columnName","columnFilter","boxSizing","filterIcon","filterIconBg","tertiary","main","FilterOperations","filterModel","ReactComponent","columnDefinition","Error","Grid","direction","removeColumnFilter","CloseIcon","Typography","passingFiltersCount","selectedAndPassingFiltersCount","rowMessage","selectedAndNotPassingFiltersCount","statusBar","borderTop","paddingLeft","verticallyCenter","justifyContent","flexDirection","spacer","flexGrow","setPage","setRowsPerPage","RowCountMessage","TablePagination","rowsPerPageOptions","onPageChange","_","newPage","onRowsPerPageChange","header","contentArea","resizeHandle","bottom","left","hideFilterControls","hideVerticalResizeHandle","GlobalFilterControls","columnFilters","f","ColumnFilterControls","ImportWizard","importWizard","Spreadsheet","StatusBar","ResizeHandle","onDrag","resizeHeight"],"sourceRoot":""}