diff --git a/plugins/data-management/src/UCSCTrackHub/ucscTrackHub.ts b/plugins/data-management/src/UCSCTrackHub/ucscTrackHub.ts index 2135ea3e49..bdb840d26e 100644 --- a/plugins/data-management/src/UCSCTrackHub/ucscTrackHub.ts +++ b/plugins/data-management/src/UCSCTrackHub/ucscTrackHub.ts @@ -3,7 +3,7 @@ import { generateUnknownTrackConf } from '@jbrowse/core/util/tracks' import { makeLoc2, makeLoc, makeLocAlt } from './util' -import type { RaStanza, TrackDbFile } from '@gmod/ucsc-hub' +import type { RaStanza, TrackDbFile } from '@gmod/ucsc-hub' import type { FileLocation } from '@jbrowse/core/util' export function generateTracks({ diff --git a/plugins/variants/src/MultiLinearVariantDisplay/components/VariantDisplayComponent.tsx b/plugins/variants/src/MultiLinearVariantDisplay/components/VariantDisplayComponent.tsx index 66b6119fd5..fda5262107 100644 --- a/plugins/variants/src/MultiLinearVariantDisplay/components/VariantDisplayComponent.tsx +++ b/plugins/variants/src/MultiLinearVariantDisplay/components/VariantDisplayComponent.tsx @@ -70,7 +70,7 @@ const MultiLinearVariantDisplayComponent = observer(function (props: { ) .filter(([key]) => key !== 'color') .map(([key, value]) => `${key}:${value}`) - .join('\n')} + .join('
')} /> diff --git a/plugins/variants/src/MultiLinearVariantDisplay/model.ts b/plugins/variants/src/MultiLinearVariantDisplay/model.ts index fef99141a8..202eefbb1f 100644 --- a/plugins/variants/src/MultiLinearVariantDisplay/model.ts +++ b/plugins/variants/src/MultiLinearVariantDisplay/model.ts @@ -1,14 +1,11 @@ import { lazy } from 'react' -import { set1 } from '@jbrowse/core/ui/colors' import { getSession } from '@jbrowse/core/util' import { stopStopToken } from '@jbrowse/core/util/stopToken' import { linearBareDisplayStateModelFactory } from '@jbrowse/plugin-linear-genome-view' import deepEqual from 'fast-deep-equal' import { isAlive, types } from 'mobx-state-tree' -import { randomColor } from '../util' - import type { Source } from '../types' import type PluginManager from '@jbrowse/core/PluginManager' import type { AnyConfigurationSchemaType } from '@jbrowse/core/configuration' @@ -24,7 +21,7 @@ const ClusterDialog = lazy(() => import('../shared/ClusterDialog')) /** * #stateModel MultiLinearVariantDisplay * extends - * - [SharedVariantMixin](../sharedvariantmixin) + * - [LinearBareDisplay](../linearbaredisplay) */ export function stateModelFactory( pluginManager: PluginManager, @@ -160,15 +157,10 @@ export function stateModelFactory( self.sourcesVolatile?.map(s => [s.name, s]) || [], ) const iter = self.layout.length ? self.layout : self.sourcesVolatile - return iter - ?.map(s => ({ - ...sources[s.name], - ...s, - })) - .map((s, i) => ({ - ...s, - color: s.color || set1[i] || randomColor(s.name), - })) + return iter?.map(s => ({ + ...sources[s.name], + ...s, + })) }, })) diff --git a/plugins/variants/src/MultiLinearVariantMatrixDisplay/components/VariantDisplayComponent.tsx b/plugins/variants/src/MultiLinearVariantMatrixDisplay/components/VariantDisplayComponent.tsx index 842dfec511..7bed1bf5ac 100644 --- a/plugins/variants/src/MultiLinearVariantMatrixDisplay/components/VariantDisplayComponent.tsx +++ b/plugins/variants/src/MultiLinearVariantMatrixDisplay/components/VariantDisplayComponent.tsx @@ -70,7 +70,7 @@ const MultiLinearVariantMatrixDisplayComponent = observer(function (props: { ) .filter(([key]) => key !== 'color') .map(([key, value]) => `${key}:${value}`) - .join('\n')} + .join('
')} /> diff --git a/plugins/variants/src/MultiLinearVariantMatrixDisplay/model.ts b/plugins/variants/src/MultiLinearVariantMatrixDisplay/model.ts index e14fb93781..d570842d97 100644 --- a/plugins/variants/src/MultiLinearVariantMatrixDisplay/model.ts +++ b/plugins/variants/src/MultiLinearVariantMatrixDisplay/model.ts @@ -1,15 +1,12 @@ import { lazy } from 'react' import { ConfigurationReference } from '@jbrowse/core/configuration' -import { set1 } from '@jbrowse/core/ui/colors' import { getSession } from '@jbrowse/core/util' import { stopStopToken } from '@jbrowse/core/util/stopToken' import { linearBareDisplayStateModelFactory } from '@jbrowse/plugin-linear-genome-view' import deepEqual from 'fast-deep-equal' import { isAlive, types } from 'mobx-state-tree' -import { randomColor } from '../util' - import type { Source } from '../types' import type { AnyConfigurationSchemaType } from '@jbrowse/core/configuration' import type { Feature } from '@jbrowse/core/util' @@ -24,7 +21,7 @@ const ClusterDialog = lazy(() => import('../shared/ClusterDialog')) /** * #stateModel LinearVariantMatrixDisplay * extends - * - [LinearBasicDisplay](../linearbasicdisplay) + * - [LinearBareDisplay](../linearbaredisplay) */ export default function stateModelFactory( configSchema: AnyConfigurationSchemaType, @@ -142,15 +139,10 @@ export default function stateModelFactory( const sources = Object.fromEntries( self.sourcesVolatile?.map(s => [s.name, s]) || [], ) - return this.preSources - ?.map(s => ({ - ...sources[s.name], - ...s, - })) - .map((s, i) => ({ - ...s, - color: s.color || set1[i] || randomColor(s.name), - })) + return this.preSources?.map(s => ({ + ...sources[s.name], + ...s, + })) }, })) .views(self => { diff --git a/plugins/variants/src/StructuralVariantChordRenderer/Chord.tsx b/plugins/variants/src/StructuralVariantChordRenderer/Chord.tsx index cfb8a5f90a..baeffe10a5 100644 --- a/plugins/variants/src/StructuralVariantChordRenderer/Chord.tsx +++ b/plugins/variants/src/StructuralVariantChordRenderer/Chord.tsx @@ -5,9 +5,9 @@ import { readConfObject } from '@jbrowse/core/configuration' import { getStrokeProps, polarToCartesian } from '@jbrowse/core/util' import { observer } from 'mobx-react' +import type { AnyRegion, Block } from './types' import type { AnyConfigurationModel } from '@jbrowse/core/configuration' import type { Feature } from '@jbrowse/core/util' -import type { AnyRegion, Block } from './types' function bpToRadians(block: Block, pos: number) { const blockStart = block.region.elided ? 0 : block.region.start diff --git a/plugins/variants/src/VcfAdapter/VcfAdapter.ts b/plugins/variants/src/VcfAdapter/VcfAdapter.ts index 3ef1560bc0..a8a122c3f8 100644 --- a/plugins/variants/src/VcfAdapter/VcfAdapter.ts +++ b/plugins/variants/src/VcfAdapter/VcfAdapter.ts @@ -1,11 +1,10 @@ import IntervalTree from '@flatten-js/interval-tree' -import VCF from '@gmod/vcf' +import VcfParser from '@gmod/vcf' import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter' import { fetchAndMaybeUnzip } from '@jbrowse/core/util' import { openLocation } from '@jbrowse/core/util/io' import { ObservableCreate } from '@jbrowse/core/util/rxjs' -// local import VcfFeature from '../VcfFeature' import type { BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter' @@ -18,6 +17,7 @@ export default class VcfAdapter extends BaseFeatureDataAdapter { vcfFeatures?: Promise<{ header: string + parser: VcfParser intervalTreeMap: Record IntervalTree> }> @@ -29,8 +29,7 @@ export default class VcfAdapter extends BaseFeatureDataAdapter { } async getMetadata() { - const { header } = await this.setup() - const parser = new VCF({ header }) + const { parser } = await this.setup() return parser.getMetadata() } @@ -72,7 +71,7 @@ export default class VcfAdapter extends BaseFeatureDataAdapter { } const header = headerLines.join('\n') - const parser = new VCF({ header }) + const parser = new VcfParser({ header }) const intervalTreeMap = Object.fromEntries( Object.entries(featureMap).map(([refName, lines]) => [ @@ -99,6 +98,7 @@ export default class VcfAdapter extends BaseFeatureDataAdapter { return { header, + parser, intervalTreeMap, } } @@ -135,5 +135,26 @@ export default class VcfAdapter extends BaseFeatureDataAdapter { }, opts.stopToken) } + async getSources() { + const conf = this.getConf('samplesTsvLocation') + if (conf.uri === '' || conf.uri === '/path/to/samples.tsv') { + const { parser } = await this.setup() + return parser.samples.map(name => ({ + name, + })) + } else { + const txt = await openLocation(conf).readFile('utf8') + const lines = txt.split(/\n|\r\n|\r/) + const header = lines[0]!.split('\t') + return lines.slice(1).map(line => + Object.fromEntries( + line + .split('\t') + // force col 0 to be called name + .map((c, idx) => [idx === 0 ? 'name' : header[idx], c]), + ), + ) + } + } public freeResources(): void {} } diff --git a/plugins/variants/src/VcfAdapter/configSchema.ts b/plugins/variants/src/VcfAdapter/configSchema.ts index 2e964778ec..49ad5f0030 100644 --- a/plugins/variants/src/VcfAdapter/configSchema.ts +++ b/plugins/variants/src/VcfAdapter/configSchema.ts @@ -21,9 +21,14 @@ const VcfAdapter = ConfigurationSchema( /** * #slot */ - samples: { - type: 'frozen', - defaultValue: [], + samplesTsvLocation: { + type: 'fileLocation', + defaultValue: { + uri: '/path/to/samples.tsv', + description: + 'tsv with header like name\tpopulation\tetc. where the first column is required, and is the sample names', + locationType: 'UriLocation', + }, }, }, { explicitlyTyped: true }, diff --git a/plugins/variants/src/VcfTabixAdapter/VcfTabixAdapter.ts b/plugins/variants/src/VcfTabixAdapter/VcfTabixAdapter.ts index 17e57e4d77..394f6ec684 100644 --- a/plugins/variants/src/VcfTabixAdapter/VcfTabixAdapter.ts +++ b/plugins/variants/src/VcfTabixAdapter/VcfTabixAdapter.ts @@ -83,12 +83,26 @@ export default class VcfTabixAdapter extends BaseFeatureDataAdapter { observer.complete() }, opts.stopToken) } - async getSources() { - const { parser } = await this.configure() - return parser.samples.map(name => ({ - name, - })) + const conf = this.getConf('samplesTsvLocation') + if (conf.uri === '' || conf.uri === '/path/to/samples.tsv') { + const { parser } = await this.configure() + return parser.samples.map(name => ({ + name, + })) + } else { + const txt = await openLocation(conf).readFile('utf8') + const lines = txt.split(/\n|\r\n|\r/) + const header = lines[0]!.split('\t') + return lines.slice(1).map(line => + Object.fromEntries( + line + .split('\t') + // force col 0 to be called name + .map((c, idx) => [idx === 0 ? 'name' : header[idx], c]), + ), + ) + } } public freeResources(/* { region } */): void {} diff --git a/plugins/variants/src/VcfTabixAdapter/configSchema.ts b/plugins/variants/src/VcfTabixAdapter/configSchema.ts index b41d2cfcb5..beb08f05a6 100644 --- a/plugins/variants/src/VcfTabixAdapter/configSchema.ts +++ b/plugins/variants/src/VcfTabixAdapter/configSchema.ts @@ -39,9 +39,14 @@ const VcfTabixAdapter = ConfigurationSchema( /** * #slot */ - samples: { - type: 'frozen', - defaultValue: [], + samplesTsvLocation: { + type: 'fileLocation', + defaultValue: { + uri: '/path/to/samples.tsv', + description: + 'tsv with header like name\tpopulation\tetc. where the first column is required, and is the sample names', + locationType: 'UriLocation', + }, }, }, { explicitlyTyped: true }, diff --git a/plugins/variants/src/getMultiVariantFeaturesAutorun.ts b/plugins/variants/src/getMultiVariantFeaturesAutorun.ts index 134a1501e5..3119fc1f50 100644 --- a/plugins/variants/src/getMultiVariantFeaturesAutorun.ts +++ b/plugins/variants/src/getMultiVariantFeaturesAutorun.ts @@ -17,7 +17,7 @@ export interface Source { name: string color?: string group?: string - [key: string]: string | undefined + [key: string]: unknown } export function getMultiVariantFeaturesAutorun(self: { diff --git a/plugins/variants/src/shared/BulkEditPanel.tsx b/plugins/variants/src/shared/BulkEditPanel.tsx index 888d0c0e68..7a6816c249 100644 --- a/plugins/variants/src/shared/BulkEditPanel.tsx +++ b/plugins/variants/src/shared/BulkEditPanel.tsx @@ -1,9 +1,16 @@ import { useState } from 'react' import { ErrorMessage } from '@jbrowse/core/ui' -import { Button, TextField, Typography } from '@mui/material' +import { + Button, + DialogActions, + DialogContent, + TextField, + Typography, +} from '@mui/material' import { makeStyles } from 'tss-react/mui' -import { Source } from '../types' + +import type { Source } from '../types' const useStyles = makeStyles()({ textAreaFont: { @@ -12,127 +19,144 @@ const useStyles = makeStyles()({ }) export default function BulkEditPanel({ - setCurrLayout, + onClose, currLayout, }: { currLayout: Source[] - setCurrLayout: (arg: Source[]) => void + onClose: (arg?: Source[]) => void }) { const { classes } = useStyles() const [val, setVal] = useState('') const [error, setError] = useState() return ( -
- - Paste CSV or TSV. If a header column is present. First line is a header. - If a column called "name" is present, it uses that to connect to IDs in - the table, otherwise it uses the first column no. - - { - setVal(event.target.value) - }} - slotProps={{ - input: { - classes: { - input: classes.textAreaFont, - }, - }, - }} - /> - - - {error ? : null} -
+ onClose( + currLayout.map(record => ({ + ...record, + ...newData[record.name], + })), + ) + } else { + setError(new Error('No "name" column found on line 1')) + } + }} + > + Update rows + + + + + + ) } diff --git a/plugins/variants/src/shared/HelpfulTips.tsx b/plugins/variants/src/shared/HelpfulTips.tsx new file mode 100644 index 0000000000..bacb7e2e03 --- /dev/null +++ b/plugins/variants/src/shared/HelpfulTips.tsx @@ -0,0 +1,19 @@ +export default function HelpfulTips() { + return ( + <> + Helpful tips + + + ) +} diff --git a/plugins/variants/src/shared/RowPalettizer.tsx b/plugins/variants/src/shared/RowPalettizer.tsx index 8f257f93a0..936bd1f6f5 100644 --- a/plugins/variants/src/shared/RowPalettizer.tsx +++ b/plugins/variants/src/shared/RowPalettizer.tsx @@ -2,7 +2,8 @@ import { set1 } from '@jbrowse/core/ui/colors' import { Button } from '@mui/material' import { randomColor } from '../util' -import { Source } from '../types' + +import type { Source } from '../types' export default function RowPalettizer({ setCurrLayout, @@ -12,41 +13,42 @@ export default function RowPalettizer({ setCurrLayout: (arg: Source[]) => void }) { return ( -
+
+ Assign palette based on... {Object.keys(currLayout[0] ?? []) .filter(f => f !== 'name' && f !== 'color') - .map(r => { - return ( - - ) - })} + setCurrLayout( + currLayout.map(row => ({ + ...row, + color: ret[row[r] as string], + })), + ) + }} + > + {r} + + ))}
) } diff --git a/plugins/variants/src/shared/SetColorDialog.tsx b/plugins/variants/src/shared/SetColorDialog.tsx index 7448f75420..dceadf4bf6 100644 --- a/plugins/variants/src/shared/SetColorDialog.tsx +++ b/plugins/variants/src/shared/SetColorDialog.tsx @@ -5,10 +5,12 @@ import { useLocalStorage } from '@jbrowse/core/util' import { Button, DialogActions, DialogContent } from '@mui/material' import { makeStyles } from 'tss-react/mui' -import SourcesGrid from './SourcesGrid' import BulkEditPanel from './BulkEditPanel' +import HelpfulTips from './HelpfulTips' import RowPalettizer from './RowPalettizer' -import { Source } from '../types' +import SourcesGrid from './SourcesGrid' + +import type { Source } from '../types' const useStyles = makeStyles()({ content: { @@ -50,97 +52,89 @@ export default function SetColorDialog({ maxWidth="xl" title="Multi-variant color/arrangement editor" > - -
- - -
-
- {showTips ? : null} - - {showBulkEditor ? ( - - ) : null} - + {showBulkEditor ? ( + { + if (arg) { + setCurrLayout(arg) + } - -
- - - - - - - ) -} + /> + ) : ( + <> + +
+ + +
-function HelpfulTips() { - return ( - <> - Helpful tips -
    -
  • You can select rows in the table with the checkboxes
  • -
  • Multi-select is enabled with shift-click and control-click
  • -
  • The "Move selected items up/down" can re-arrange subtracks
  • -
  • Sorting the data grid itself can also re-arrange subtracks
  • -
  • Changes are applied when you hit Submit
  • -
  • You can click and drag the dialog box to move it on the screen
  • -
  • - Columns in the table can be hidden using a vertical '...' menu on the - right side of each column -
  • -
- + {showTips ? : null} +
+ + + +
+ + + + + + + )} + ) } diff --git a/plugins/wiggle/src/MultiLinearWiggleDisplay/util.ts b/plugins/wiggle/src/MultiLinearWiggleDisplay/util.ts new file mode 100644 index 0000000000..38d69f0c24 --- /dev/null +++ b/plugins/wiggle/src/MultiLinearWiggleDisplay/util.ts @@ -0,0 +1,8 @@ +export function randomColor(str: string) { + let sum = 0 + + for (let i = 0; i < str.length; i++) { + sum += str.charCodeAt(i) + } + return `hsl(${sum * 10}, 20%, 50%)` +} diff --git a/products/jbrowse-web/src/__snapshots__/jbrowseModel.test.ts.snap b/products/jbrowse-web/src/__snapshots__/jbrowseModel.test.ts.snap index e484959036..b9f5ae2e69 100644 --- a/products/jbrowse-web/src/__snapshots__/jbrowseModel.test.ts.snap +++ b/products/jbrowse-web/src/__snapshots__/jbrowseModel.test.ts.snap @@ -486,6 +486,10 @@ exports[`JBrowse model creates with non-empty snapshot 1`] = ` "uri": "volvox.dup.vcf.gz.tbi", }, }, + "samplesTsvLocation": { + "locationType": "UriLocation", + "uri": "/path/to/samples.tsv", + }, "type": "VcfTabixAdapter", "vcfGzLocation": { "locationType": "UriLocation", @@ -533,6 +537,10 @@ exports[`JBrowse model creates with non-empty snapshot 1`] = ` "uri": "volvox.dup.renamed.vcf.gz.tbi", }, }, + "samplesTsvLocation": { + "locationType": "UriLocation", + "uri": "/path/to/samples.tsv", + }, "type": "VcfTabixAdapter", "vcfGzLocation": { "locationType": "UriLocation", @@ -1193,6 +1201,10 @@ exports[`JBrowse model creates with non-empty snapshot 1`] = ` "uri": "volvox.test.vcf.gz.tbi", }, }, + "samplesTsvLocation": { + "locationType": "UriLocation", + "uri": "1000genomes.tsv", + }, "type": "VcfTabixAdapter", "vcfGzLocation": { "locationType": "UriLocation", @@ -2132,6 +2144,10 @@ exports[`JBrowse model creates with non-empty snapshot 1`] = ` "uri": "volvox.filtered.vcf.gz.tbi", }, }, + "samplesTsvLocation": { + "locationType": "UriLocation", + "uri": "/path/to/samples.tsv", + }, "type": "VcfTabixAdapter", "vcfGzLocation": { "locationType": "UriLocation", @@ -2178,6 +2194,10 @@ exports[`JBrowse model creates with non-empty snapshot 1`] = ` "uri": "volvox.filtered.vcf.gz.tbi", }, }, + "samplesTsvLocation": { + "locationType": "UriLocation", + "uri": "/path/to/samples.tsv", + }, "type": "VcfTabixAdapter", "vcfGzLocation": { "locationType": "UriLocation", @@ -2808,6 +2828,10 @@ exports[`JBrowse model creates with non-empty snapshot 1`] = ` "uri": "volvox.filtered.vcf.gz.tbi", }, }, + "samplesTsvLocation": { + "locationType": "UriLocation", + "uri": "/path/to/samples.tsv", + }, "type": "VcfTabixAdapter", "vcfGzLocation": { "locationType": "UriLocation", @@ -3138,6 +3162,10 @@ exports[`JBrowse model creates with non-empty snapshot 1`] = ` "uri": "volvox.inv.vcf.gz.tbi", }, }, + "samplesTsvLocation": { + "locationType": "UriLocation", + "uri": "/path/to/samples.tsv", + }, "type": "VcfTabixAdapter", "vcfGzLocation": { "locationType": "UriLocation", @@ -3355,6 +3383,10 @@ exports[`JBrowse model creates with non-empty snapshot 1`] = ` }, { "adapter": { + "samplesTsvLocation": { + "locationType": "UriLocation", + "uri": "/path/to/samples.tsv", + }, "type": "VcfAdapter", "vcfLocation": { "locationType": "UriLocation", @@ -3461,6 +3493,10 @@ exports[`JBrowse model creates with non-empty snapshot 1`] = ` }, { "adapter": { + "samplesTsvLocation": { + "locationType": "UriLocation", + "uri": "/path/to/samples.tsv", + }, "type": "VcfAdapter", "vcfLocation": { "locationType": "UriLocation", @@ -3501,6 +3537,10 @@ exports[`JBrowse model creates with non-empty snapshot 1`] = ` }, { "adapter": { + "samplesTsvLocation": { + "locationType": "UriLocation", + "uri": "/path/to/samples.tsv", + }, "type": "VcfAdapter", "vcfLocation": { "locationType": "UriLocation", diff --git a/products/jbrowse-web/src/tests/VcfMatrix.test.tsx b/products/jbrowse-web/src/tests/VcfMatrix.test.tsx new file mode 100644 index 0000000000..ed439f131c --- /dev/null +++ b/products/jbrowse-web/src/tests/VcfMatrix.test.tsx @@ -0,0 +1,37 @@ +import { fireEvent } from '@testing-library/react' + +import { createView, doBeforeEach, expectCanvasMatch, hts, setup } from './util' + +setup() + +beforeEach(() => { + doBeforeEach() +}) + +const delay = { timeout: 30000 } +const opts = [{}, delay] + +test('matrix', async () => { + const { view, findByTestId, findByText } = await createView() + await view.navToLocString('ctgA') + fireEvent.click(await findByTestId(hts('volvox_test_vcf'), ...opts)) + + fireEvent.click(await findByTestId('track_menu_icon', ...opts)) + fireEvent.click(await findByText('Display types', ...opts)) + fireEvent.click(await findByText('Multi-variant display (matrix)', ...opts)) + fireEvent.click(await findByText('Force load', ...opts)) + expectCanvasMatch(await findByTestId(/prerendered_canvas/, ...opts)) +}, 40000) + +test('regular', async () => { + const { view, findByTestId, findByText, findAllByTestId } = await createView() + + await view.navToLocString('ctgA') + fireEvent.click(await findByTestId(hts('volvox_test_vcf'), ...opts)) + + fireEvent.click(await findByTestId('track_menu_icon', ...opts)) + fireEvent.click(await findByText('Display types', ...opts)) + fireEvent.click(await findByText('Multi-variant display (regular)', ...opts)) + fireEvent.click(await findByText('Force load', ...opts)) + expectCanvasMatch((await findAllByTestId(/prerendered_canvas/, ...opts))[0]!) +}, 40000) diff --git a/products/jbrowse-web/src/tests/__image_snapshots__/vcf-matrix-test-tsx-matrix-1-snap.png b/products/jbrowse-web/src/tests/__image_snapshots__/vcf-matrix-test-tsx-matrix-1-snap.png new file mode 100644 index 0000000000..bc163a4bd5 Binary files /dev/null and b/products/jbrowse-web/src/tests/__image_snapshots__/vcf-matrix-test-tsx-matrix-1-snap.png differ diff --git a/products/jbrowse-web/src/tests/__image_snapshots__/vcf-matrix-test-tsx-regular-1-snap.png b/products/jbrowse-web/src/tests/__image_snapshots__/vcf-matrix-test-tsx-regular-1-snap.png new file mode 100644 index 0000000000..24876b6758 Binary files /dev/null and b/products/jbrowse-web/src/tests/__image_snapshots__/vcf-matrix-test-tsx-regular-1-snap.png differ diff --git a/test_data/volvox/1000genomes.tsv b/test_data/volvox/1000genomes.tsv new file mode 100644 index 0000000000..8ed02f4db2 --- /dev/null +++ b/test_data/volvox/1000genomes.tsv @@ -0,0 +1,1095 @@ +sample group letter +HG00096 resistant a +HG00097 resistant a +HG00099 resistant a +HG00100 resistant a +HG00101 resistant a +HG00102 resistant a +HG00103 resistant a +HG00104 resistant a +HG00106 resistant a +HG00108 resistant a +HG00109 resistant a +HG00110 resistant a +HG00111 resistant a +HG00112 resistant a +HG00113 resistant a +HG00114 resistant a +HG00116 resistant a +HG00117 resistant a +HG00118 resistant a +HG00119 resistant a +HG00120 resistant a +HG00121 resistant a +HG00122 resistant a +HG00123 resistant a +HG00124 resistant a +HG00125 resistant a +HG00126 resistant a +HG00127 resistant a +HG00128 resistant a +HG00129 resistant a +HG00130 resistant a +HG00131 resistant a +HG00133 resistant a +HG00134 resistant a +HG00135 resistant a +HG00136 resistant a +HG00137 resistant a +HG00138 resistant a +HG00139 resistant a +HG00140 resistant a +HG00141 resistant a +HG00142 resistant a +HG00143 resistant a +HG00146 resistant a +HG00148 resistant a +HG00149 resistant a +HG00150 resistant a +HG00151 resistant a +HG00152 resistant a +HG00154 resistant a +HG00155 resistant a +HG00156 resistant a +HG00158 resistant a +HG00159 resistant a +HG00160 resistant a +HG00171 resistant a +HG00173 resistant a +HG00174 resistant a +HG00176 resistant a +HG00177 resistant a +HG00178 resistant a +HG00179 resistant a +HG00180 resistant a +HG00182 resistant a +HG00183 resistant a +HG00185 resistant a +HG00186 resistant a +HG00187 resistant a +HG00188 resistant a +HG00189 resistant a +HG00190 resistant a +HG00231 resistant a +HG00232 resistant a +HG00233 resistant a +HG00234 resistant a +HG00235 resistant a +HG00236 resistant a +HG00237 resistant a +HG00238 resistant a +HG00239 resistant a +HG00240 resistant a +HG00242 resistant a +HG00243 resistant a +HG00244 resistant a +HG00245 resistant a +HG00246 resistant a +HG00247 resistant a +HG00249 resistant a +HG00250 resistant a +HG00251 resistant a +HG00252 resistant a +HG00253 resistant a +HG00254 resistant a +HG00255 resistant a +HG00256 resistant a +HG00257 resistant a +HG00258 resistant a +HG00259 resistant a +HG00260 resistant a +HG00261 resistant a +HG00262 resistant a +HG00263 resistant a +HG00264 resistant a +HG00265 resistant a +HG00266 resistant a +HG00267 resistant a +HG00268 resistant a +HG00269 resistant a +HG00270 resistant a +HG00271 resistant a +HG00272 resistant a +HG00273 resistant a +HG00274 resistant a +HG00275 resistant a +HG00276 resistant a +HG00277 resistant a +HG00278 resistant a +HG00280 resistant a +HG00281 resistant a +HG00282 resistant a +HG00284 resistant a +HG00285 resistant a +HG00306 resistant a +HG00309 resistant a +HG00310 resistant a +HG00311 resistant a +HG00312 resistant a +HG00313 resistant a +HG00315 resistant a +HG00318 resistant a +HG00319 resistant a +HG00320 resistant a +HG00321 resistant a +HG00323 resistant a +HG00324 resistant a +HG00325 resistant a +HG00326 resistant a +HG00327 resistant a +HG00328 resistant a +HG00329 resistant a +HG00330 resistant a +HG00331 resistant a +HG00332 resistant a +HG00334 resistant a +HG00335 resistant a +HG00336 resistant a +HG00337 resistant a +HG00338 resistant a +HG00339 resistant a +HG00341 resistant a +HG00342 resistant a +HG00343 resistant a +HG00344 resistant a +HG00345 resistant a +HG00346 resistant a +HG00349 resistant a +HG00350 resistant a +HG00351 resistant a +HG00353 resistant a +HG00355 resistant a +HG00356 resistant a +HG00357 resistant a +HG00358 resistant a +HG00359 resistant a +HG00360 resistant a +HG00361 resistant a +HG00362 resistant a +HG00364 resistant a +HG00366 resistant a +HG00367 resistant a +HG00369 resistant a +HG00372 resistant a +HG00373 resistant a +HG00375 resistant a +HG00376 resistant a +HG00377 resistant a +HG00378 resistant a +HG00381 resistant a +HG00382 resistant a +HG00383 resistant a +HG00384 resistant a +HG00403 resistant a +HG00404 resistant a +HG00406 resistant a +HG00407 resistant a +HG00418 resistant a +HG00419 resistant a +HG00421 resistant a +HG00422 resistant a +HG00427 resistant a +HG00428 resistant a +HG00436 resistant a +HG00437 resistant a +HG00442 resistant a +HG00443 resistant a +HG00445 resistant a +HG00446 resistant a +HG00448 resistant a +HG00449 resistant a +HG00451 resistant a +HG00452 resistant a +HG00457 resistant a +HG00458 resistant a +HG00463 resistant a +HG00464 resistant a +HG00472 resistant a +HG00473 resistant a +HG00475 resistant a +HG00476 resistant a +HG00478 resistant a +HG00479 resistant a +HG00500 resistant a +HG00501 resistant a +HG00512 resistant a +HG00513 resistant a +HG00524 resistant a +HG00525 resistant a +HG00530 resistant a +HG00531 resistant a +HG00533 resistant a +HG00534 resistant a +HG00536 resistant a +HG00537 resistant a +HG00542 resistant a +HG00543 resistant a +HG00553 resistant a +HG00554 resistant a +HG00556 resistant a +HG00557 resistant a +HG00559 resistant a +HG00560 resistant a +HG00565 resistant b +HG00566 resistant b +HG00577 resistant b +HG00578 resistant b +HG00580 resistant b +HG00581 resistant b +HG00583 resistant b +HG00584 resistant b +HG00589 resistant b +HG00590 resistant b +HG00592 resistant b +HG00593 resistant b +HG00595 resistant b +HG00596 resistant b +HG00607 resistant b +HG00608 resistant b +HG00610 resistant b +HG00611 resistant b +HG00613 resistant b +HG00614 resistant b +HG00619 resistant b +HG00620 resistant b +HG00625 resistant b +HG00626 resistant b +HG00628 resistant b +HG00629 resistant b +HG00634 resistant b +HG00635 resistant b +HG00637 resistant b +HG00638 resistant b +HG00640 resistant b +HG00641 resistant b +HG00650 resistant b +HG00651 resistant b +HG00653 resistant b +HG00654 resistant b +HG00656 resistant b +HG00657 resistant b +HG00662 resistant b +HG00663 resistant b +HG00671 resistant b +HG00672 resistant b +HG00683 resistant b +HG00684 resistant b +HG00689 resistant b +HG00690 resistant b +HG00692 resistant b +HG00693 resistant b +HG00698 resistant b +HG00699 resistant b +HG00701 resistant b +HG00702 resistant b +HG00704 resistant b +HG00705 resistant b +HG00707 resistant b +HG00708 resistant b +HG00731 resistant b +HG00732 resistant b +HG00734 resistant b +HG00736 resistant b +HG00737 resistant b +HG00740 resistant b +HG01047 resistant b +HG01048 resistant b +HG01051 resistant b +HG01052 resistant b +HG01055 resistant b +HG01060 resistant b +HG01061 resistant b +HG01066 resistant b +HG01067 resistant b +HG01069 resistant b +HG01070 resistant b +HG01072 resistant b +HG01073 resistant b +HG01075 resistant b +HG01079 resistant b +HG01080 resistant b +HG01082 resistant b +HG01083 resistant b +HG01085 resistant b +HG01095 resistant b +HG01097 resistant b +HG01098 resistant b +HG01101 resistant b +HG01102 resistant b +HG01104 resistant b +HG01105 resistant b +HG01107 resistant b +HG01108 resistant b +HG01112 resistant b +HG01113 resistant b +HG01124 resistant b +HG01125 resistant b +HG01133 resistant b +HG01134 resistant b +HG01136 resistant b +HG01137 resistant b +HG01140 resistant b +HG01148 resistant b +HG01149 resistant b +HG01167 resistant b +HG01168 resistant b +HG01170 resistant b +HG01171 resistant b +HG01173 resistant b +HG01174 resistant b +HG01176 resistant b +HG01183 resistant b +HG01187 resistant b +HG01188 resistant b +HG01190 resistant b +HG01191 resistant b +HG01197 resistant b +HG01198 resistant b +HG01204 resistant b +HG01250 resistant b +HG01251 resistant b +HG01257 resistant b +HG01259 resistant b +HG01271 resistant b +HG01272 resistant b +HG01274 resistant b +HG01275 resistant b +HG01277 resistant b +HG01278 resistant b +HG01334 resistant b +HG01342 resistant b +HG01344 resistant b +HG01345 resistant b +HG01350 resistant b +HG01351 resistant b +HG01353 resistant b +HG01354 resistant b +HG01356 resistant b +HG01357 resistant b +HG01359 resistant b +HG01360 resistant b +HG01365 resistant b +HG01366 resistant b +HG01374 resistant b +HG01375 resistant b +HG01377 resistant b +HG01378 resistant b +HG01383 resistant c +HG01384 resistant c +HG01389 resistant c +HG01390 resistant c +HG01437 resistant c +HG01440 resistant c +HG01441 resistant c +HG01455 resistant c +HG01456 resistant c +HG01461 resistant c +HG01462 resistant c +HG01465 resistant c +HG01488 resistant c +HG01489 resistant c +HG01491 resistant c +HG01492 resistant c +HG01494 resistant c +HG01495 resistant c +HG01497 resistant c +HG01498 resistant c +HG01515 resistant c +HG01516 resistant c +HG01518 resistant c +HG01519 resistant c +HG01521 resistant c +HG01522 resistant c +HG01550 resistant c +HG01551 resistant c +HG01617 resistant c +HG01618 resistant c +HG01619 resistant c +HG01620 resistant c +HG01623 resistant c +HG01624 resistant c +HG01625 resistant c +HG01626 resistant c +NA06984 resistant c +NA06986 resistant c +NA06989 resistant c +NA06994 resistant c +NA07000 resistant c +NA07037 resistant c +NA07048 resistant c +NA07051 resistant c +NA07056 resistant c +NA07346 resistant c +NA07347 resistant c +NA07357 resistant c +NA10847 resistant c +NA10851 resistant c +NA11829 resistant c +NA11830 resistant c +NA11831 resistant c +NA11843 resistant c +NA11892 resistant c +NA11893 resistant c +NA11894 resistant c +NA11918 resistant c +NA11919 resistant c +NA11920 resistant c +NA11930 resistant c +NA11931 resistant c +NA11932 resistant c +NA11933 resistant c +NA11992 resistant c +NA11993 resistant c +NA11994 resistant c +NA11995 resistant c +NA12003 resistant c +NA12004 resistant c +NA12006 resistant c +NA12043 resistant c +NA12044 resistant c +NA12045 resistant c +NA12046 resistant c +NA12058 resistant c +NA12144 resistant c +NA12154 resistant c +NA12155 resistant c +NA12249 resistant c +NA12272 resistant c +NA12273 resistant c +NA12275 resistant c +NA12282 resistant c +NA12283 resistant c +NA12286 resistant c +NA12287 resistant c +NA12340 resistant c +NA12341 resistant c +NA12342 resistant c +NA12347 resistant c +NA12348 resistant c +NA12383 resistant c +NA12399 resistant c +NA12400 resistant c +NA12413 resistant c +NA12489 resistant c +NA12546 resistant c +NA12716 resistant c +NA12717 resistant c +NA12718 resistant c +NA12748 resistant c +NA12749 resistant c +NA12750 resistant c +NA12751 resistant c +NA12761 resistant c +NA12763 resistant c +NA12775 resistant c +NA12777 resistant c +NA12778 resistant c +NA12812 resistant c +NA12814 resistant c +NA12815 resistant c +NA12827 resistant c +NA12829 resistant c +NA12830 resistant c +NA12842 resistant c +NA12843 resistant c +NA12872 resistant c +NA12873 resistant c +NA12874 resistant c +NA12889 resistant c +NA12890 resistant c +NA18486 resistant c +NA18487 resistant c +NA18489 resistant c +NA18498 resistant c +NA18499 resistant c +NA18501 resistant c +NA18502 resistant c +NA18504 resistant c +NA18505 resistant c +NA18507 resistant c +NA18508 resistant c +NA18510 resistant c +NA18511 nonresistant c +NA18516 nonresistant c +NA18517 nonresistant c +NA18519 nonresistant c +NA18520 nonresistant c +NA18522 nonresistant c +NA18523 nonresistant c +NA18525 nonresistant c +NA18526 nonresistant c +NA18527 nonresistant c +NA18528 nonresistant c +NA18530 nonresistant c +NA18532 nonresistant c +NA18534 nonresistant c +NA18535 nonresistant c +NA18536 nonresistant c +NA18537 nonresistant c +NA18538 nonresistant c +NA18539 nonresistant c +NA18541 nonresistant c +NA18542 nonresistant c +NA18543 nonresistant c +NA18544 nonresistant c +NA18545 nonresistant c +NA18546 nonresistant c +NA18547 nonresistant c +NA18548 nonresistant c +NA18549 nonresistant c +NA18550 nonresistant c +NA18552 nonresistant c +NA18553 nonresistant c +NA18555 nonresistant c +NA18557 nonresistant c +NA18558 nonresistant c +NA18559 nonresistant c +NA18560 nonresistant c +NA18561 nonresistant c +NA18562 nonresistant c +NA18563 nonresistant c +NA18564 nonresistant c +NA18565 nonresistant c +NA18566 nonresistant c +NA18567 nonresistant c +NA18570 nonresistant c +NA18571 nonresistant c +NA18572 nonresistant c +NA18573 nonresistant c +NA18574 nonresistant c +NA18576 nonresistant c +NA18577 nonresistant c +NA18579 nonresistant c +NA18582 nonresistant c +NA18592 nonresistant c +NA18593 nonresistant c +NA18595 nonresistant c +NA18596 nonresistant c +NA18597 nonresistant c +NA18599 nonresistant c +NA18602 nonresistant c +NA18603 nonresistant c +NA18605 nonresistant c +NA18606 nonresistant c +NA18608 nonresistant c +NA18609 nonresistant c +NA18610 nonresistant c +NA18611 nonresistant c +NA18612 nonresistant c +NA18613 nonresistant c +NA18614 nonresistant c +NA18615 nonresistant c +NA18616 nonresistant c +NA18617 nonresistant c +NA18618 nonresistant c +NA18619 nonresistant c +NA18620 nonresistant c +NA18621 nonresistant c +NA18622 nonresistant c +NA18623 nonresistant c +NA18624 nonresistant c +NA18626 nonresistant c +NA18627 nonresistant c +NA18628 nonresistant c +NA18630 nonresistant c +NA18631 nonresistant c +NA18632 nonresistant c +NA18633 nonresistant c +NA18634 nonresistant c +NA18635 nonresistant c +NA18636 nonresistant c +NA18637 nonresistant c +NA18638 nonresistant c +NA18639 nonresistant c +NA18640 nonresistant c +NA18641 nonresistant c +NA18642 nonresistant c +NA18643 nonresistant c +NA18645 nonresistant d +NA18647 nonresistant d +NA18740 nonresistant d +NA18745 nonresistant d +NA18747 nonresistant d +NA18748 nonresistant d +NA18749 nonresistant d +NA18757 nonresistant d +NA18853 nonresistant d +NA18856 nonresistant d +NA18858 nonresistant d +NA18861 nonresistant d +NA18867 nonresistant d +NA18868 nonresistant d +NA18870 nonresistant d +NA18871 nonresistant d +NA18873 nonresistant d +NA18874 nonresistant d +NA18907 nonresistant d +NA18908 nonresistant d +NA18909 nonresistant d +NA18910 nonresistant d +NA18912 nonresistant d +NA18916 nonresistant d +NA18917 nonresistant d +NA18923 nonresistant d +NA18924 nonresistant d +NA18933 nonresistant d +NA18934 nonresistant d +NA18939 nonresistant d +NA18940 nonresistant d +NA18941 nonresistant d +NA18942 nonresistant d +NA18943 nonresistant d +NA18944 nonresistant d +NA18945 nonresistant d +NA18946 nonresistant d +NA18947 nonresistant d +NA18948 nonresistant d +NA18949 nonresistant d +NA18950 nonresistant d +NA18951 nonresistant d +NA18952 nonresistant d +NA18953 nonresistant d +NA18954 nonresistant d +NA18956 nonresistant d +NA18957 nonresistant d +NA18959 nonresistant d +NA18960 nonresistant d +NA18961 nonresistant d +NA18962 nonresistant d +NA18963 nonresistant d +NA18964 nonresistant d +NA18965 nonresistant d +NA18966 nonresistant d +NA18968 nonresistant d +NA18971 nonresistant d +NA18973 nonresistant d +NA18974 nonresistant d +NA18975 nonresistant d +NA18976 nonresistant d +NA18977 nonresistant d +NA18978 nonresistant d +NA18980 nonresistant d +NA18981 nonresistant d +NA18982 nonresistant d +NA18983 nonresistant d +NA18984 nonresistant d +NA18985 nonresistant d +NA18986 nonresistant d +NA18987 nonresistant d +NA18988 nonresistant d +NA18989 nonresistant d +NA18990 nonresistant d +NA18992 nonresistant d +NA18994 nonresistant d +NA18995 nonresistant d +NA18998 nonresistant d +NA18999 nonresistant d +NA19000 nonresistant d +NA19002 nonresistant d +NA19003 nonresistant d +NA19004 nonresistant d +NA19005 nonresistant d +NA19007 nonresistant d +NA19009 nonresistant d +NA19010 nonresistant d +NA19012 nonresistant d +NA19020 nonresistant d +NA19028 nonresistant d +NA19035 nonresistant d +NA19036 nonresistant d +NA19038 nonresistant d +NA19041 nonresistant d +NA19044 nonresistant d +NA19046 nonresistant d +NA19054 nonresistant d +NA19055 nonresistant d +NA19056 nonresistant d +NA19057 nonresistant d +NA19058 nonresistant d +NA19059 nonresistant d +NA19060 nonresistant d +NA19062 nonresistant d +NA19063 nonresistant d +NA19064 nonresistant d +NA19065 nonresistant d +NA19066 nonresistant d +NA19067 nonresistant d +NA19068 nonresistant d +NA19070 nonresistant d +NA19072 nonresistant d +NA19074 nonresistant d +NA19075 nonresistant d +NA19076 nonresistant d +NA19077 nonresistant d +NA19078 nonresistant d +NA19079 nonresistant d +NA19080 nonresistant d +NA19081 nonresistant d +NA19082 nonresistant d +NA19083 nonresistant d +NA19084 nonresistant d +NA19085 nonresistant d +NA19087 nonresistant d +NA19088 nonresistant d +NA19093 nonresistant d +NA19095 nonresistant d +NA19096 nonresistant d +NA19098 nonresistant d +NA19099 nonresistant d +NA19102 nonresistant d +NA19107 nonresistant d +NA19108 nonresistant d +NA19113 nonresistant d +NA19114 nonresistant d +NA19116 nonresistant d +NA19117 nonresistant d +NA19118 nonresistant d +NA19119 nonresistant d +NA19121 nonresistant d +NA19129 nonresistant d +NA19130 nonresistant d +NA19131 nonresistant d +NA19137 nonresistant d +NA19138 nonresistant d +NA19146 nonresistant d +NA19147 nonresistant d +NA19149 nonresistant d +NA19150 nonresistant d +NA19152 nonresistant d +NA19160 nonresistant d +NA19171 nonresistant d +NA19172 nonresistant d +NA19175 nonresistant d +NA19185 nonresistant d +NA19189 nonresistant d +NA19190 nonresistant d +NA19197 nonresistant d +NA19198 nonresistant d +NA19200 nonresistant d +NA19204 nonresistant d +NA19207 nonresistant d +NA19209 nonresistant d +NA19213 nonresistant d +NA19222 nonresistant d +NA19223 nonresistant d +NA19225 nonresistant d +NA19235 nonresistant d +NA19236 nonresistant d +NA19247 nonresistant d +NA19248 nonresistant d +NA19256 nonresistant d +NA19257 nonresistant d +NA19307 nonresistant d +NA19308 nonresistant d +NA19309 nonresistant d +NA19310 nonresistant d +NA19311 nonresistant d +NA19312 nonresistant d +NA19313 nonresistant d +NA19315 nonresistant d +NA19316 nonresistant d +NA19317 nonresistant d +NA19318 nonresistant d +NA19319 nonresistant d +NA19321 nonresistant d +NA19324 nonresistant d +NA19327 nonresistant d +NA19328 nonresistant d +NA19331 nonresistant d +NA19332 nonresistant d +NA19334 nonresistant d +NA19338 nonresistant d +NA19346 nonresistant d +NA19347 nonresistant d +NA19350 nonresistant d +NA19351 nonresistant d +NA19352 nonresistant d +NA19355 nonresistant d +NA19359 nonresistant d +NA19360 nonresistant d +NA19371 nonresistant d +NA19372 nonresistant d +NA19373 nonresistant d +NA19374 nonresistant d +NA19375 nonresistant d +NA19376 nonresistant d +NA19377 nonresistant d +NA19379 nonresistant d +NA19380 nonresistant d +NA19381 nonresistant e +NA19382 nonresistant e +NA19383 nonresistant e +NA19384 nonresistant e +NA19385 nonresistant e +NA19390 nonresistant e +NA19391 nonresistant e +NA19393 nonresistant e +NA19394 nonresistant e +NA19395 nonresistant e +NA19396 nonresistant e +NA19397 nonresistant e +NA19398 nonresistant e +NA19399 nonresistant e +NA19401 nonresistant e +NA19403 nonresistant e +NA19404 nonresistant e +NA19428 nonresistant e +NA19429 nonresistant e +NA19430 nonresistant e +NA19431 nonresistant e +NA19434 nonresistant e +NA19435 nonresistant e +NA19436 nonresistant e +NA19437 nonresistant e +NA19438 nonresistant e +NA19439 nonresistant e +NA19440 nonresistant e +NA19443 nonresistant e +NA19444 nonresistant e +NA19445 nonresistant e +NA19446 nonresistant e +NA19448 nonresistant e +NA19449 nonresistant e +NA19451 nonresistant e +NA19452 nonresistant e +NA19453 nonresistant e +NA19455 nonresistant e +NA19456 nonresistant e +NA19457 nonresistant e +NA19461 nonresistant e +NA19462 nonresistant e +NA19463 nonresistant e +NA19466 nonresistant e +NA19467 nonresistant e +NA19468 nonresistant e +NA19469 nonresistant e +NA19470 nonresistant e +NA19471 nonresistant e +NA19472 nonresistant e +NA19473 nonresistant e +NA19474 nonresistant e +NA19625 nonresistant e +NA19648 nonresistant e +NA19651 nonresistant e +NA19652 nonresistant e +NA19654 nonresistant e +NA19655 nonresistant e +NA19657 nonresistant e +NA19660 nonresistant e +NA19661 nonresistant e +NA19663 nonresistant e +NA19664 nonresistant e +NA19672 nonresistant e +NA19675 nonresistant e +NA19676 nonresistant e +NA19678 nonresistant e +NA19679 nonresistant e +NA19681 nonresistant e +NA19682 nonresistant e +NA19684 nonresistant e +NA19685 nonresistant e +NA19700 nonresistant e +NA19701 nonresistant e +NA19703 nonresistant e +NA19704 nonresistant e +NA19707 nonresistant e +NA19711 nonresistant e +NA19712 nonresistant e +NA19713 nonresistant e +NA19716 nonresistant e +NA19717 nonresistant e +NA19719 nonresistant e +NA19720 nonresistant e +NA19722 nonresistant e +NA19723 nonresistant e +NA19725 nonresistant e +NA19726 nonresistant e +NA19728 nonresistant e +NA19729 nonresistant e +NA19731 nonresistant e +NA19732 nonresistant e +NA19734 nonresistant e +NA19735 nonresistant e +NA19737 nonresistant e +NA19738 nonresistant e +NA19740 nonresistant e +NA19741 nonresistant e +NA19746 nonresistant e +NA19747 nonresistant e +NA19749 nonresistant e +NA19750 nonresistant e +NA19752 nonresistant e +NA19753 nonresistant e +NA19755 nonresistant e +NA19756 nonresistant e +NA19758 nonresistant e +NA19759 nonresistant e +NA19761 nonresistant e +NA19762 nonresistant e +NA19764 nonresistant e +NA19770 nonresistant e +NA19771 nonresistant e +NA19773 nonresistant e +NA19774 nonresistant e +NA19776 nonresistant e +NA19777 nonresistant e +NA19779 nonresistant e +NA19780 nonresistant e +NA19782 nonresistant e +NA19783 nonresistant e +NA19785 nonresistant e +NA19786 nonresistant e +NA19788 nonresistant e +NA19789 nonresistant e +NA19794 nonresistant e +NA19795 nonresistant e +NA19818 nonresistant e +NA19819 nonresistant e +NA19834 nonresistant e +NA19835 nonresistant e +NA19900 nonresistant e +NA19901 nonresistant e +NA19904 nonresistant e +NA19908 nonresistant e +NA19909 nonresistant e +NA19914 nonresistant e +NA19916 nonresistant e +NA19917 nonresistant e +NA19920 nonresistant e +NA19921 nonresistant e +NA19922 nonresistant e +NA19923 nonresistant e +NA19982 nonresistant e +NA19984 nonresistant e +NA19985 nonresistant e +NA20126 nonresistant e +NA20127 nonresistant e +NA20276 nonresistant e +NA20278 nonresistant e +NA20281 nonresistant e +NA20282 nonresistant e +NA20287 nonresistant e +NA20289 nonresistant e +NA20291 nonresistant e +NA20294 nonresistant e +NA20296 nonresistant e +NA20298 nonresistant e +NA20299 nonresistant e +NA20314 nonresistant e +NA20317 nonresistant e +NA20322 nonresistant e +NA20332 nonresistant e +NA20334 nonresistant e +NA20336 nonresistant e +NA20339 nonresistant e +NA20340 nonresistant e +NA20341 nonresistant e +NA20342 nonresistant e +NA20344 nonresistant e +NA20346 nonresistant e +NA20348 nonresistant e +NA20351 nonresistant e +NA20356 nonresistant e +NA20357 nonresistant e +NA20359 nonresistant e +NA20363 nonresistant e +NA20412 nonresistant e +NA20414 nonresistant e +NA20502 nonresistant e +NA20503 nonresistant e +NA20504 nonresistant e +NA20505 nonresistant e +NA20506 nonresistant e +NA20507 nonresistant e +NA20508 nonresistant e +NA20509 nonresistant e +NA20510 nonresistant e +NA20512 nonresistant e +NA20513 nonresistant e +NA20515 nonresistant e +NA20516 nonresistant e +NA20517 nonresistant e +NA20518 nonresistant e +NA20519 nonresistant e +NA20520 nonresistant e +NA20521 nonresistant e +NA20522 nonresistant e +NA20524 nonresistant e +NA20525 nonresistant e +NA20527 nonresistant e +NA20528 nonresistant e +NA20529 nonresistant e +NA20530 nonresistant e +NA20531 nonresistant e +NA20532 nonresistant e +NA20533 nonresistant e +NA20534 nonresistant e +NA20535 nonresistant e +NA20536 nonresistant e +NA20537 nonresistant e +NA20538 nonresistant e +NA20539 nonresistant e +NA20540 nonresistant e +NA20541 nonresistant e +NA20542 nonresistant e +NA20543 nonresistant e +NA20544 nonresistant e +NA20581 nonresistant e +NA20582 nonresistant e +NA20585 nonresistant e +NA20586 nonresistant e +NA20588 nonresistant e +NA20589 nonresistant e +NA20752 nonresistant e +NA20753 nonresistant e +NA20754 nonresistant e +NA20755 nonresistant e +NA20756 nonresistant e +NA20757 nonresistant e +NA20758 nonresistant e +NA20759 nonresistant e +NA20760 nonresistant e +NA20761 nonresistant e +NA20765 nonresistant e +NA20766 nonresistant e +NA20768 nonresistant e +NA20769 nonresistant e +NA20770 nonresistant e +NA20771 nonresistant e +NA20772 nonresistant e +NA20773 nonresistant e +NA20774 nonresistant e +NA20775 nonresistant e +NA20778 nonresistant e +NA20783 nonresistant e +NA20785 nonresistant e +NA20786 nonresistant e +NA20787 nonresistant e +NA20790 nonresistant e +NA20792 nonresistant e +NA20795 nonresistant e +NA20796 nonresistant e +NA20797 nonresistant e +NA20798 nonresistant e +NA20799 nonresistant e +NA20800 nonresistant e +NA20801 nonresistant e +NA20802 nonresistant e +NA20803 nonresistant e +NA20804 nonresistant e +NA20805 nonresistant e +NA20806 nonresistant e +NA20807 nonresistant e +NA20808 nonresistant e +NA20809 nonresistant e +NA20810 nonresistant e +NA20811 nonresistant e +NA20812 nonresistant e +NA20813 nonresistant e +NA20814 nonresistant e +NA20815 nonresistant e +NA20816 nonresistant e +NA20818 nonresistant e +NA20819 nonresistant e +NA20826 nonresistant e +NA20828 nonresistant e diff --git a/test_data/volvox/config.json b/test_data/volvox/config.json index db228fdb93..7a0679410a 100644 --- a/test_data/volvox/config.json +++ b/test_data/volvox/config.json @@ -365,7 +365,9 @@ "type": "LinearPileupDisplay", "displayId": "volvox_cram_pileup_pileup", "height": 400, - "colorBy": { "type": "mappingQuality" } + "colorBy": { + "type": "mappingQuality" + } } ] }, @@ -514,7 +516,9 @@ "pileupDisplay": { "type": "LinearPileupDisplay", "displayId": "volvox_bam_altname_alignments_pileup", - "colorBy": { "type": "mappingQuality" } + "colorBy": { + "type": "mappingQuality" + } } } ] @@ -662,6 +666,10 @@ "uri": "volvox.test.vcf.gz", "locationType": "UriLocation" }, + "samplesTsvLocation": { + "uri": "1000genomes.tsv", + "locationType": "UriLocation" + }, "index": { "location": { "uri": "volvox.test.vcf.gz.tbi", @@ -2219,7 +2227,6 @@ }, "assemblyNames": ["volvox"] }, - { "type": "AlignmentsTrack", "trackId": "volvox-sorted.noref.cram", diff --git a/test_data/volvox/trix/volvox-rev-del_meta.json b/test_data/volvox/trix/volvox-rev-del_meta.json index 43a7f4ee10..82c17e6b0a 100644 --- a/test_data/volvox/trix/volvox-rev-del_meta.json +++ b/test_data/volvox/trix/volvox-rev-del_meta.json @@ -1,5 +1,5 @@ { - "dateCreated": "2024-10-14T14:42:44.193Z", + "dateCreated": "2025-01-24T16:05:19.959Z", "tracks": [ { "trackId": "volvox-rev-del-annotations", diff --git a/test_data/volvox/trix/volvox_meta.json b/test_data/volvox/trix/volvox_meta.json index d3af26483e..817a316977 100644 --- a/test_data/volvox/trix/volvox_meta.json +++ b/test_data/volvox/trix/volvox_meta.json @@ -1,5 +1,5 @@ { - "dateCreated": "2024-10-14T14:42:44.177Z", + "dateCreated": "2025-01-24T16:05:19.939Z", "tracks": [ { "trackId": "volvox_sv_test", @@ -47,6 +47,10 @@ "uri": "volvox.test.vcf.gz", "locationType": "UriLocation" }, + "samplesTsvLocation": { + "uri": "1000genomes.tsv", + "locationType": "UriLocation" + }, "index": { "location": { "uri": "volvox.test.vcf.gz.tbi", diff --git a/yarn.lock b/yarn.lock index ec17b949ed..ce44eed4ec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -635,7 +635,7 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.25.9", "@babel/code-frame@^7.26.0", "@babel/code-frame@^7.26.2", "@babel/code-frame@^7.8.3": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.25.9", "@babel/code-frame@^7.26.2", "@babel/code-frame@^7.8.3": version "7.26.2" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85" integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== @@ -644,33 +644,33 @@ js-tokens "^4.0.0" picocolors "^1.0.0" -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.26.0", "@babel/compat-data@^7.26.5": +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.26.5": version "7.26.5" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.5.tgz#df93ac37f4417854130e21d72c66ff3d4b897fc7" integrity sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg== "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.18.9", "@babel/core@^7.23.9", "@babel/core@^7.24.4", "@babel/core@^7.3.4": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.0.tgz#d78b6023cc8f3114ccf049eb219613f74a747b40" - integrity sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg== + version "7.26.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.7.tgz#0439347a183b97534d52811144d763a17f9d2b24" + integrity sha512-SRijHmF0PSPgLIBYlWnG0hyeJLwXE2CgpsXaMOrtt2yp9/86ALw6oUlj9KYuZ0JN07T4eBMVIW4li/9S1j2BGA== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.26.0" - "@babel/generator" "^7.26.0" - "@babel/helper-compilation-targets" "^7.25.9" + "@babel/code-frame" "^7.26.2" + "@babel/generator" "^7.26.5" + "@babel/helper-compilation-targets" "^7.26.5" "@babel/helper-module-transforms" "^7.26.0" - "@babel/helpers" "^7.26.0" - "@babel/parser" "^7.26.0" + "@babel/helpers" "^7.26.7" + "@babel/parser" "^7.26.7" "@babel/template" "^7.25.9" - "@babel/traverse" "^7.25.9" - "@babel/types" "^7.26.0" + "@babel/traverse" "^7.26.7" + "@babel/types" "^7.26.7" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.26.0", "@babel/generator@^7.26.5", "@babel/generator@^7.7.2": +"@babel/generator@^7.26.5", "@babel/generator@^7.7.2": version "7.26.5" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.5.tgz#e44d4ab3176bbcaf78a5725da5f1dc28802a9458" integrity sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw== @@ -688,7 +688,7 @@ dependencies: "@babel/types" "^7.25.9" -"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.25.9": +"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.25.9", "@babel/helper-compilation-targets@^7.26.5": version "7.26.5" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz#75d92bb8d8d51301c0d49e52a65c9a7fe94514d8" integrity sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA== @@ -819,20 +819,20 @@ "@babel/traverse" "^7.25.9" "@babel/types" "^7.25.9" -"@babel/helpers@^7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.26.0.tgz#30e621f1eba5aa45fe6f4868d2e9154d884119a4" - integrity sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw== +"@babel/helpers@^7.26.7": + version "7.26.7" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.26.7.tgz#fd1d2a7c431b6e39290277aacfd8367857c576a4" + integrity sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A== dependencies: "@babel/template" "^7.25.9" - "@babel/types" "^7.26.0" + "@babel/types" "^7.26.7" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.4", "@babel/parser@^7.25.9", "@babel/parser@^7.26.0", "@babel/parser@^7.26.5": - version "7.26.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.5.tgz#6fec9aebddef25ca57a935c86dbb915ae2da3e1f" - integrity sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.4", "@babel/parser@^7.25.9", "@babel/parser@^7.26.5", "@babel/parser@^7.26.7": + version "7.26.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.7.tgz#e114cd099e5f7d17b05368678da0fb9f69b3385c" + integrity sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w== dependencies: - "@babel/types" "^7.26.5" + "@babel/types" "^7.26.7" "@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.9": version "7.25.9" @@ -1045,7 +1045,7 @@ "@babel/helper-plugin-utils" "^7.25.9" "@babel/helper-remap-async-to-generator" "^7.25.9" -"@babel/plugin-transform-block-scoped-functions@^7.25.9": +"@babel/plugin-transform-block-scoped-functions@^7.26.5": version "7.26.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz#3dc4405d31ad1cbe45293aa57205a6e3b009d53e" integrity sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ== @@ -1132,7 +1132,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.25.9" -"@babel/plugin-transform-exponentiation-operator@^7.25.9": +"@babel/plugin-transform-exponentiation-operator@^7.26.3": version "7.26.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz#e29f01b6de302c7c2c794277a48f04a9ca7f03bc" integrity sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ== @@ -1199,7 +1199,7 @@ "@babel/helper-module-transforms" "^7.25.9" "@babel/helper-plugin-utils" "^7.25.9" -"@babel/plugin-transform-modules-commonjs@^7.25.9": +"@babel/plugin-transform-modules-commonjs@^7.25.9", "@babel/plugin-transform-modules-commonjs@^7.26.3": version "7.26.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz#8f011d44b20d02c3de44d8850d971d8497f981fb" integrity sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ== @@ -1240,7 +1240,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.25.9" -"@babel/plugin-transform-nullish-coalescing-operator@^7.25.9": +"@babel/plugin-transform-nullish-coalescing-operator@^7.26.6": version "7.26.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz#fbf6b3c92cb509e7b319ee46e3da89c5bedd31fe" integrity sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw== @@ -1402,17 +1402,17 @@ dependencies: "@babel/helper-plugin-utils" "^7.25.9" -"@babel/plugin-transform-typeof-symbol@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz#224ba48a92869ddbf81f9b4a5f1204bbf5a2bc4b" - integrity sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA== +"@babel/plugin-transform-typeof-symbol@^7.26.7": + version "7.26.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.26.7.tgz#d0e33acd9223744c1e857dbd6fa17bd0a3786937" + integrity sha512-jfoTXXZTgGg36BmhqT3cAYK5qkmqvJpvNrPhaK/52Vgjhw4Rq29s9UqpWWV0D6yuRmgiFH/BUVlkl96zJWqnaw== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.26.5" "@babel/plugin-transform-typescript@^7.25.9": - version "7.26.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.26.5.tgz#6d9b48e8ee40a45a3ed12ebc013449fdf261714c" - integrity sha512-GJhPO0y8SD5EYVCy2Zr+9dSZcEgaSmq5BLR0Oc25TOEhC+ba49vUAGZFjy8v79z9E1mdldq4x9d1xgh4L1d5dQ== + version "7.26.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.26.7.tgz#64339515ea3eff610160f62499c3ef437d0ac83d" + integrity sha512-5cJurntg+AT+cgelGP9Bt788DKiAw9gIMSMU2NJrLAilnj0m8WZWUNZPSLOmadYsujHutpgElO+50foX+ib/Wg== dependencies: "@babel/helper-annotate-as-pure" "^7.25.9" "@babel/helper-create-class-features-plugin" "^7.25.9" @@ -1452,13 +1452,13 @@ "@babel/helper-plugin-utils" "^7.25.9" "@babel/preset-env@^7.16.4": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.26.0.tgz#30e5c6bc1bcc54865bff0c5a30f6d4ccdc7fa8b1" - integrity sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw== + version "7.26.7" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.26.7.tgz#24d38e211f4570b8d806337035cc3ae798e0c36d" + integrity sha512-Ycg2tnXwixaXOVb29rana8HNPgLVBof8qqtNQ9LE22IoyZboQbGSxI6ZySMdW3K5nAe6gu35IaJefUJflhUFTQ== dependencies: - "@babel/compat-data" "^7.26.0" - "@babel/helper-compilation-targets" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/compat-data" "^7.26.5" + "@babel/helper-compilation-targets" "^7.26.5" + "@babel/helper-plugin-utils" "^7.26.5" "@babel/helper-validator-option" "^7.25.9" "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.25.9" "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.25.9" @@ -1472,7 +1472,7 @@ "@babel/plugin-transform-arrow-functions" "^7.25.9" "@babel/plugin-transform-async-generator-functions" "^7.25.9" "@babel/plugin-transform-async-to-generator" "^7.25.9" - "@babel/plugin-transform-block-scoped-functions" "^7.25.9" + "@babel/plugin-transform-block-scoped-functions" "^7.26.5" "@babel/plugin-transform-block-scoping" "^7.25.9" "@babel/plugin-transform-class-properties" "^7.25.9" "@babel/plugin-transform-class-static-block" "^7.26.0" @@ -1483,7 +1483,7 @@ "@babel/plugin-transform-duplicate-keys" "^7.25.9" "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.25.9" "@babel/plugin-transform-dynamic-import" "^7.25.9" - "@babel/plugin-transform-exponentiation-operator" "^7.25.9" + "@babel/plugin-transform-exponentiation-operator" "^7.26.3" "@babel/plugin-transform-export-namespace-from" "^7.25.9" "@babel/plugin-transform-for-of" "^7.25.9" "@babel/plugin-transform-function-name" "^7.25.9" @@ -1492,12 +1492,12 @@ "@babel/plugin-transform-logical-assignment-operators" "^7.25.9" "@babel/plugin-transform-member-expression-literals" "^7.25.9" "@babel/plugin-transform-modules-amd" "^7.25.9" - "@babel/plugin-transform-modules-commonjs" "^7.25.9" + "@babel/plugin-transform-modules-commonjs" "^7.26.3" "@babel/plugin-transform-modules-systemjs" "^7.25.9" "@babel/plugin-transform-modules-umd" "^7.25.9" "@babel/plugin-transform-named-capturing-groups-regex" "^7.25.9" "@babel/plugin-transform-new-target" "^7.25.9" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.25.9" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.26.6" "@babel/plugin-transform-numeric-separator" "^7.25.9" "@babel/plugin-transform-object-rest-spread" "^7.25.9" "@babel/plugin-transform-object-super" "^7.25.9" @@ -1514,7 +1514,7 @@ "@babel/plugin-transform-spread" "^7.25.9" "@babel/plugin-transform-sticky-regex" "^7.25.9" "@babel/plugin-transform-template-literals" "^7.25.9" - "@babel/plugin-transform-typeof-symbol" "^7.25.9" + "@babel/plugin-transform-typeof-symbol" "^7.26.7" "@babel/plugin-transform-unicode-escapes" "^7.25.9" "@babel/plugin-transform-unicode-property-regex" "^7.25.9" "@babel/plugin-transform-unicode-regex" "^7.25.9" @@ -1559,9 +1559,9 @@ "@babel/plugin-transform-typescript" "^7.25.9" "@babel/runtime@^7.0.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.8", "@babel/runtime@^7.17.9", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.6", "@babel/runtime@^7.25.7", "@babel/runtime@^7.26.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.0.tgz#8600c2f595f277c60815256418b85356a65173c1" - integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw== + version "7.26.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.7.tgz#f4e7fe527cd710f8dc0618610b61b4b060c3c341" + integrity sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ== dependencies: regenerator-runtime "^0.14.0" @@ -1574,23 +1574,23 @@ "@babel/parser" "^7.25.9" "@babel/types" "^7.25.9" -"@babel/traverse@^7.18.9", "@babel/traverse@^7.25.9", "@babel/traverse@^7.26.5": - version "7.26.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.26.5.tgz#6d0be3e772ff786456c1a37538208286f6e79021" - integrity sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ== +"@babel/traverse@^7.18.9", "@babel/traverse@^7.25.9", "@babel/traverse@^7.26.5", "@babel/traverse@^7.26.7": + version "7.26.7" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.26.7.tgz#99a0a136f6a75e7fb8b0a1ace421e0b25994b8bb" + integrity sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA== dependencies: "@babel/code-frame" "^7.26.2" "@babel/generator" "^7.26.5" - "@babel/parser" "^7.26.5" + "@babel/parser" "^7.26.7" "@babel/template" "^7.25.9" - "@babel/types" "^7.26.5" + "@babel/types" "^7.26.7" debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.7", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.26.5", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.26.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.5.tgz#7a1e1c01d28e26d1fe7f8ec9567b3b92b9d07747" - integrity sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg== +"@babel/types@^7.0.0", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.7", "@babel/types@^7.25.9", "@babel/types@^7.26.5", "@babel/types@^7.26.7", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.26.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.7.tgz#5e2b89c0768e874d4d061961f3a5a153d71dc17a" + integrity sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg== dependencies: "@babel/helper-string-parser" "^7.25.9" "@babel/helper-validator-identifier" "^7.25.9" @@ -3057,21 +3057,21 @@ robust-predicates "^3.0.2" "@mui/x-data-grid@^7.0.0": - version "7.24.0" - resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-7.24.0.tgz#8940dbfe4f39e2a22ddb5bad0565ccfe913a7e63" - integrity sha512-goYTKDp+e+dXw7E+WndWUhWXTjX3aTqN8W2dCKhXnmE9Gu8dFwG6Azl7GK9l2m5YHGuqYmpWqcSG9etLdwYaVg== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-7.24.1.tgz#7da2e1f2d54582a159babd51dd86dcc86ec23a33" + integrity sha512-4sYTbMwsDotuTd2Cwa2JGTPXPWQs8RGJvocAKnIsNOzNdZNMrikE//HO35snriK8s4dauAApY7RVbeisjpVT+A== dependencies: "@babel/runtime" "^7.25.7" "@mui/utils" "^5.16.6 || ^6.0.0" - "@mui/x-internals" "7.24.0" + "@mui/x-internals" "7.24.1" clsx "^2.1.1" prop-types "^15.8.1" reselect "^5.1.1" -"@mui/x-internals@7.24.0": - version "7.24.0" - resolved "https://registry.yarnpkg.com/@mui/x-internals/-/x-internals-7.24.0.tgz#5d09d3d5d113e2be6ec2af49192024859951d348" - integrity sha512-lYa/XLltxNMY8YAFDopIHrXda2EAoqMCilyGMuPMz+WTG+b+StlUKqtj8cgFPQ/sa5dQ2fR7R3KJdjLREKUrlQ== +"@mui/x-internals@7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@mui/x-internals/-/x-internals-7.24.1.tgz#34d63f13db0ac4c24033735a11efabe0b9f0fb73" + integrity sha512-9BvJzpLJnS9BDphvkiv6v0QOLxbnu8jhwcexFjtCQ2ZyxtVuVsWzGZ2npT9sGOil7+eaFDmWnJtea/tgrPvSwQ== dependencies: "@babel/runtime" "^7.25.7" "@mui/utils" "^5.16.6 || ^6.0.0" @@ -15942,9 +15942,9 @@ typescript-eslint@^8.0.1: integrity sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw== typescript@^5.8.0-dev.20241213: - version "5.8.0-dev.20250123" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.0-dev.20250123.tgz#ff705c58a431fd5943766be94547d657cea20026" - integrity sha512-JBWpq7b3i6Y+6wScnTq4nGC+ozHLU9cbW5ZbZaHiJ1EMV+hxMX04MX0984J5T0CXrjgf9xJULXKMWc6tP2AoSQ== + version "5.8.0-dev.20250124" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.0-dev.20250124.tgz#7c48b514adf70255f0be96dcb7921a7a7fac7435" + integrity sha512-QLwmxSR4EPey4SQ554+uTUJrnp0dDhmgVmeYCbx8hiUjKqIqCVcuiQtK73JRvb/8NE4Y/gvhTlkYjD5Qj4zDAw== uglify-js@^3.1.4: version "3.19.3"