@jbrowse/plugin-alignments 2.18.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +1 -2
- package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +20 -13
- package/dist/AlignmentsFeatureDetail/Flags.d.ts +1 -2
- package/dist/AlignmentsFeatureDetail/Flags.js +6 -8
- package/dist/AlignmentsFeatureDetail/Formatter.d.ts +1 -2
- package/dist/AlignmentsFeatureDetail/Formatter.js +11 -36
- package/dist/AlignmentsFeatureDetail/LaunchPairedEndBreakpointSplitViewPanel.d.ts +1 -2
- package/dist/AlignmentsFeatureDetail/LaunchPairedEndBreakpointSplitViewPanel.js +44 -47
- package/dist/AlignmentsFeatureDetail/LaunchSupplementaryAlignmentBreakpointSplitViewPanel.d.ts +1 -2
- package/dist/AlignmentsFeatureDetail/LaunchSupplementaryAlignmentBreakpointSplitViewPanel.js +27 -31
- package/dist/AlignmentsFeatureDetail/LinkedPairedAlignments.d.ts +1 -2
- package/dist/AlignmentsFeatureDetail/LinkedPairedAlignments.js +2 -2
- package/dist/AlignmentsFeatureDetail/PairLink.d.ts +1 -2
- package/dist/AlignmentsFeatureDetail/PairLink.js +3 -6
- package/dist/AlignmentsFeatureDetail/SupplementaryAlignments.d.ts +1 -2
- package/dist/AlignmentsFeatureDetail/SupplementaryAlignments.js +2 -4
- package/dist/AlignmentsFeatureDetail/SupplementaryAlignmentsLocStrings.d.ts +1 -2
- package/dist/AlignmentsFeatureDetail/SupplementaryAlignmentsLocStrings.js +21 -27
- package/dist/AlignmentsFeatureDetail/index.js +17 -7
- package/dist/BamAdapter/index.js +17 -7
- package/dist/CramAdapter/CramAdapter.js +7 -2
- package/dist/CramAdapter/CramTestAdapters.d.ts +1 -1
- package/dist/CramAdapter/CramTestAdapters.js +2 -1
- package/dist/CramAdapter/index.js +17 -7
- package/dist/GuessAlignmentsTypes/index.js +19 -34
- package/dist/HtsgetBamAdapter/index.js +17 -7
- package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +1 -2
- package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +8 -16
- package/dist/LinearAlignmentsDisplay/model.d.ts +1 -2
- package/dist/LinearAlignmentsDisplay/model.js +5 -7
- package/dist/LinearPileupDisplay/SharedLinearPileupDisplayMixin.d.ts +21 -7
- package/dist/LinearPileupDisplay/SharedLinearPileupDisplayMixin.js +40 -15
- package/dist/LinearPileupDisplay/components/ColorByTagDialog.d.ts +1 -2
- package/dist/LinearPileupDisplay/components/ColorByTagDialog.js +10 -39
- package/dist/LinearPileupDisplay/components/GroupByDialog.d.ts +1 -2
- package/dist/LinearPileupDisplay/components/GroupByDialog.js +82 -121
- package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.d.ts +1 -2
- package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +2 -6
- package/dist/LinearPileupDisplay/components/SetFeatureHeightDialog.d.ts +1 -2
- package/dist/LinearPileupDisplay/components/SetFeatureHeightDialog.js +13 -42
- package/dist/LinearPileupDisplay/components/SetMaxHeightDialog.d.ts +1 -2
- package/dist/LinearPileupDisplay/components/SetMaxHeightDialog.js +10 -38
- package/dist/LinearPileupDisplay/components/SortByTagDialog.d.ts +1 -2
- package/dist/LinearPileupDisplay/components/SortByTagDialog.js +15 -44
- package/dist/LinearPileupDisplay/model.d.ts +21 -7
- package/dist/LinearPileupDisplay/model.js +19 -8
- package/dist/LinearReadArcsDisplay/components/ReactComponent.d.ts +1 -2
- package/dist/LinearReadArcsDisplay/components/ReactComponent.js +4 -27
- package/dist/LinearReadArcsDisplay/index.js +17 -7
- package/dist/LinearReadArcsDisplay/model.d.ts +1 -1
- package/dist/LinearReadArcsDisplay/model.js +17 -7
- package/dist/LinearReadCloudDisplay/components/ReactComponent.d.ts +1 -2
- package/dist/LinearReadCloudDisplay/components/ReactComponent.js +4 -27
- package/dist/LinearReadCloudDisplay/index.js +17 -7
- package/dist/LinearReadCloudDisplay/model.d.ts +1 -1
- package/dist/LinearReadCloudDisplay/model.js +17 -7
- package/dist/LinearSNPCoverageDisplay/components/Tooltip.d.ts +1 -2
- package/dist/LinearSNPCoverageDisplay/components/Tooltip.js +15 -54
- package/dist/LinearSNPCoverageDisplay/model.d.ts +4 -4
- package/dist/LinearSNPCoverageDisplay/model.js +49 -35
- package/dist/MismatchParser/cigarToMismatches.d.ts +1 -2
- package/dist/MismatchParser/index.d.ts +1 -2
- package/dist/MismatchParser/mdToMismatches.d.ts +1 -2
- package/dist/PileupRenderer/PileupRenderer.d.ts +4 -4
- package/dist/PileupRenderer/PileupRenderer.js +17 -7
- package/dist/PileupRenderer/components/PileupRendering.d.ts +1 -2
- package/dist/PileupRenderer/components/PileupRendering.js +15 -40
- package/dist/PileupRenderer/configSchema.d.ts +5 -0
- package/dist/PileupRenderer/configSchema.js +5 -0
- package/dist/PileupRenderer/makeImageData.js +2 -0
- package/dist/PileupRenderer/renderMismatches.d.ts +2 -1
- package/dist/PileupRenderer/renderMismatches.js +18 -13
- package/dist/SNPCoverageAdapter/index.js +17 -7
- package/dist/SNPCoverageAdapter/processModifications.js +1 -1
- package/dist/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +1 -18
- package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js +35 -264
- package/dist/SNPCoverageRenderer/configSchema.d.ts +3 -3
- package/dist/SNPCoverageRenderer/configSchema.js +3 -3
- package/dist/SNPCoverageRenderer/makeImage.d.ts +2 -0
- package/dist/SNPCoverageRenderer/makeImage.js +270 -0
- package/dist/SNPCoverageRenderer/types.d.ts +19 -0
- package/dist/SNPCoverageRenderer/types.js +2 -0
- package/dist/index.js +17 -7
- package/dist/shared/components/BaseDisplayComponent.d.ts +1 -2
- package/dist/shared/components/BaseDisplayComponent.js +6 -13
- package/dist/shared/components/FilterByTagDialog.d.ts +1 -2
- package/dist/shared/components/FilterByTagDialog.js +42 -92
- package/dist/shared/renderSvgUtil.d.ts +1 -2
- package/dist/shared/renderSvgUtil.js +20 -17
- package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +1 -2
- package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +3 -6
- package/esm/AlignmentsFeatureDetail/Flags.d.ts +1 -2
- package/esm/AlignmentsFeatureDetail/Flags.js +6 -8
- package/esm/AlignmentsFeatureDetail/Formatter.d.ts +1 -2
- package/esm/AlignmentsFeatureDetail/Formatter.js +11 -13
- package/esm/AlignmentsFeatureDetail/LaunchPairedEndBreakpointSplitViewPanel.d.ts +1 -2
- package/esm/AlignmentsFeatureDetail/LaunchPairedEndBreakpointSplitViewPanel.js +27 -40
- package/esm/AlignmentsFeatureDetail/LaunchSupplementaryAlignmentBreakpointSplitViewPanel.d.ts +1 -2
- package/esm/AlignmentsFeatureDetail/LaunchSupplementaryAlignmentBreakpointSplitViewPanel.js +10 -24
- package/esm/AlignmentsFeatureDetail/LinkedPairedAlignments.d.ts +1 -2
- package/esm/AlignmentsFeatureDetail/LinkedPairedAlignments.js +2 -2
- package/esm/AlignmentsFeatureDetail/PairLink.d.ts +1 -2
- package/esm/AlignmentsFeatureDetail/PairLink.js +3 -3
- package/esm/AlignmentsFeatureDetail/SupplementaryAlignments.d.ts +1 -2
- package/esm/AlignmentsFeatureDetail/SupplementaryAlignments.js +2 -4
- package/esm/AlignmentsFeatureDetail/SupplementaryAlignmentsLocStrings.d.ts +1 -2
- package/esm/AlignmentsFeatureDetail/SupplementaryAlignmentsLocStrings.js +21 -24
- package/esm/CramAdapter/CramAdapter.js +7 -2
- package/esm/CramAdapter/CramTestAdapters.d.ts +1 -1
- package/esm/CramAdapter/CramTestAdapters.js +2 -1
- package/esm/GuessAlignmentsTypes/index.js +19 -34
- package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +1 -2
- package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +8 -13
- package/esm/LinearAlignmentsDisplay/model.d.ts +1 -2
- package/esm/LinearAlignmentsDisplay/model.js +5 -7
- package/esm/LinearPileupDisplay/SharedLinearPileupDisplayMixin.d.ts +21 -7
- package/esm/LinearPileupDisplay/SharedLinearPileupDisplayMixin.js +23 -8
- package/esm/LinearPileupDisplay/components/ColorByTagDialog.d.ts +1 -2
- package/esm/LinearPileupDisplay/components/ColorByTagDialog.js +10 -16
- package/esm/LinearPileupDisplay/components/GroupByDialog.d.ts +1 -2
- package/esm/LinearPileupDisplay/components/GroupByDialog.js +82 -98
- package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.d.ts +1 -2
- package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +2 -3
- package/esm/LinearPileupDisplay/components/SetFeatureHeightDialog.d.ts +1 -2
- package/esm/LinearPileupDisplay/components/SetFeatureHeightDialog.js +13 -19
- package/esm/LinearPileupDisplay/components/SetMaxHeightDialog.d.ts +1 -2
- package/esm/LinearPileupDisplay/components/SetMaxHeightDialog.js +10 -15
- package/esm/LinearPileupDisplay/components/SortByTagDialog.d.ts +1 -2
- package/esm/LinearPileupDisplay/components/SortByTagDialog.js +15 -21
- package/esm/LinearPileupDisplay/model.d.ts +21 -7
- package/esm/LinearPileupDisplay/model.js +2 -1
- package/esm/LinearReadArcsDisplay/components/ReactComponent.d.ts +1 -2
- package/esm/LinearReadArcsDisplay/components/ReactComponent.js +4 -4
- package/esm/LinearReadArcsDisplay/model.d.ts +1 -1
- package/esm/LinearReadCloudDisplay/components/ReactComponent.d.ts +1 -2
- package/esm/LinearReadCloudDisplay/components/ReactComponent.js +4 -4
- package/esm/LinearReadCloudDisplay/model.d.ts +1 -1
- package/esm/LinearSNPCoverageDisplay/components/Tooltip.d.ts +1 -2
- package/esm/LinearSNPCoverageDisplay/components/Tooltip.js +15 -51
- package/esm/LinearSNPCoverageDisplay/model.d.ts +4 -4
- package/esm/LinearSNPCoverageDisplay/model.js +32 -28
- package/esm/MismatchParser/cigarToMismatches.d.ts +1 -2
- package/esm/MismatchParser/index.d.ts +1 -2
- package/esm/MismatchParser/mdToMismatches.d.ts +1 -2
- package/esm/PileupRenderer/PileupRenderer.d.ts +4 -4
- package/esm/PileupRenderer/components/PileupRendering.d.ts +1 -2
- package/esm/PileupRenderer/components/PileupRendering.js +15 -17
- package/esm/PileupRenderer/configSchema.d.ts +5 -0
- package/esm/PileupRenderer/configSchema.js +5 -0
- package/esm/PileupRenderer/makeImageData.js +2 -0
- package/esm/PileupRenderer/renderMismatches.d.ts +2 -1
- package/esm/PileupRenderer/renderMismatches.js +18 -13
- package/esm/SNPCoverageAdapter/processModifications.js +1 -1
- package/esm/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +1 -18
- package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js +3 -265
- package/esm/SNPCoverageRenderer/configSchema.d.ts +3 -3
- package/esm/SNPCoverageRenderer/configSchema.js +3 -3
- package/esm/SNPCoverageRenderer/makeImage.d.ts +2 -0
- package/esm/SNPCoverageRenderer/makeImage.js +267 -0
- package/esm/SNPCoverageRenderer/types.d.ts +19 -0
- package/esm/SNPCoverageRenderer/types.js +1 -0
- package/esm/shared/components/BaseDisplayComponent.d.ts +1 -2
- package/esm/shared/components/BaseDisplayComponent.js +6 -10
- package/esm/shared/components/FilterByTagDialog.d.ts +1 -2
- package/esm/shared/components/FilterByTagDialog.js +42 -69
- package/esm/shared/renderSvgUtil.d.ts +1 -2
- package/esm/shared/renderSvgUtil.js +3 -7
- package/package.json +13 -13
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import type { FilterBy } from '../shared/types';
|
|
3
2
|
import type PluginManager from '@jbrowse/core/PluginManager';
|
|
4
3
|
import type { AnyConfigurationModel, AnyConfigurationSchemaType } from '@jbrowse/core/configuration';
|
|
@@ -104,7 +103,7 @@ declare function stateModelFactory(pluginManager: PluginManager, configSchema: A
|
|
|
104
103
|
afterAttach(): void;
|
|
105
104
|
renderSvg(opts: {
|
|
106
105
|
rasterizeLayers?: boolean;
|
|
107
|
-
}): Promise<
|
|
106
|
+
}): Promise<import("react/jsx-runtime").JSX.Element>;
|
|
108
107
|
} & {
|
|
109
108
|
trackMenuItems(): MenuItem[];
|
|
110
109
|
}, import("mobx-state-tree").ModelCreationType<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { getConf } from '@jbrowse/core/configuration';
|
|
3
3
|
import { BaseDisplay } from '@jbrowse/core/pluggableElementTypes/models';
|
|
4
4
|
import deepEqual from 'fast-deep-equal';
|
|
@@ -160,12 +160,10 @@ function stateModelFactory(pluginManager, configSchema) {
|
|
|
160
160
|
const pileupHeight = self.height - self.SNPCoverageDisplay.height;
|
|
161
161
|
await when(() => !self.PileupDisplay.renderProps().notReady &&
|
|
162
162
|
!self.SNPCoverageDisplay.renderProps().notReady);
|
|
163
|
-
return (
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
overrideHeight: pileupHeight,
|
|
168
|
-
}))));
|
|
163
|
+
return (_jsxs(_Fragment, { children: [_jsx("g", { children: await self.SNPCoverageDisplay.renderSvg(opts) }), _jsx("g", { transform: `translate(0 ${self.SNPCoverageDisplay.height})`, children: await self.PileupDisplay.renderSvg({
|
|
164
|
+
...opts,
|
|
165
|
+
overrideHeight: pileupHeight,
|
|
166
|
+
}) })] }));
|
|
169
167
|
},
|
|
170
168
|
}))
|
|
171
169
|
.views(self => {
|
|
@@ -38,7 +38,7 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
|
|
|
38
38
|
status?: string;
|
|
39
39
|
reactElement?: React.ReactElement;
|
|
40
40
|
};
|
|
41
|
-
}) => import("react").JSX.Element | undefined;
|
|
41
|
+
}) => import("react/jsx-runtime").JSX.Element | undefined;
|
|
42
42
|
renderProps: any;
|
|
43
43
|
} & {
|
|
44
44
|
doReload(): void;
|
|
@@ -88,6 +88,7 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
|
|
|
88
88
|
colorBySetting: import("mobx-state-tree").IType<ColorBy | undefined, ColorBy | undefined, ColorBy | undefined>;
|
|
89
89
|
filterBySetting: import("mobx-state-tree").IType<FilterBy | undefined, FilterBy | undefined, FilterBy | undefined>;
|
|
90
90
|
jexlFilters: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").ISimpleType<string>>, [undefined]>;
|
|
91
|
+
hideSmallIndelsSetting: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<boolean>>;
|
|
91
92
|
}, {
|
|
92
93
|
rendererTypeName: string;
|
|
93
94
|
error: unknown;
|
|
@@ -179,13 +180,13 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
|
|
|
179
180
|
} & {
|
|
180
181
|
readonly statsReadyAndRegionNotTooLarge: boolean;
|
|
181
182
|
regionCannotBeRenderedText(_region: import("@jbrowse/core/util").Region): "" | "Force load to see features";
|
|
182
|
-
regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react").JSX.Element | null;
|
|
183
|
+
regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react/jsx-runtime").JSX.Element | null;
|
|
183
184
|
} & {
|
|
184
185
|
featureIdUnderMouse: undefined | string;
|
|
185
186
|
contextMenuFeature: undefined | Feature;
|
|
186
187
|
} & {
|
|
187
|
-
readonly DisplayMessageComponent:
|
|
188
|
-
readonly blockType: "
|
|
188
|
+
readonly DisplayMessageComponent: undefined | React.FC<any>;
|
|
189
|
+
readonly blockType: "staticBlocks" | "dynamicBlocks";
|
|
189
190
|
readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
|
|
190
191
|
} & {
|
|
191
192
|
readonly renderDelay: number;
|
|
@@ -212,7 +213,7 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
|
|
|
212
213
|
contextMenuItems(): import("@jbrowse/core/ui").MenuItem[];
|
|
213
214
|
renderProps(): any;
|
|
214
215
|
} & {
|
|
215
|
-
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
|
|
216
|
+
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
|
|
216
217
|
afterAttach(): void;
|
|
217
218
|
} & {
|
|
218
219
|
colorTagMap: import("mobx").ObservableMap<string, string>;
|
|
@@ -223,6 +224,7 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
|
|
|
223
224
|
readonly filterBy: any;
|
|
224
225
|
} & {
|
|
225
226
|
readonly autorunReady: boolean;
|
|
227
|
+
readonly hideSmallIndels: boolean | undefined;
|
|
226
228
|
} & {
|
|
227
229
|
setTagsReady(flag: boolean): void;
|
|
228
230
|
setMaxHeight(n?: number): void;
|
|
@@ -236,6 +238,7 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
|
|
|
236
238
|
setConfig(conf: AnyConfigurationModel): void;
|
|
237
239
|
setFilterBy(filter: FilterBy): void;
|
|
238
240
|
setJexlFilters(filters: string[]): void;
|
|
241
|
+
setHideSmallIndels(arg: boolean): void;
|
|
239
242
|
} & {
|
|
240
243
|
readonly rendererConfig: {
|
|
241
244
|
[x: string]: any;
|
|
@@ -271,18 +274,28 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
|
|
|
271
274
|
model: {
|
|
272
275
|
sortedBy?: import("../shared/types").SortedBy;
|
|
273
276
|
};
|
|
274
|
-
}) => import("react").JSX.Element | null;
|
|
277
|
+
}) => import("react/jsx-runtime").JSX.Element | null;
|
|
275
278
|
renderPropsPre(): any;
|
|
276
279
|
colorSchemeSubMenuItems(): {
|
|
277
280
|
label: string;
|
|
278
281
|
onClick: () => void;
|
|
279
282
|
}[];
|
|
280
283
|
trackMenuItems(): (import("@jbrowse/core/ui").MenuDivider | import("@jbrowse/core/ui").MenuSubHeader | import("@jbrowse/core/ui").NormalMenuItem | import("@jbrowse/core/ui").CheckboxMenuItem | import("@jbrowse/core/ui").RadioMenuItem | import("@jbrowse/core/ui").SubMenuItem | {
|
|
284
|
+
label: string;
|
|
285
|
+
priority: number;
|
|
286
|
+
type: string;
|
|
287
|
+
checked: boolean | undefined;
|
|
288
|
+
onClick: () => void;
|
|
289
|
+
icon?: undefined;
|
|
290
|
+
} | {
|
|
281
291
|
label: string;
|
|
282
292
|
icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
|
|
283
293
|
muiName: string;
|
|
284
294
|
};
|
|
285
295
|
onClick: () => void;
|
|
296
|
+
priority?: undefined;
|
|
297
|
+
type?: undefined;
|
|
298
|
+
checked?: undefined;
|
|
286
299
|
})[];
|
|
287
300
|
} & {
|
|
288
301
|
renderProps(): any;
|
|
@@ -323,7 +336,7 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
|
|
|
323
336
|
status?: string;
|
|
324
337
|
reactElement?: React.ReactElement;
|
|
325
338
|
};
|
|
326
|
-
}) => import("react").JSX.Element | undefined;
|
|
339
|
+
}) => import("react/jsx-runtime").JSX.Element | undefined;
|
|
327
340
|
renderProps: any;
|
|
328
341
|
} & {
|
|
329
342
|
doReload(): void;
|
|
@@ -373,6 +386,7 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
|
|
|
373
386
|
colorBySetting: import("mobx-state-tree").IType<ColorBy | undefined, ColorBy | undefined, ColorBy | undefined>;
|
|
374
387
|
filterBySetting: import("mobx-state-tree").IType<FilterBy | undefined, FilterBy | undefined, FilterBy | undefined>;
|
|
375
388
|
jexlFilters: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").ISimpleType<string>>, [undefined]>;
|
|
389
|
+
hideSmallIndelsSetting: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<boolean>>;
|
|
376
390
|
}>>, {
|
|
377
391
|
id: string;
|
|
378
392
|
type: string;
|
|
@@ -32,6 +32,7 @@ export function SharedLinearPileupDisplayMixin(configSchema) {
|
|
|
32
32
|
colorBySetting: types.frozen(),
|
|
33
33
|
filterBySetting: types.frozen(),
|
|
34
34
|
jexlFilters: types.optional(types.array(types.string), []),
|
|
35
|
+
hideSmallIndelsSetting: types.maybe(types.boolean),
|
|
35
36
|
}))
|
|
36
37
|
.volatile(() => ({
|
|
37
38
|
colorTagMap: observable.map({}),
|
|
@@ -53,6 +54,9 @@ export function SharedLinearPileupDisplayMixin(configSchema) {
|
|
|
53
54
|
const view = getContainingView(self);
|
|
54
55
|
return view.initialized && self.statsReadyAndRegionNotTooLarge;
|
|
55
56
|
},
|
|
57
|
+
get hideSmallIndels() {
|
|
58
|
+
return self.hideSmallIndelsSetting;
|
|
59
|
+
},
|
|
56
60
|
}))
|
|
57
61
|
.actions(self => ({
|
|
58
62
|
setTagsReady(flag) {
|
|
@@ -128,18 +132,20 @@ export function SharedLinearPileupDisplayMixin(configSchema) {
|
|
|
128
132
|
setJexlFilters(filters) {
|
|
129
133
|
self.jexlFilters = cast(filters);
|
|
130
134
|
},
|
|
135
|
+
setHideSmallIndels(arg) {
|
|
136
|
+
self.hideSmallIndelsSetting = arg;
|
|
137
|
+
},
|
|
131
138
|
}))
|
|
132
139
|
.views(self => ({
|
|
133
140
|
get rendererConfig() {
|
|
134
|
-
const { featureHeight, noSpacing, trackMaxHeight, rendererTypeName } = self;
|
|
141
|
+
const { featureHeight: height, noSpacing, hideSmallIndels, trackMaxHeight: maxHeight, rendererTypeName, } = self;
|
|
135
142
|
const configBlob = getConf(self, ['renderers', rendererTypeName]) || {};
|
|
136
143
|
return self.rendererType.configSchema.create({
|
|
137
144
|
...configBlob,
|
|
138
|
-
...(
|
|
145
|
+
...(hideSmallIndels !== undefined ? { hideSmallIndels } : {}),
|
|
146
|
+
...(height !== undefined ? { height } : {}),
|
|
139
147
|
...(noSpacing !== undefined ? { noSpacing } : {}),
|
|
140
|
-
...(
|
|
141
|
-
? { maxHeight: trackMaxHeight }
|
|
142
|
-
: {}),
|
|
148
|
+
...(maxHeight !== undefined ? { maxHeight } : {}),
|
|
143
149
|
}, getEnv(self));
|
|
144
150
|
},
|
|
145
151
|
}))
|
|
@@ -365,6 +371,15 @@ export function SharedLinearPileupDisplayMixin(configSchema) {
|
|
|
365
371
|
},
|
|
366
372
|
],
|
|
367
373
|
},
|
|
374
|
+
{
|
|
375
|
+
label: 'Hide small indels (<10bp)',
|
|
376
|
+
priority: -1,
|
|
377
|
+
type: 'checkbox',
|
|
378
|
+
checked: self.hideSmallIndels,
|
|
379
|
+
onClick: () => {
|
|
380
|
+
self.setHideSmallIndels(!self.hideSmallIndels);
|
|
381
|
+
},
|
|
382
|
+
},
|
|
368
383
|
{
|
|
369
384
|
label: 'Set max height...',
|
|
370
385
|
priority: -1,
|
|
@@ -459,11 +474,11 @@ export function SharedLinearPileupDisplayMixin(configSchema) {
|
|
|
459
474
|
}))
|
|
460
475
|
.preProcessSnapshot(snap => {
|
|
461
476
|
if (snap) {
|
|
462
|
-
const { colorBy, filterBy, ...rest } = snap;
|
|
477
|
+
const { colorBy, colorBySetting, filterBySetting, filterBy, ...rest } = snap;
|
|
463
478
|
return {
|
|
464
479
|
...rest,
|
|
465
|
-
filterBySetting: filterBy,
|
|
466
|
-
colorBySetting: colorBy,
|
|
480
|
+
filterBySetting: filterBySetting || filterBy,
|
|
481
|
+
colorBySetting: colorBySetting || colorBy,
|
|
467
482
|
};
|
|
468
483
|
}
|
|
469
484
|
return snap;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
interface Tag {
|
|
3
2
|
type: string;
|
|
4
3
|
tag: string;
|
|
@@ -8,5 +7,5 @@ declare const ColorByTagDialog: ({ model, handleClose, }: {
|
|
|
8
7
|
setColorScheme: (arg: Tag) => void;
|
|
9
8
|
};
|
|
10
9
|
handleClose: () => void;
|
|
11
|
-
}) =>
|
|
10
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
12
11
|
export default ColorByTagDialog;
|
|
@@ -1,24 +1,18 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
2
3
|
import { Dialog } from '@jbrowse/core/ui';
|
|
3
4
|
import { Button, DialogActions, DialogContent, TextField, Typography, } from '@mui/material';
|
|
4
5
|
import { observer } from 'mobx-react';
|
|
5
6
|
const ColorByTagDialog = observer(function ({ model, handleClose, }) {
|
|
6
7
|
const [tag, setTag] = useState('');
|
|
7
8
|
const validTag = /^[A-Za-z][A-Za-z0-9]$/.exec(tag);
|
|
8
|
-
return (
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
} }),
|
|
17
|
-
React.createElement(DialogActions, null,
|
|
18
|
-
React.createElement(Button, { variant: "contained", color: "primary", onClick: () => {
|
|
19
|
-
model.setColorScheme({ type: 'tag', tag });
|
|
20
|
-
handleClose();
|
|
21
|
-
}, disabled: !validTag }, "Submit"),
|
|
22
|
-
React.createElement(Button, { variant: "contained", color: "secondary", onClick: handleClose }, "Cancel")))));
|
|
9
|
+
return (_jsx(Dialog, { open: true, onClose: handleClose, title: "Color by tag", children: _jsxs(DialogContent, { style: { overflowX: 'hidden' }, children: [_jsx(Typography, { children: "Enter tag to color by: " }), _jsx(Typography, { color: "textSecondary", children: "Examples: XS or TS for RNA-seq inferred read strand, ts (lower-case) for minimap2 read strand, HP for haplotype, RG for read group, etc." }), _jsx(TextField, { value: tag, onChange: event => {
|
|
10
|
+
setTag(event.target.value);
|
|
11
|
+
}, placeholder: "Enter tag name", error: tag.length === 2 && !validTag, helperText: tag.length === 2 && !validTag ? 'Not a valid tag' : '', autoComplete: "off", slotProps: {
|
|
12
|
+
htmlInput: { maxLength: 2 },
|
|
13
|
+
} }), _jsxs(DialogActions, { children: [_jsx(Button, { variant: "contained", color: "primary", onClick: () => {
|
|
14
|
+
model.setColorScheme({ type: 'tag', tag });
|
|
15
|
+
handleClose();
|
|
16
|
+
}, disabled: !validTag, children: "Submit" }), _jsx(Button, { variant: "contained", color: "secondary", onClick: handleClose, children: "Cancel" })] })] }) }));
|
|
23
17
|
});
|
|
24
18
|
export default ColorByTagDialog;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import type { AnyConfigurationModel } from '@jbrowse/core/configuration';
|
|
3
2
|
import type { IAnyStateTreeNode } from 'mobx-state-tree';
|
|
4
3
|
declare const GroupByTagDialog: (props: {
|
|
@@ -7,5 +6,5 @@ declare const GroupByTagDialog: (props: {
|
|
|
7
6
|
configuration: AnyConfigurationModel;
|
|
8
7
|
} & IAnyStateTreeNode;
|
|
9
8
|
handleClose: () => void;
|
|
10
|
-
}) =>
|
|
9
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
11
10
|
export default GroupByTagDialog;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
2
3
|
import { Dialog, ErrorMessage, LoadingEllipses } from '@jbrowse/core/ui';
|
|
3
4
|
import { getContainingTrack, getContainingView, getSession, useDebounce, } from '@jbrowse/core/util';
|
|
4
5
|
import { Button, DialogActions, DialogContent, MenuItem, TextField, Typography, } from '@mui/material';
|
|
@@ -41,41 +42,54 @@ const GroupByTagDialog = observer(function (props) {
|
|
|
41
42
|
}
|
|
42
43
|
})();
|
|
43
44
|
}, [model, isInvalid, debouncedTag]);
|
|
44
|
-
return (
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
45
|
+
return (_jsxs(Dialog, { open: true, onClose: handleClose, title: "Group by", children: [_jsxs(DialogContent, { children: [_jsx(Typography, { children: "NOTE: this will create new session tracks with the \"filter by\" set to the values chosen here rather than affecting the current track state" }), _jsxs(TextField, { fullWidth: true, value: type, onChange: event => {
|
|
46
|
+
setType(event.target.value);
|
|
47
|
+
}, label: "Group by...", select: true, children: [_jsx(MenuItem, { value: "strand", children: "Strand" }), _jsx(MenuItem, { value: "tag", children: "Tag" })] }), type === 'tag' ? (_jsxs(_Fragment, { children: [_jsx(Typography, { color: "textSecondary", children: "Examples: HP for haplotype, RG for read group, etc." }), _jsx(TextField, { value: tag, onChange: event => {
|
|
48
|
+
setGroupByTag(event.target.value);
|
|
49
|
+
}, placeholder: "Enter tag name", error: isInvalid, helperText: isInvalid ? 'Not a valid tag' : '', autoComplete: "off", "data-testid": "group-tag-name", slotProps: {
|
|
50
|
+
htmlInput: {
|
|
51
|
+
maxLength: 2,
|
|
52
|
+
'data-testid': 'group-tag-name-input',
|
|
53
|
+
},
|
|
54
|
+
} }), error ? (_jsx(ErrorMessage, { error: error })) : loading ? (_jsx(LoadingEllipses, { title: "Loading unique tags" })) : tagSet ? (_jsxs("div", { children: [_jsxs("div", { children: ["Found unique ", tag, " values:"] }), _jsx("div", { children: tagSet.join(', ') })] })) : null] })) : null] }), _jsxs(DialogActions, { children: [_jsx(Button, { variant: "contained", color: "primary", type: "submit", disabled: !tagSet, autoFocus: true, onClick: () => {
|
|
55
|
+
const track = getContainingTrack(model);
|
|
56
|
+
const trackConf = structuredClone(getSnapshot(track.configuration));
|
|
57
|
+
const session = getSession(model);
|
|
58
|
+
const view = getContainingView(model);
|
|
59
|
+
if (type === 'tag') {
|
|
60
|
+
if (tagSet) {
|
|
61
|
+
const ret = [...tagSet, undefined];
|
|
62
|
+
for (const tagValue of ret) {
|
|
63
|
+
const t1 = `${trackConf.trackId}-${tag}:${tagValue}-${+Date.now()}-sessionTrack`;
|
|
64
|
+
session.addTrackConf({
|
|
65
|
+
...trackConf,
|
|
66
|
+
trackId: t1,
|
|
67
|
+
name: `${trackConf.name} (${tag}:${tagValue})`,
|
|
68
|
+
displays: [
|
|
69
|
+
{
|
|
70
|
+
displayId: `${t1}-LinearAlignmentsDisplay`,
|
|
71
|
+
type: 'LinearAlignmentsDisplay',
|
|
72
|
+
pileupDisplay: {
|
|
73
|
+
displayId: `${t1}-LinearAlignmentsDisplay-LinearPileupDisplay`,
|
|
74
|
+
type: 'LinearPileupDisplay',
|
|
75
|
+
filterBy: {
|
|
76
|
+
...defaultFilterFlags,
|
|
77
|
+
tagFilter: {
|
|
78
|
+
tag,
|
|
79
|
+
value: tagValue,
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
],
|
|
85
|
+
});
|
|
86
|
+
view.showTrack(t1);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
else if (type === 'strand') {
|
|
91
|
+
const t1 = `${trackConf.trackId}-${tag}:(-)-${+Date.now()}-sessionTrack`;
|
|
92
|
+
const t2 = `${trackConf.trackId}-${tag}:(+)-${+Date.now()}-sessionTrack`;
|
|
79
93
|
session.addTrackConf({
|
|
80
94
|
...trackConf,
|
|
81
95
|
trackId: t1,
|
|
@@ -87,73 +101,43 @@ const GroupByTagDialog = observer(function (props) {
|
|
|
87
101
|
pileupDisplay: {
|
|
88
102
|
displayId: `${t1}-LinearAlignmentsDisplay-LinearPileupDisplay`,
|
|
89
103
|
type: 'LinearPileupDisplay',
|
|
90
|
-
filterBy:
|
|
91
|
-
...defaultFilterFlags,
|
|
92
|
-
tagFilter: {
|
|
93
|
-
tag,
|
|
94
|
-
value: tagValue,
|
|
95
|
-
},
|
|
96
|
-
},
|
|
104
|
+
filterBy: negFlags,
|
|
97
105
|
},
|
|
98
106
|
},
|
|
107
|
+
{
|
|
108
|
+
displayId: `${t1}-LinearSNPCoverageDisplay`,
|
|
109
|
+
type: 'LinearSNPCoverageDisplay',
|
|
110
|
+
filterBy: negFlags,
|
|
111
|
+
},
|
|
112
|
+
],
|
|
113
|
+
});
|
|
114
|
+
session.addTrackConf({
|
|
115
|
+
...trackConf,
|
|
116
|
+
trackId: t2,
|
|
117
|
+
name: `${trackConf.name} (+)`,
|
|
118
|
+
displays: [
|
|
119
|
+
{
|
|
120
|
+
displayId: `${t2}-LinearAlignmentsDisplay`,
|
|
121
|
+
type: 'LinearAlignmentsDisplay',
|
|
122
|
+
pileupDisplay: {
|
|
123
|
+
displayId: `${t2}-LinearAlignmentsDisplay-LinearPileupDisplay`,
|
|
124
|
+
type: 'LinearPileupDisplay',
|
|
125
|
+
filterBy: posFlags,
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
displayId: `${t2}-LinearSNPCoverageDisplay`,
|
|
130
|
+
type: 'LinearSNPCoverageDisplay',
|
|
131
|
+
filterBy: posFlags,
|
|
132
|
+
},
|
|
99
133
|
],
|
|
100
134
|
});
|
|
101
135
|
view.showTrack(t1);
|
|
136
|
+
view.showTrack(t2);
|
|
102
137
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
const t2 = `${trackConf.trackId}-${tag}:(+)-${+Date.now()}-sessionTrack`;
|
|
108
|
-
session.addTrackConf({
|
|
109
|
-
...trackConf,
|
|
110
|
-
trackId: t1,
|
|
111
|
-
name: `${trackConf.name} (-)`,
|
|
112
|
-
displays: [
|
|
113
|
-
{
|
|
114
|
-
displayId: `${t1}-LinearAlignmentsDisplay`,
|
|
115
|
-
type: 'LinearAlignmentsDisplay',
|
|
116
|
-
pileupDisplay: {
|
|
117
|
-
displayId: `${t1}-LinearAlignmentsDisplay-LinearPileupDisplay`,
|
|
118
|
-
type: 'LinearPileupDisplay',
|
|
119
|
-
filterBy: negFlags,
|
|
120
|
-
},
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
displayId: `${t1}-LinearSNPCoverageDisplay`,
|
|
124
|
-
type: 'LinearSNPCoverageDisplay',
|
|
125
|
-
filterBy: negFlags,
|
|
126
|
-
},
|
|
127
|
-
],
|
|
128
|
-
});
|
|
129
|
-
session.addTrackConf({
|
|
130
|
-
...trackConf,
|
|
131
|
-
trackId: t2,
|
|
132
|
-
name: `${trackConf.name} (+)`,
|
|
133
|
-
displays: [
|
|
134
|
-
{
|
|
135
|
-
displayId: `${t2}-LinearAlignmentsDisplay`,
|
|
136
|
-
type: 'LinearAlignmentsDisplay',
|
|
137
|
-
pileupDisplay: {
|
|
138
|
-
displayId: `${t2}-LinearAlignmentsDisplay-LinearPileupDisplay`,
|
|
139
|
-
type: 'LinearPileupDisplay',
|
|
140
|
-
filterBy: posFlags,
|
|
141
|
-
},
|
|
142
|
-
},
|
|
143
|
-
{
|
|
144
|
-
displayId: `${t2}-LinearSNPCoverageDisplay`,
|
|
145
|
-
type: 'LinearSNPCoverageDisplay',
|
|
146
|
-
filterBy: posFlags,
|
|
147
|
-
},
|
|
148
|
-
],
|
|
149
|
-
});
|
|
150
|
-
view.showTrack(t1);
|
|
151
|
-
view.showTrack(t2);
|
|
152
|
-
}
|
|
153
|
-
handleClose();
|
|
154
|
-
} }, "Submit"),
|
|
155
|
-
React.createElement(Button, { variant: "contained", color: "secondary", onClick: () => {
|
|
156
|
-
handleClose();
|
|
157
|
-
} }, "Cancel"))));
|
|
138
|
+
handleClose();
|
|
139
|
+
}, children: "Submit" }), _jsx(Button, { variant: "contained", color: "secondary", onClick: () => {
|
|
140
|
+
handleClose();
|
|
141
|
+
}, children: "Cancel" })] })] }));
|
|
158
142
|
});
|
|
159
143
|
export default GroupByTagDialog;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import type { SortedBy } from '../../shared/types';
|
|
3
2
|
declare const LinearPileupDisplayBlurb: ({ model, }: {
|
|
4
3
|
model: {
|
|
5
4
|
sortedBy?: SortedBy;
|
|
6
5
|
};
|
|
7
|
-
}) =>
|
|
6
|
+
}) => import("react/jsx-runtime").JSX.Element | null;
|
|
8
7
|
export default LinearPileupDisplayBlurb;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { Typography } from '@mui/material';
|
|
3
3
|
import { observer } from 'mobx-react';
|
|
4
4
|
const LinearPileupDisplayBlurb = observer(function ({ model, }) {
|
|
5
5
|
var _a;
|
|
6
6
|
const { sortedBy } = model;
|
|
7
|
-
return sortedBy ? (
|
|
8
|
-
React.createElement(Typography, { color: "secondary", variant: "caption" }, `Sorted by ${(_a = sortedBy.tag) !== null && _a !== void 0 ? _a : sortedBy.type} at ${sortedBy.refName}:${sortedBy.pos}`))) : null;
|
|
7
|
+
return sortedBy ? (_jsx("div", { "data-testid": `blurb-${sortedBy}`, children: _jsx(Typography, { color: "secondary", variant: "caption", children: `Sorted by ${(_a = sortedBy.tag) !== null && _a !== void 0 ? _a : sortedBy.type} at ${sortedBy.refName}:${sortedBy.pos}` }) })) : null;
|
|
9
8
|
});
|
|
10
9
|
export default LinearPileupDisplayBlurb;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
declare const SetFeatureHeightDialog: (props: {
|
|
3
2
|
model: {
|
|
4
3
|
setFeatureHeight: (arg?: number) => void;
|
|
@@ -7,5 +6,5 @@ declare const SetFeatureHeightDialog: (props: {
|
|
|
7
6
|
noSpacing?: boolean;
|
|
8
7
|
};
|
|
9
8
|
handleClose: () => void;
|
|
10
|
-
}) =>
|
|
9
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
11
10
|
export default SetFeatureHeightDialog;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
2
3
|
import { Dialog } from '@jbrowse/core/ui';
|
|
3
4
|
import { Button, Checkbox, DialogActions, DialogContent, FormControlLabel, TextField, Typography, } from '@mui/material';
|
|
4
5
|
import { observer } from 'mobx-react';
|
|
@@ -8,23 +9,16 @@ const SetFeatureHeightDialog = observer(function (props) {
|
|
|
8
9
|
const [height, setHeight] = useState(`${featureHeightSetting}`);
|
|
9
10
|
const [noSpacing, setNoSpacing] = useState(noSpacingSetting);
|
|
10
11
|
const ok = height !== '' && !Number.isNaN(+height);
|
|
11
|
-
return (
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
model.setFeatureHeight(height !== '' && !Number.isNaN(+height) ? +height : undefined);
|
|
23
|
-
model.setNoSpacing(noSpacing);
|
|
24
|
-
handleClose();
|
|
25
|
-
} }, "Submit"),
|
|
26
|
-
React.createElement(Button, { variant: "contained", color: "secondary", onClick: () => {
|
|
27
|
-
handleClose();
|
|
28
|
-
} }, "Cancel")))));
|
|
12
|
+
return (_jsx(Dialog, { open: true, onClose: handleClose, title: "Set feature height", children: _jsxs(DialogContent, { children: [_jsx(Typography, { children: "Adjust the feature height and whether there is any spacing between features. Setting feature height to 1 and removing spacing makes the display very compact." }), _jsx(TextField, { value: height, helperText: "Feature height", onChange: event => {
|
|
13
|
+
setHeight(event.target.value);
|
|
14
|
+
} }), _jsx(FormControlLabel, { control: _jsx(Checkbox, { checked: !!noSpacing, onChange: () => {
|
|
15
|
+
setNoSpacing(val => !val);
|
|
16
|
+
} }), label: "Remove spacing between features in y-direction?" }), _jsxs(DialogActions, { children: [_jsx(Button, { variant: "contained", color: "primary", type: "submit", autoFocus: true, disabled: !ok, onClick: () => {
|
|
17
|
+
model.setFeatureHeight(height !== '' && !Number.isNaN(+height) ? +height : undefined);
|
|
18
|
+
model.setNoSpacing(noSpacing);
|
|
19
|
+
handleClose();
|
|
20
|
+
}, children: "Submit" }), _jsx(Button, { variant: "contained", color: "secondary", onClick: () => {
|
|
21
|
+
handleClose();
|
|
22
|
+
}, children: "Cancel" })] })] }) }));
|
|
29
23
|
});
|
|
30
24
|
export default SetFeatureHeightDialog;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
declare const SetMaxHeightDialog: (props: {
|
|
3
2
|
model: {
|
|
4
3
|
maxHeight?: number;
|
|
5
4
|
setMaxHeight: (arg?: number) => void;
|
|
6
5
|
};
|
|
7
6
|
handleClose: () => void;
|
|
8
|
-
}) =>
|
|
7
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
9
8
|
export default SetMaxHeightDialog;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
2
3
|
import { Dialog } from '@jbrowse/core/ui';
|
|
3
4
|
import { Button, DialogActions, DialogContent, TextField, Typography, } from '@mui/material';
|
|
4
5
|
import { observer } from 'mobx-react';
|
|
@@ -13,19 +14,13 @@ const SetMaxHeightDialog = observer(function (props) {
|
|
|
13
14
|
const { classes } = useStyles();
|
|
14
15
|
const { maxHeight = '' } = model;
|
|
15
16
|
const [max, setMax] = useState(`${maxHeight}`);
|
|
16
|
-
return (
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
model.setMaxHeight(max !== '' && !Number.isNaN(+max) ? +max : undefined);
|
|
25
|
-
handleClose();
|
|
26
|
-
} }, "Submit"),
|
|
27
|
-
React.createElement(Button, { variant: "contained", color: "secondary", onClick: () => {
|
|
28
|
-
handleClose();
|
|
29
|
-
} }, "Cancel")))));
|
|
17
|
+
return (_jsx(Dialog, { open: true, onClose: handleClose, title: "Set max height", children: _jsxs(DialogContent, { className: classes.root, children: [_jsx(Typography, { children: "Set max height for the track. For example, you can increase this if the layout says \"Max height reached\"" }), _jsx(TextField, { value: max, autoFocus: true, onChange: event => {
|
|
18
|
+
setMax(event.target.value);
|
|
19
|
+
}, placeholder: "Enter max height for layout" }), _jsxs(DialogActions, { children: [_jsx(Button, { variant: "contained", color: "primary", type: "submit", autoFocus: true, onClick: () => {
|
|
20
|
+
model.setMaxHeight(max !== '' && !Number.isNaN(+max) ? +max : undefined);
|
|
21
|
+
handleClose();
|
|
22
|
+
}, children: "Submit" }), _jsx(Button, { variant: "contained", color: "secondary", onClick: () => {
|
|
23
|
+
handleClose();
|
|
24
|
+
}, children: "Cancel" })] })] }) }));
|
|
30
25
|
});
|
|
31
26
|
export default SetMaxHeightDialog;
|