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" /> +
+
+
+ +

+ Hides small indels, sometimes occurring in long read sequencing +

+
+
+
+
>; }, { 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"