diff --git a/plugins/alignments/src/LinearPileupDisplay/SharedLinearPileupDisplayMixin.ts b/plugins/alignments/src/LinearPileupDisplay/SharedLinearPileupDisplayMixin.ts
index 29768f80a0..a7746ff5a4 100644
--- a/plugins/alignments/src/LinearPileupDisplay/SharedLinearPileupDisplayMixin.ts
+++ b/plugins/alignments/src/LinearPileupDisplay/SharedLinearPileupDisplayMixin.ts
@@ -98,6 +98,10 @@ export function SharedLinearPileupDisplayMixin(
* #property
*/
jexlFilters: types.optional(types.array(types.string), []),
+ /**
+ * #property
+ */
+ hideSmallIndelsSetting: types.maybe(types.boolean),
}),
)
.volatile(() => ({
@@ -130,10 +134,20 @@ export function SharedLinearPileupDisplayMixin(
},
}))
.views(self => ({
+ /**
+ * #getter
+ */
get autorunReady() {
const view = getContainingView(self) as LGV
return view.initialized && self.statsReadyAndRegionNotTooLarge
},
+
+ /**
+ * #getter
+ */
+ get hideSmallIndels() {
+ return self.hideSmallIndelsSetting
+ },
}))
.actions(self => ({
/**
@@ -265,6 +279,13 @@ export function SharedLinearPileupDisplayMixin(
setJexlFilters(filters: string[]) {
self.jexlFilters = cast(filters)
},
+
+ /**
+ * #action
+ */
+ setHideSmallIndels(arg: boolean) {
+ self.hideSmallIndelsSetting = arg
+ },
}))
.views(self => ({
@@ -272,17 +293,21 @@ export function SharedLinearPileupDisplayMixin(
* #getter
*/
get rendererConfig() {
- const { featureHeight, noSpacing, trackMaxHeight, rendererTypeName } =
- self
+ const {
+ featureHeight: height,
+ noSpacing,
+ hideSmallIndels,
+ trackMaxHeight: maxHeight,
+ rendererTypeName,
+ } = self
const configBlob = getConf(self, ['renderers', rendererTypeName]) || {}
return self.rendererType.configSchema.create(
{
...configBlob,
- ...(featureHeight !== undefined ? { height: featureHeight } : {}),
+ ...(hideSmallIndels !== undefined ? { hideSmallIndels } : {}),
+ ...(height !== undefined ? { height } : {}),
...(noSpacing !== undefined ? { noSpacing } : {}),
- ...(trackMaxHeight !== undefined
- ? { maxHeight: trackMaxHeight }
- : {}),
+ ...(maxHeight !== undefined ? { maxHeight } : {}),
},
getEnv(self),
)
@@ -561,6 +586,15 @@ export function SharedLinearPileupDisplayMixin(
},
],
},
+ {
+ label: 'Hide small indels (<10bp)',
+ priority: -1,
+ type: 'checkbox',
+ checked: self.hideSmallIndels,
+ onClick: () => {
+ self.setHideSmallIndels(!self.hideSmallIndels)
+ },
+ },
{
label: 'Set max height...',
priority: -1,
diff --git a/plugins/alignments/src/LinearPileupDisplay/model.ts b/plugins/alignments/src/LinearPileupDisplay/model.ts
index d374811f9a..07a47e580d 100644
--- a/plugins/alignments/src/LinearPileupDisplay/model.ts
+++ b/plugins/alignments/src/LinearPileupDisplay/model.ts
@@ -208,12 +208,14 @@ function stateModelFactory(configSchema: AnyConfigurationSchemaType) {
trackMaxHeight,
mismatchAlpha,
rendererTypeName,
+ hideSmallIndels,
} = self
const configBlob = getConf(self, ['renderers', rendererTypeName]) || {}
return self.rendererType.configSchema.create(
{
...configBlob,
...(featureHeight !== undefined ? { height: featureHeight } : {}),
+ ...(hideSmallIndels !== undefined ? { hideSmallIndels } : {}),
...(noSpacing !== undefined ? { noSpacing } : {}),
...(mismatchAlpha !== undefined ? { mismatchAlpha } : {}),
...(trackMaxHeight !== undefined
diff --git a/plugins/alignments/src/PileupRenderer/configSchema.ts b/plugins/alignments/src/PileupRenderer/configSchema.ts
index 046922a7cd..65c3a23356 100644
--- a/plugins/alignments/src/PileupRenderer/configSchema.ts
+++ b/plugins/alignments/src/PileupRenderer/configSchema.ts
@@ -52,6 +52,15 @@ const PileupRenderer = ConfigurationSchema(
'the minimum width in px for a pileup mismatch feature. use for increasing/decreasing mismatch marker widths when zoomed out, e.g. 0 or 1',
defaultValue: 1,
},
+ /**
+ * #slot
+ */
+ hideSmallIndels: {
+ type: 'boolean',
+ description:
+ 'Hides small indels, sometimes occurring in long read sequencing',
+ defaultValue: false,
+ },
/**
* #slot
*/
diff --git a/plugins/alignments/src/PileupRenderer/makeImageData.ts b/plugins/alignments/src/PileupRenderer/makeImageData.ts
index c9626af43d..ffb0b2b31b 100644
--- a/plugins/alignments/src/PileupRenderer/makeImageData.ts
+++ b/plugins/alignments/src/PileupRenderer/makeImageData.ts
@@ -46,6 +46,7 @@ export function makeImageData({
config,
'largeInsertionIndicatorScale',
)
+ const hideSmallIndels = readConfObject(config, 'hideSmallIndels') as boolean
const defaultColor = readConfObject(config, 'color') === '#f0f'
const theme = createJBrowseTheme(configTheme)
const colorForBase = getColorBaseMap(theme)
@@ -76,6 +77,7 @@ export function makeImageData({
ctx,
feat,
renderArgs,
+ hideSmallIndels,
mismatchAlpha,
drawSNPsMuted,
drawIndels,
diff --git a/plugins/alignments/src/PileupRenderer/renderMismatches.ts b/plugins/alignments/src/PileupRenderer/renderMismatches.ts
index 2192575cbb..c54818c7d3 100644
--- a/plugins/alignments/src/PileupRenderer/renderMismatches.ts
+++ b/plugins/alignments/src/PileupRenderer/renderMismatches.ts
@@ -18,6 +18,7 @@ export function renderMismatches({
charHeight,
colorForBase,
contrastForBase,
+ hideSmallIndels,
canvasWidth,
drawSNPsMuted,
drawIndels = true,
@@ -32,6 +33,7 @@ export function renderMismatches({
drawSNPsMuted?: boolean
minSubfeatureWidth: number
largeInsertionIndicatorScale: number
+ hideSmallIndels: boolean
charWidth: number
charHeight: number
canvasWidth: number
@@ -100,32 +102,41 @@ export function renderMismatches({
)
}
} else if (mismatch.type === 'deletion' && drawIndels) {
- fillRect(
- ctx,
- leftPx,
- topPx,
- Math.abs(leftPx - rightPx),
- heightPx,
- canvasWidth,
- colorForBase.deletion,
- )
- const txt = `${mismatch.length}`
- const rwidth = measureText(txt, 10)
- if (widthPx >= rwidth && heightPx >= heightLim) {
- ctx.fillStyle = contrastForBase.deletion!
- ctx.fillText(txt, (leftPx + rightPx) / 2 - rwidth / 2, topPx + heightPx)
+ const len = mismatch.length
+ if (!hideSmallIndels || len >= 10) {
+ fillRect(
+ ctx,
+ leftPx,
+ topPx,
+ Math.abs(leftPx - rightPx),
+ heightPx,
+ canvasWidth,
+ colorForBase.deletion,
+ )
+ const txt = `${mismatch.length}`
+ const rwidth = measureText(txt, 10)
+ if (widthPx >= rwidth && heightPx >= heightLim) {
+ ctx.fillStyle = contrastForBase.deletion!
+ ctx.fillText(
+ txt,
+ (leftPx + rightPx) / 2 - rwidth / 2,
+ topPx + heightPx,
+ )
+ }
}
} else if (mismatch.type === 'insertion' && drawIndels) {
const pos = leftPx + extraHorizontallyFlippedOffset
const len = +mismatch.base || mismatch.length
const insW = Math.max(minSubfeatureWidth, Math.min(1.2, 1 / bpPerPx))
if (len < 10) {
- fillRect(ctx, pos, topPx, insW, heightPx, canvasWidth, 'purple')
- if (1 / bpPerPx >= charWidth && heightPx >= heightLim) {
- const l = Math.round(pos - insW)
- fillRect(ctx, l, topPx, insW * 3, 1, canvasWidth)
- fillRect(ctx, l, topPx + heightPx - 1, insW * 3, 1, canvasWidth)
- ctx.fillText(`(${mismatch.base})`, pos + 3, topPx + heightPx)
+ if (!hideSmallIndels) {
+ fillRect(ctx, pos, topPx, insW, heightPx, canvasWidth, 'purple')
+ if (1 / bpPerPx >= charWidth && heightPx >= heightLim) {
+ const l = Math.round(pos - insW)
+ fillRect(ctx, l, topPx, insW * 3, 1, canvasWidth)
+ fillRect(ctx, l, topPx + heightPx - 1, insW * 3, 1, canvasWidth)
+ ctx.fillText(`(${mismatch.base})`, pos + 3, topPx + heightPx)
+ }
}
}
} else if (mismatch.type === 'hardclip' || mismatch.type === 'softclip') {
diff --git a/plugins/config/src/ConfigurationEditorWidget/components/__snapshots__/ConfigurationEditor.test.tsx.snap b/plugins/config/src/ConfigurationEditorWidget/components/__snapshots__/ConfigurationEditor.test.tsx.snap
index 8a7c8a54b5..6f4fd75ee9 100644
--- a/plugins/config/src/ConfigurationEditorWidget/components/__snapshots__/ConfigurationEditor.test.tsx.snap
+++ b/plugins/config/src/ConfigurationEditorWidget/components/__snapshots__/ConfigurationEditor.test.tsx.snap
@@ -1422,6 +1422,56 @@ exports[`renders with defaults of the PileupTrack schema 1`] = `
class="css-lulcq7-slotModeSwitch"
/>
+
>; }, { error: unknown; loadingP: Promise
| undefined; volatileRegions: BasicRegion[] | undefined; refNameAliases: RefNameAliases | undefined; lowerCaseRefNameAliases: RefNameAliases | undefined; cytobands: Feature[] | undefined; } & ... 5 m...
+IArrayType>; }, { error: unknown; loadingP: Promise; volatileRegions: BasicRegion[]; refNameAliases: RefNameAliases; lowerCaseRefNameAliases: RefNameAliases; cytobands: Feature[]; } & ... 5 more ... & { ...; }, _NotCustomized, _NotCustomized>>
// code
assemblies: types.array(assemblyFactory(conf, pm))
```
@@ -40,7 +40,7 @@ assemblies: types.array(assemblyFactory(conf, pm))
```js
// type
-Record | undefined; volatileRegions: BasicRegion[] | undefined; refNameAliases: RefNameAliases | undefined; lowerCaseRefNameAliases: RefNameAliases | undefined; cytobands: Feature[] | undefined; } & ... 6 more ... & IStateTr...
+Record; volatileRegions: BasicRegion[]; refNameAliases: RefNameAliases; lowerCaseRefNameAliases: RefNameAliases; cytobands: Feature[]; } & ... 6 more ... & IStateTreeNode<...>>
```
#### getter: assemblyNamesList
@@ -66,7 +66,7 @@ session.temporaryAssemblies
```js
// type signature
-get: (asmName: string) => { configuration: any; } & NonEmptyObject & { error: unknown; loadingP: Promise | undefined; volatileRegions: BasicRegion[] | undefined; refNameAliases: RefNameAliases | undefined; lowerCaseRefNameAliases: RefNameAliases | undefined; cytobands: Feature[] | undefined; } & ... 6 more ... & IS...
+get: (asmName: string) => { configuration: any; } & NonEmptyObject & { error: unknown; loadingP: Promise; volatileRegions: BasicRegion[]; refNameAliases: RefNameAliases; lowerCaseRefNameAliases: RefNameAliases; cytobands: Feature[]; } & ... 6 more ... & IStateTreeNode<...>
```
#### method: waitForAssembly
@@ -76,7 +76,7 @@ with regions loaded
```js
// type signature
-waitForAssembly: (assemblyName: string) => Promise<{ configuration: any; } & NonEmptyObject & { error: unknown; loadingP: Promise | undefined; volatileRegions: BasicRegion[] | undefined; refNameAliases: RefNameAliases | undefined; lowerCaseRefNameAliases: RefNameAliases | undefined; cytobands: Feature[] | undefined; } & ... 6 ...
+waitForAssembly: (assemblyName: string) => Promise<{ configuration: any; } & NonEmptyObject & { error: unknown; loadingP: Promise; volatileRegions: BasicRegion[]; refNameAliases: RefNameAliases; lowerCaseRefNameAliases: RefNameAliases; cytobands: Feature[]; } & ... 6 more ... & IStateTreeNode<...>>
```
#### method: getRefNameMapForAdapter
@@ -110,7 +110,7 @@ directly
```js
// type signature
-removeAssembly: (asm: { configuration: any; } & NonEmptyObject & { error: unknown; loadingP: Promise | undefined; volatileRegions: BasicRegion[] | undefined; refNameAliases: RefNameAliases | undefined; lowerCaseRefNameAliases: RefNameAliases | undefined; cytobands: Feature[] | undefined; } & ... 6 more ... & IStateTreeNode<.....
+removeAssembly: (asm: { configuration: any; } & NonEmptyObject & { error: unknown; loadingP: Promise; volatileRegions: BasicRegion[]; refNameAliases: RefNameAliases; lowerCaseRefNameAliases: RefNameAliases; cytobands: Feature[]; } & ... 6 more ... & IStateTreeNode<...>) => void
```
#### action: addAssembly
diff --git a/website/docs/models/BaseChordDisplay.md b/website/docs/models/BaseChordDisplay.md
index 3808fbc64f..f9c39656e2 100644
--- a/website/docs/models/BaseChordDisplay.md
+++ b/website/docs/models/BaseChordDisplay.md
@@ -117,7 +117,7 @@ renderStarted: () => void
```js
// type signature
-renderSuccess: ({ message, data, reactElement, html, renderingComponent, }: { message?: string; data?: any; html?: string; reactElement?: React.ReactElement; renderingComponent?: React.ComponentType; }) => void
+renderSuccess: ({ message, data, reactElement, html, renderingComponent, }: { message?: string; data?: any; html?: string; reactElement?: ReactElement>; renderingComponent?: React.ComponentType; }) => void
```
#### action: renderError
diff --git a/website/docs/models/BaseDisplay.md b/website/docs/models/BaseDisplay.md
index 5cc8d55cfc..f8bf9c15cc 100644
--- a/website/docs/models/BaseDisplay.md
+++ b/website/docs/models/BaseDisplay.md
@@ -55,7 +55,7 @@ rpcDriverName: types.maybe(types.string)
```js
// type
-React.FC<{ model: { id: string; type: string; rpcDriverName: string; } & NonEmptyObject & { rendererTypeName: string; error: unknown; message: string | undefined; } & IStateTreeNode; type: ISimpleType<...>; rpcDriverName: IMaybe<...>; }, { ...; }, _NotCustomized, _NotCustomized>>...
+React.FC<{ model: { id: string; type: string; rpcDriverName: string; } & NonEmptyObject & { rendererTypeName: string; error: unknown; message: string; } & IStateTreeNode, [...]>; type: ISimpleType<...>; rpcDriverName: IMaybe<...>; }, { ...; }, _NotCustomized, _NotC...
```
#### getter: DisplayBlurb
diff --git a/website/docs/models/BaseFeatureWidget.md b/website/docs/models/BaseFeatureWidget.md
index a223630876..79ea9cef95 100644
--- a/website/docs/models/BaseFeatureWidget.md
+++ b/website/docs/models/BaseFeatureWidget.md
@@ -125,7 +125,7 @@ maxDepth: types.maybe(types.number)
```js
// type signature
-IOptionalIType, [...]>
+IOptionalIType, [...]>
// code
sequenceFeatureDetails: types.optional(SequenceFeatureDetailsF(), {})
```
diff --git a/website/docs/models/BaseRootModel.md b/website/docs/models/BaseRootModel.md
index 4d46392e7b..5f1f4b2e84 100644
--- a/website/docs/models/BaseRootModel.md
+++ b/website/docs/models/BaseRootModel.md
@@ -60,7 +60,7 @@ sessionPath: types.optional(types.string, '')
```js
// type signature
-IOptionalIType>; }, { error: unknown; loadingP: Promise | undefined; volatileRegions: BasicRegion[] | undefined; refNameAliases: RefNameAliases | undefined; lowerCaseRefNameAliases: RefNameAliases | undefined; cytob...
+IOptionalIType>; }, { error: unknown; loadingP: Promise; volatileRegions: BasicRegion[]; refNameAliases: RefNameAliases; lowerCaseRefNameAliases: RefNameAliases; cytobands: Feature[]; } & ... 5 more ... & { ...; }, ...
// code
assemblyManager: types.optional(
assemblyManagerFactory(assemblyConfigSchema, pluginManager),
diff --git a/website/docs/models/BaseWebSession.md b/website/docs/models/BaseWebSession.md
index f27d40770a..d9be338671 100644
--- a/website/docs/models/BaseWebSession.md
+++ b/website/docs/models/BaseWebSession.md
@@ -125,7 +125,7 @@ TextSearchManager
```js
// type
-{ assemblies: IMSTArray>; }, { error: unknown; loadingP: Promise | undefined; volatileRegions: BasicRegion[] | undefined; refNameAliases: RefNameAliases | undefined; lowerCaseRefNameAliases: RefNameAliases | undefined; cytobands: Feature[] | undefined...
+{ assemblies: IMSTArray>; }, { error: unknown; loadingP: Promise; volatileRegions: BasicRegion[]; refNameAliases: RefNameAliases; lowerCaseRefNameAliases: RefNameAliases; cytobands: Feature[]; } & ... 5 more ... & { ...; }, _NotCustomized, _NotCustomi...
```
#### getter: savedSessionMetadata
diff --git a/website/docs/models/DotplotDisplay.md b/website/docs/models/DotplotDisplay.md
index f1416a2be3..e2c1ba7b78 100644
--- a/website/docs/models/DotplotDisplay.md
+++ b/website/docs/models/DotplotDisplay.md
@@ -85,7 +85,7 @@ setMessage: (messageText: string) => void
```js
// type signature
-setRendered: (args?: { data: any; reactElement: React.ReactElement; renderingComponent: React.Component; }) => void
+setRendered: (args?: { data: any; reactElement: ReactElement>; renderingComponent: Component<{}, {}, any>; }) => void
```
#### action: setError
diff --git a/website/docs/models/FacetedModel.md b/website/docs/models/FacetedModel.md
index 2664172c34..969b25268c 100644
--- a/website/docs/models/FacetedModel.md
+++ b/website/docs/models/FacetedModel.md
@@ -88,7 +88,7 @@ panelWidth: types.optional(types.number, () =>
```js
// type
-{ readonly id: string; readonly conf: { [x: string]: any; } & NonEmptyObject & { setSubschema(slotName: string, data: Record): Record | ({ ...; } & ... 2 more ... & IStateTreeNode<...>); } & IStateTreeNode<...>; ... 4 more ...; readonly metadata: Record; }[]
+{ readonly id: string; readonly conf: { [x: string]: any; } & NonEmptyObject & { setSubschema(slotName: string, data: Record): Record | ({ ...; } & ... 2 more ... & IStateTreeNode<...>); } & IStateTreeNode<...>; ... 4 more ...; readonly metadata: Record<...>; }[]
```
#### getter: filteredNonMetadataKeys
@@ -116,7 +116,7 @@ any[]
```js
// type
-{ readonly id: string; readonly conf: { [x: string]: any; } & NonEmptyObject & { setSubschema(slotName: string, data: Record): Record | ({ ...; } & ... 2 more ... & IStateTreeNode<...>); } & IStateTreeNode<...>; ... 4 more ...; readonly metadata: Record; }[]
+{ readonly id: string; readonly conf: { [x: string]: any; } & NonEmptyObject & { setSubschema(slotName: string, data: Record): Record | ({ ...; } & ... 2 more ... & IStateTreeNode<...>); } & IStateTreeNode<...>; ... 4 more ...; readonly metadata: Record<...>; }[]
```
### FacetedModel - Actions
diff --git a/website/docs/models/JBrowseDesktopSessionModel.md b/website/docs/models/JBrowseDesktopSessionModel.md
index ff60f21ce8..1926fce6af 100644
--- a/website/docs/models/JBrowseDesktopSessionModel.md
+++ b/website/docs/models/JBrowseDesktopSessionModel.md
@@ -70,7 +70,7 @@ any
```js
// type
-{ undoIdx: number; targetPath: string; } & NonEmptyObject & { history: unknown[]; notTrackingUndo: boolean; } & { readonly canUndo: boolean; readonly canRedo: boolean; } & { ...; } & IStateTreeNode<...>
+{ undoIdx: number; targetPath: string; } & NonEmptyObject & { history: unknown[]; notTrackingUndo: boolean; } & { readonly canUndo: boolean; readonly canRedo: boolean; } & { stopTrackingUndo(): void; ... 5 more ...; redo(): void; } & IStateTreeNode<...>
```
#### getter: menus
@@ -84,7 +84,7 @@ any
```js
// type
-{ assemblies: IMSTArray>; }, { error: unknown; loadingP: Promise | undefined; volatileRegions: BasicRegion[] | undefined; refNameAliases: RefNameAliases | undefined; lowerCaseRefNameAliases: RefNameAliases | undefined; cytobands: Feature[] | undefined...
+{ assemblies: IMSTArray>; }, { error: unknown; loadingP: Promise; volatileRegions: BasicRegion[]; refNameAliases: RefNameAliases; lowerCaseRefNameAliases: RefNameAliases; cytobands: Feature[]; } & ... 5 more ... & { ...; }, _NotCustomized, _NotCustomi...
```
### JBrowseDesktopSessionModel - Methods
diff --git a/website/docs/models/JBrowseReactCircularGenomeViewRootModel.md b/website/docs/models/JBrowseReactCircularGenomeViewRootModel.md
index 733f8f992f..7a107aadca 100644
--- a/website/docs/models/JBrowseReactCircularGenomeViewRootModel.md
+++ b/website/docs/models/JBrowseReactCircularGenomeViewRootModel.md
@@ -44,7 +44,7 @@ session: Session
```js
// type signature
-IOptionalIType>; }, { error: unknown; loadingP: Promise | undefined; volatileRegions: BasicRegion[] | undefined; refNameAliases: RefNameAliases | undefined; lowerCaseRefNameAliases: RefNameAliases | undefined; cytob...
+IOptionalIType>; }, { error: unknown; loadingP: Promise; volatileRegions: BasicRegion[]; refNameAliases: RefNameAliases; lowerCaseRefNameAliases: RefNameAliases; cytobands: Feature[]; } & ... 5 more ... & { ...; }, ...
// code
assemblyManager: types.optional(assemblyManagerType, {})
```
diff --git a/website/docs/models/JBrowseReactLinearGenomeViewRootModel.md b/website/docs/models/JBrowseReactLinearGenomeViewRootModel.md
index a95f0585b1..ec8e4bd68b 100644
--- a/website/docs/models/JBrowseReactLinearGenomeViewRootModel.md
+++ b/website/docs/models/JBrowseReactLinearGenomeViewRootModel.md
@@ -44,7 +44,7 @@ session: Session
```js
// type signature
-IOptionalIType>; }, { error: unknown; loadingP: Promise | undefined; volatileRegions: BasicRegion[] | undefined; refNameAliases: RefNameAliases | undefined; lowerCaseRefNameAliases: RefNameAliases | undefined; cytob...
+IOptionalIType>; }, { error: unknown; loadingP: Promise; volatileRegions: BasicRegion[]; refNameAliases: RefNameAliases; lowerCaseRefNameAliases: RefNameAliases; cytobands: Feature[]; } & ... 5 more ... & { ...; }, ...
// code
assemblyManager: types.optional(AssemblyManager, {})
```
diff --git a/website/docs/models/JBrowseReactLinearGenomeViewSessionModel.md b/website/docs/models/JBrowseReactLinearGenomeViewSessionModel.md
index f8309b882d..e5a9199e8d 100644
--- a/website/docs/models/JBrowseReactLinearGenomeViewSessionModel.md
+++ b/website/docs/models/JBrowseReactLinearGenomeViewSessionModel.md
@@ -130,5 +130,5 @@ getTrackActionMenuItems: (config: any) => { label: string; onClick: () => void;
```js
// type signature
-addView: (typeName: string, initialState?: {}) => { id: string; displayName: string; minimized: boolean; type: string; offsetPx: number; bpPerPx: number; displayedRegions: Region[] & IStateTreeNode>; ... 11 more ...; showTrackOutlines: boolean; } & ... 18 more ... & IStateTreeNode<...>
+addView: (typeName: string, initialState?: {}) => { id: string; displayName: string; minimized: boolean; type: string; offsetPx: number; bpPerPx: number; displayedRegions: Region[] & IStateTreeNode, [...]>>; ... 11 more ...; showTrackOutlines: boolean; } & ... 18 more ... & IStateTreeNode<...>
```
diff --git a/website/docs/models/LinearGenomeView.md b/website/docs/models/LinearGenomeView.md
index e6f74246b7..40578fc5a6 100644
--- a/website/docs/models/LinearGenomeView.md
+++ b/website/docs/models/LinearGenomeView.md
@@ -930,7 +930,7 @@ is returned. Will pop up a search dialog if multiple results are returned
```js
// type signature
-navToSearchString: ({ input, assembly, }: { input: string; assembly: { configuration: any; } & NonEmptyObject & { error: unknown; loadingP: Promise | undefined; volatileRegions: BasicRegion[] | undefined; refNameAliases: RefNameAliases | undefined; lowerCaseRefNameAliases: RefNameAliases | undefined; cytobands: Feature[] | undef...
+navToSearchString: ({ input, assembly, }: { input: string; assembly: { configuration: any; } & NonEmptyObject & { error: unknown; loadingP: Promise; volatileRegions: BasicRegion[]; refNameAliases: RefNameAliases; lowerCaseRefNameAliases: RefNameAliases; cytobands: Feature[]; } & ... 6 more ... & IStateTreeNode<...>; }) => Promis...
```
#### action: navToLocations
diff --git a/website/docs/models/LinearReadArcsDisplay.md b/website/docs/models/LinearReadArcsDisplay.md
index 697ed5cf49..4628e3c8d6 100644
--- a/website/docs/models/LinearReadArcsDisplay.md
+++ b/website/docs/models/LinearReadArcsDisplay.md
@@ -153,7 +153,7 @@ renderProps: () => any
```js
// type signature
-trackMenuItems: () => (MenuDivider | MenuSubHeader | NormalMenuItem | CheckboxMenuItem | RadioMenuItem | SubMenuItem | { ...; } | { ...; })[]
+trackMenuItems: () => (MenuDivider | MenuSubHeader | NormalMenuItem | CheckboxMenuItem | RadioMenuItem | SubMenuItem | { ...; } | { ...; } | { ...; } | { ...; })[]
```
#### method: renderSvg
diff --git a/website/docs/models/LinearReadCloudDisplay.md b/website/docs/models/LinearReadCloudDisplay.md
index 2e64443df0..41efb81cc3 100644
--- a/website/docs/models/LinearReadCloudDisplay.md
+++ b/website/docs/models/LinearReadCloudDisplay.md
@@ -95,7 +95,7 @@ any
```js
// type signature
-trackMenuItems: () => (MenuDivider | MenuSubHeader | NormalMenuItem | CheckboxMenuItem | RadioMenuItem | SubMenuItem | { ...; })[]
+trackMenuItems: () => (MenuDivider | MenuSubHeader | NormalMenuItem | CheckboxMenuItem | RadioMenuItem | SubMenuItem | { ...; } | { ...; } | { ...; })[]
```
#### method: renderSvg
diff --git a/website/docs/models/LinearSyntenyView.md b/website/docs/models/LinearSyntenyView.md
index c76ad5f072..b2dcd10285 100644
--- a/website/docs/models/LinearSyntenyView.md
+++ b/website/docs/models/LinearSyntenyView.md
@@ -62,14 +62,14 @@ overwhelming
```js
// type signature
-headerMenuItems: () => (MenuDivider | MenuSubHeader | NormalMenuItem | CheckboxMenuItem | RadioMenuItem | SubMenuItem | { ...; } | { ...; } | { ...; })[]
+headerMenuItems: () => (MenuDivider | MenuSubHeader | NormalMenuItem | CheckboxMenuItem | RadioMenuItem | SubMenuItem | { ...; } | { ...; } | { ...; } | { ...; })[]
```
#### method: menuItems
```js
// type signature
-menuItems: () => MenuItem[]
+menuItems: () => (MenuDivider | MenuSubHeader | NormalMenuItem | CheckboxMenuItem | RadioMenuItem | SubMenuItem | { ...; })[]
```
### LinearSyntenyView - Actions
diff --git a/website/docs/models/SharedLinearPileupDisplayMixin.md b/website/docs/models/SharedLinearPileupDisplayMixin.md
index 0f735d140f..3eb633d8ad 100644
--- a/website/docs/models/SharedLinearPileupDisplayMixin.md
+++ b/website/docs/models/SharedLinearPileupDisplayMixin.md
@@ -98,6 +98,15 @@ IOptionalIType>, [undefined]>
jexlFilters: types.optional(types.array(types.string), [])
```
+#### property: hideIndelsSetting
+
+```js
+// type signature
+IMaybe>
+// code
+hideIndelsSetting: types.maybe(types.boolean)
+```
+
### SharedLinearPileupDisplayMixin - Getters
#### getter: colorBy
@@ -197,7 +206,7 @@ colorSchemeSubMenuItems: () => { label: string; onClick: () => void; }[]
```js
// type signature
-trackMenuItems: () => MenuItem[]
+trackMenuItems: () => (MenuDivider | MenuSubHeader | NormalMenuItem | CheckboxMenuItem | RadioMenuItem | SubMenuItem | { ...; })[]
```
### SharedLinearPileupDisplayMixin - Actions
diff --git a/yarn.lock b/yarn.lock
index ebae1ef8b7..3aab3112a9 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3067,9 +3067,9 @@
robust-predicates "^3.0.2"
"@mui/x-data-grid@^7.0.0":
- version "7.23.2"
- resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-7.23.2.tgz#3cc82c609a56b02dfe0317d74ab21d0e69dbe964"
- integrity sha512-Xhm4Bh+WiU5MSLFIZ8mE1egHoS0xPEVlwvjYvairPIkxNPubB7f+gtLkuAJ2+m+BYbgO7yDte+Pp7dfjkU+vOA==
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-7.23.3.tgz#35b30c8aaf2afee43aaa9cd6273e8478dad2c863"
+ integrity sha512-EiM5kut6N/0o0iEYx8A7M3fJqknAa1kcPvGhlX3hH50ERLDeuJaqoKzvRYLBbYKWydHIc+0hHIFcK5oQTXLenw==
dependencies:
"@babel/runtime" "^7.25.7"
"@mui/utils" "^5.16.6 || ^6.0.0"
@@ -6541,9 +6541,9 @@ caniuse-api@^3.0.0:
lodash.uniq "^4.5.0"
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001688:
- version "1.0.30001689"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001689.tgz#67ca960dd5f443903e19949aeacc9d28f6e10910"
- integrity sha512-CmeR2VBycfa+5/jOfnp/NpWPGd06nf1XYiefUvhXFfZE4GkRc9jv+eGPS4nT558WS/8lYCzV8SlANCIPvbWP1g==
+ version "1.0.30001690"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz#f2d15e3aaf8e18f76b2b8c1481abde063b8104c8"
+ integrity sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==
canvas-sequencer@^3.1.0:
version "3.1.0"
@@ -7556,11 +7556,11 @@ data-view-byte-length@^1.0.1:
is-data-view "^1.0.1"
data-view-byte-offset@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a"
- integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz#068307f9b71ab76dbbe10291389e020856606191"
+ integrity sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==
dependencies:
- call-bind "^1.0.6"
+ call-bound "^1.0.2"
es-errors "^1.3.0"
is-data-view "^1.0.1"
@@ -10561,7 +10561,7 @@ is-text-path@^1.0.1:
dependencies:
text-extensions "^1.0.0"
-is-typed-array@^1.1.13, is-typed-array@^1.1.14, is-typed-array@^1.1.3:
+is-typed-array@^1.1.13, is-typed-array@^1.1.14, is-typed-array@^1.1.15, is-typed-array@^1.1.3:
version "1.1.15"
resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.15.tgz#4bfb4a45b61cee83a5a46fba778e4e8d59c0ce0b"
integrity sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==
@@ -11881,9 +11881,9 @@ material-ui-popup-state@^5.0.0:
prop-types "^15.7.2"
math-intrinsics@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.0.0.tgz#4e04bf87c85aa51e90d078dac2252b4eb5260817"
- integrity sha512-4MqMiKP90ybymYvsut0CH2g4XWbfLtmlCkXmtmdcDCxNB+mQcu1w/1+L/VD7vi/PSv7X2JYV7SCcR+jiPXnQtA==
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9"
+ integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==
md5@^2.2.1:
version "2.3.0"
@@ -12756,11 +12756,12 @@ object.groupby@^1.0.3:
es-abstract "^1.23.2"
object.values@^1.1.6, object.values@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b"
- integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.1.tgz#deed520a50809ff7f75a7cfd4bc64c7a038c6216"
+ integrity sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==
dependencies:
- call-bind "^1.0.7"
+ call-bind "^1.0.8"
+ call-bound "^1.0.3"
define-properties "^1.2.1"
es-object-atoms "^1.0.0"
@@ -14162,7 +14163,7 @@ redent@^3.0.0:
indent-string "^4.0.0"
strip-indent "^3.0.0"
-reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.8:
+reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.8, reflect.getprototypeof@^1.0.9:
version "1.0.9"
resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.9.tgz#c905f3386008de95a62315f3ea8630404be19e2f"
integrity sha512-r0Ay04Snci87djAsI4U+WNRcSw5S4pOH7qFjd/veA5gC7TbqESR3tcj28ia95L/fYUDw11JKP7uqUKUAfVvV5Q==
@@ -15833,17 +15834,17 @@ typed-array-byte-length@^1.0.1:
is-typed-array "^1.1.14"
typed-array-byte-offset@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.3.tgz#3fa9f22567700cc86aaf86a1e7176f74b59600f2"
- integrity sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz#ae3698b8ec91a8ab945016108aef00d5bff12355"
+ integrity sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==
dependencies:
available-typed-arrays "^1.0.7"
- call-bind "^1.0.7"
+ call-bind "^1.0.8"
for-each "^0.3.3"
- gopd "^1.0.1"
- has-proto "^1.0.3"
- is-typed-array "^1.1.13"
- reflect.getprototypeof "^1.0.6"
+ gopd "^1.2.0"
+ has-proto "^1.2.0"
+ is-typed-array "^1.1.15"
+ reflect.getprototypeof "^1.0.9"
typed-array-length@^1.0.7:
version "1.0.7"
@@ -15877,9 +15878,9 @@ typescript-eslint@^8.0.1:
integrity sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==
typescript@^5.8.0-dev.20241213:
- version "5.8.0-dev.20241218"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.0-dev.20241218.tgz#64a079b5a8d30e1c6d6e21f23279d5a45f3efd6a"
- integrity sha512-MIBYE1oO/aI9B3oluGzDOqTYMmPhGK1Xwvjk4LOCu+1CeKQMtPF3pLC9n/VcznkI0n6k7MQ4S8a8VJdbOEE96A==
+ version "5.8.0-dev.20241219"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.0-dev.20241219.tgz#f8b6e407ef6ea1f5cacf1459f2564c05cf9dd466"
+ integrity sha512-PTUvyFVjlvuUrbfji2OvYDaTN499msaIy6xkbjllGZyBmvr8N7QdGq7Q8ZwD2BatydUQXBQzSSVIqcn2Px8YFA==
uglify-js@^3.1.4:
version "3.19.3"