@jbrowse/plugin-alignments 2.10.1 → 2.10.3
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 +2 -2
- package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +10 -113
- package/dist/AlignmentsFeatureDetail/BreakendOptionDialog.d.ts +12 -0
- package/dist/AlignmentsFeatureDetail/BreakendOptionDialog.js +89 -0
- package/dist/AlignmentsFeatureDetail/Formatter.d.ts +4 -0
- package/dist/AlignmentsFeatureDetail/Formatter.js +47 -0
- package/dist/AlignmentsFeatureDetail/LaunchBreakpointSplitViewPanel.d.ts +9 -0
- package/dist/AlignmentsFeatureDetail/LaunchBreakpointSplitViewPanel.js +92 -0
- package/dist/AlignmentsFeatureDetail/PairLink.d.ts +6 -0
- package/dist/AlignmentsFeatureDetail/PairLink.js +16 -0
- package/dist/AlignmentsFeatureDetail/SuppAlignments.d.ts +8 -0
- package/dist/AlignmentsFeatureDetail/SuppAlignments.js +26 -0
- package/dist/AlignmentsFeatureDetail/SuppAlignmentsLocStrings.d.ts +6 -0
- package/dist/AlignmentsFeatureDetail/{AlignmentsFeatureSuppAligns.js → SuppAlignmentsLocStrings.js} +8 -7
- package/dist/AlignmentsFeatureDetail/configSchema.d.ts +1 -0
- package/dist/AlignmentsFeatureDetail/configSchema.js +5 -0
- package/dist/AlignmentsFeatureDetail/getSAFeatures.d.ts +23 -0
- package/dist/AlignmentsFeatureDetail/getSAFeatures.js +41 -0
- package/dist/AlignmentsFeatureDetail/index.d.ts +1 -50
- package/dist/AlignmentsFeatureDetail/index.js +6 -17
- package/dist/AlignmentsFeatureDetail/launchBreakpointSplitView.d.ts +22 -0
- package/dist/AlignmentsFeatureDetail/launchBreakpointSplitView.js +50 -0
- package/dist/AlignmentsFeatureDetail/stateModelFactory.d.ts +51 -0
- package/dist/AlignmentsFeatureDetail/stateModelFactory.js +12 -0
- package/dist/AlignmentsFeatureDetail/tagInfo.d.ts +63 -0
- package/dist/AlignmentsFeatureDetail/tagInfo.js +66 -0
- package/dist/BamAdapter/BamAdapter.js +10 -9
- package/dist/CramAdapter/CramAdapter.js +17 -19
- package/dist/LinearPileupDisplay/SharedLinearPileupDisplayMixin.d.ts +38 -24
- package/dist/LinearPileupDisplay/SharedLinearPileupDisplayMixin.js +8 -8
- package/dist/LinearPileupDisplay/model.d.ts +24 -26
- package/dist/LinearPileupDisplay/model.js +4 -4
- package/dist/LinearReadArcsDisplay/model.d.ts +8 -8
- package/dist/LinearReadArcsDisplay/model.js +2 -2
- package/dist/LinearReadCloudDisplay/model.d.ts +13 -7
- package/dist/LinearReadCloudDisplay/model.js +2 -2
- package/dist/LinearSNPCoverageDisplay/components/Tooltip.js +5 -2
- package/dist/LinearSNPCoverageDisplay/models/model.d.ts +11 -2
- package/dist/shared/BaseDisplayComponent.js +3 -1
- package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +2 -2
- package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +12 -92
- package/esm/AlignmentsFeatureDetail/BreakendOptionDialog.d.ts +12 -0
- package/esm/AlignmentsFeatureDetail/BreakendOptionDialog.js +64 -0
- package/esm/AlignmentsFeatureDetail/Formatter.d.ts +4 -0
- package/esm/AlignmentsFeatureDetail/Formatter.js +18 -0
- package/esm/AlignmentsFeatureDetail/LaunchBreakpointSplitViewPanel.d.ts +9 -0
- package/esm/AlignmentsFeatureDetail/LaunchBreakpointSplitViewPanel.js +66 -0
- package/esm/AlignmentsFeatureDetail/PairLink.d.ts +6 -0
- package/esm/AlignmentsFeatureDetail/PairLink.js +10 -0
- package/esm/AlignmentsFeatureDetail/SuppAlignments.d.ts +8 -0
- package/esm/AlignmentsFeatureDetail/SuppAlignments.js +20 -0
- package/esm/AlignmentsFeatureDetail/SuppAlignmentsLocStrings.d.ts +6 -0
- package/esm/AlignmentsFeatureDetail/{AlignmentsFeatureSuppAligns.js → SuppAlignmentsLocStrings.js} +7 -6
- package/esm/AlignmentsFeatureDetail/configSchema.d.ts +1 -0
- package/esm/AlignmentsFeatureDetail/configSchema.js +2 -0
- package/esm/AlignmentsFeatureDetail/getSAFeatures.d.ts +23 -0
- package/esm/AlignmentsFeatureDetail/getSAFeatures.js +37 -0
- package/esm/AlignmentsFeatureDetail/index.d.ts +1 -50
- package/esm/AlignmentsFeatureDetail/index.js +4 -13
- package/esm/AlignmentsFeatureDetail/launchBreakpointSplitView.d.ts +22 -0
- package/esm/AlignmentsFeatureDetail/launchBreakpointSplitView.js +46 -0
- package/esm/AlignmentsFeatureDetail/stateModelFactory.d.ts +51 -0
- package/esm/AlignmentsFeatureDetail/stateModelFactory.js +8 -0
- package/esm/AlignmentsFeatureDetail/tagInfo.d.ts +63 -0
- package/esm/AlignmentsFeatureDetail/tagInfo.js +63 -0
- package/esm/BamAdapter/BamAdapter.js +10 -9
- package/esm/CramAdapter/CramAdapter.js +18 -20
- package/esm/LinearPileupDisplay/SharedLinearPileupDisplayMixin.d.ts +38 -24
- package/esm/LinearPileupDisplay/SharedLinearPileupDisplayMixin.js +8 -8
- package/esm/LinearPileupDisplay/model.d.ts +24 -26
- package/esm/LinearPileupDisplay/model.js +4 -4
- package/esm/LinearReadArcsDisplay/model.d.ts +8 -8
- package/esm/LinearReadArcsDisplay/model.js +2 -2
- package/esm/LinearReadCloudDisplay/model.d.ts +13 -7
- package/esm/LinearReadCloudDisplay/model.js +2 -2
- package/esm/LinearSNPCoverageDisplay/components/Tooltip.js +5 -2
- package/esm/LinearSNPCoverageDisplay/models/model.d.ts +11 -2
- package/esm/shared/BaseDisplayComponent.js +3 -1
- package/package.json +2 -2
- package/dist/AlignmentsFeatureDetail/AlignmentsFeatureSuppAligns.d.ts +0 -6
- package/esm/AlignmentsFeatureDetail/AlignmentsFeatureSuppAligns.d.ts +0 -6
- /package/dist/AlignmentsFeatureDetail/{AlignmentsFeatureFlags.d.ts → Flags.d.ts} +0 -0
- /package/dist/AlignmentsFeatureDetail/{AlignmentsFeatureFlags.js → Flags.js} +0 -0
- /package/esm/AlignmentsFeatureDetail/{AlignmentsFeatureFlags.d.ts → Flags.d.ts} +0 -0
- /package/esm/AlignmentsFeatureDetail/{AlignmentsFeatureFlags.js → Flags.js} +0 -0
|
@@ -1,51 +1,2 @@
|
|
|
1
1
|
import PluginManager from '@jbrowse/core/PluginManager';
|
|
2
|
-
|
|
3
|
-
export declare function stateModelFactory(pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
|
|
4
|
-
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
5
|
-
type: import("mobx-state-tree").ISimpleType<"BaseFeatureWidget">;
|
|
6
|
-
featureData: import("mobx-state-tree").IType<any, any, any>;
|
|
7
|
-
formattedFields: import("mobx-state-tree").IType<any, any, any>;
|
|
8
|
-
unformattedFeatureData: import("mobx-state-tree").IType<any, any, any>;
|
|
9
|
-
view: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IAnyType>>;
|
|
10
|
-
track: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IAnyType>>;
|
|
11
|
-
trackId: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
12
|
-
trackType: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
13
|
-
maxDepth: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
|
|
14
|
-
} & {
|
|
15
|
-
type: import("mobx-state-tree").ISimpleType<"AlignmentsFeatureWidget">;
|
|
16
|
-
}, {
|
|
17
|
-
error: unknown;
|
|
18
|
-
} & {
|
|
19
|
-
setFeatureData(featureData: Record<string, unknown>): void;
|
|
20
|
-
clearFeatureData(): void;
|
|
21
|
-
setFormattedData(feat: Record<string, unknown>): void;
|
|
22
|
-
setExtra(type?: string | undefined, trackId?: string | undefined, maxDepth?: number | undefined): void;
|
|
23
|
-
setError(e: unknown): void;
|
|
24
|
-
} & {
|
|
25
|
-
afterCreate(): void;
|
|
26
|
-
}, {
|
|
27
|
-
type: "BaseFeatureWidget";
|
|
28
|
-
} & Partial<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
|
|
29
|
-
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
30
|
-
type: import("mobx-state-tree").ISimpleType<"BaseFeatureWidget">;
|
|
31
|
-
featureData: import("mobx-state-tree").IType<any, any, any>;
|
|
32
|
-
formattedFields: import("mobx-state-tree").IType<any, any, any>;
|
|
33
|
-
unformattedFeatureData: import("mobx-state-tree").IType<any, any, any>;
|
|
34
|
-
view: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IAnyType>>;
|
|
35
|
-
track: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IAnyType>>;
|
|
36
|
-
trackId: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
37
|
-
trackType: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
38
|
-
maxDepth: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
|
|
39
|
-
}>> & import("mobx-state-tree/dist/internal").NonEmptyObject & import("mobx-state-tree")._NotCustomized, {
|
|
40
|
-
type: "BaseFeatureWidget";
|
|
41
|
-
id: string;
|
|
42
|
-
track: import("mobx-state-tree").ReferenceIdentifier | undefined;
|
|
43
|
-
view: import("mobx-state-tree").ReferenceIdentifier | undefined;
|
|
44
|
-
trackId: string | undefined;
|
|
45
|
-
trackType: string | undefined;
|
|
46
|
-
maxDepth: number | undefined;
|
|
47
|
-
formattedFields: any;
|
|
48
|
-
finalizedFeatureData: any;
|
|
49
|
-
} & import("mobx-state-tree")._NotCustomized>;
|
|
50
|
-
export default function register(pluginManager: PluginManager): void;
|
|
51
|
-
export { configSchema };
|
|
2
|
+
export default function AlignmentFeatureDetailsF(pluginManager: PluginManager): void;
|
|
@@ -26,28 +26,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.configSchema = exports.stateModelFactory = void 0;
|
|
30
29
|
const react_1 = require("react");
|
|
31
|
-
const configuration_1 = require("@jbrowse/core/configuration");
|
|
32
|
-
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
33
30
|
const WidgetType_1 = __importDefault(require("@jbrowse/core/pluggableElementTypes/WidgetType"));
|
|
34
|
-
const
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
function stateModelFactory(pluginManager) {
|
|
38
|
-
const baseModel = (0, BaseFeatureWidget_1.stateModelFactory)(pluginManager);
|
|
39
|
-
return mobx_state_tree_1.types.compose(baseModel, mobx_state_tree_1.types.model('AlignmentsFeatureWidget', {
|
|
40
|
-
type: mobx_state_tree_1.types.literal('AlignmentsFeatureWidget'),
|
|
41
|
-
}));
|
|
42
|
-
}
|
|
43
|
-
exports.stateModelFactory = stateModelFactory;
|
|
44
|
-
function register(pluginManager) {
|
|
31
|
+
const configSchema_1 = require("./configSchema");
|
|
32
|
+
const stateModelFactory_1 = require("./stateModelFactory");
|
|
33
|
+
function AlignmentFeatureDetailsF(pluginManager) {
|
|
45
34
|
pluginManager.addWidgetType(() => new WidgetType_1.default({
|
|
46
35
|
name: 'AlignmentsFeatureWidget',
|
|
47
36
|
heading: 'Feature details',
|
|
48
|
-
configSchema,
|
|
49
|
-
stateModel: stateModelFactory(pluginManager),
|
|
37
|
+
configSchema: configSchema_1.configSchema,
|
|
38
|
+
stateModel: (0, stateModelFactory_1.stateModelFactory)(pluginManager),
|
|
50
39
|
ReactComponent: (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./AlignmentsFeatureDetail')))),
|
|
51
40
|
}));
|
|
52
41
|
}
|
|
53
|
-
exports.default =
|
|
42
|
+
exports.default = AlignmentFeatureDetailsF;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { LinearGenomeViewModel } from '@jbrowse/plugin-linear-genome-view';
|
|
2
|
+
import { ReducedFeature } from './getSAFeatures';
|
|
3
|
+
export declare function getBreakpointSplitView({ f1, f2, view, }: {
|
|
4
|
+
f1: ReducedFeature;
|
|
5
|
+
f2: ReducedFeature;
|
|
6
|
+
view: LinearGenomeViewModel;
|
|
7
|
+
}): {
|
|
8
|
+
type: string;
|
|
9
|
+
views: {
|
|
10
|
+
type: string;
|
|
11
|
+
displayedRegions: {
|
|
12
|
+
start: number;
|
|
13
|
+
end: number;
|
|
14
|
+
refName: string;
|
|
15
|
+
assemblyName: string;
|
|
16
|
+
}[];
|
|
17
|
+
hideHeader: boolean;
|
|
18
|
+
bpPerPx: number;
|
|
19
|
+
offsetPx: number;
|
|
20
|
+
}[];
|
|
21
|
+
displayName: string;
|
|
22
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getBreakpointSplitView = void 0;
|
|
4
|
+
const util_1 = require("@jbrowse/core/util");
|
|
5
|
+
function getBreakpointSplitView({ f1, f2, view, }) {
|
|
6
|
+
const { assemblyName } = view.displayedRegions[0];
|
|
7
|
+
const { assemblyManager } = (0, util_1.getSession)(view);
|
|
8
|
+
const assembly = assemblyManager.get(assemblyName);
|
|
9
|
+
if (!assembly) {
|
|
10
|
+
throw new Error(`assembly ${assemblyName} not found`);
|
|
11
|
+
}
|
|
12
|
+
if (!assembly.regions) {
|
|
13
|
+
throw new Error(`assembly ${assemblyName} regions not loaded`);
|
|
14
|
+
}
|
|
15
|
+
const topRegion = assembly.regions.find(f => f.refName === f1.refName);
|
|
16
|
+
const bottomRegion = assembly.regions.find(f => f.refName === f2.refName);
|
|
17
|
+
if (!topRegion || !bottomRegion) {
|
|
18
|
+
throw new Error(`unable to find the refName for the top or bottom of the breakpoint view`);
|
|
19
|
+
}
|
|
20
|
+
const topMarkedRegion = [{ ...topRegion }, { ...topRegion }];
|
|
21
|
+
const bottomMarkedRegion = [{ ...bottomRegion }, { ...bottomRegion }];
|
|
22
|
+
const s = f1.strand === 1 ? f1.end : f1.start;
|
|
23
|
+
const e = f2.strand === 1 ? f2.start : f2.end;
|
|
24
|
+
topMarkedRegion[0].end = s;
|
|
25
|
+
topMarkedRegion[1].start = s + 1;
|
|
26
|
+
bottomMarkedRegion[0].end = e;
|
|
27
|
+
bottomMarkedRegion[1].start = e + 1;
|
|
28
|
+
const bpPerPx = 10;
|
|
29
|
+
return {
|
|
30
|
+
type: 'BreakpointSplitView',
|
|
31
|
+
views: [
|
|
32
|
+
{
|
|
33
|
+
type: 'LinearGenomeView',
|
|
34
|
+
displayedRegions: topMarkedRegion,
|
|
35
|
+
hideHeader: true,
|
|
36
|
+
bpPerPx,
|
|
37
|
+
offsetPx: (topRegion.start + s) / bpPerPx,
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
type: 'LinearGenomeView',
|
|
41
|
+
displayedRegions: bottomMarkedRegion,
|
|
42
|
+
hideHeader: true,
|
|
43
|
+
bpPerPx,
|
|
44
|
+
offsetPx: (bottomRegion.start + e) / bpPerPx,
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
displayName: `breakend split detail`,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
exports.getBreakpointSplitView = getBreakpointSplitView;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import PluginManager from '@jbrowse/core/PluginManager';
|
|
2
|
+
import { Instance } from 'mobx-state-tree';
|
|
3
|
+
export declare function stateModelFactory(pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
|
|
4
|
+
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
5
|
+
type: import("mobx-state-tree").ISimpleType<"BaseFeatureWidget">;
|
|
6
|
+
featureData: import("mobx-state-tree").IType<any, any, any>;
|
|
7
|
+
formattedFields: import("mobx-state-tree").IType<any, any, any>;
|
|
8
|
+
unformattedFeatureData: import("mobx-state-tree").IType<any, any, any>;
|
|
9
|
+
view: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IAnyType>>;
|
|
10
|
+
track: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IAnyType>>;
|
|
11
|
+
trackId: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
12
|
+
trackType: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
13
|
+
maxDepth: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
|
|
14
|
+
} & {
|
|
15
|
+
type: import("mobx-state-tree").ISimpleType<"AlignmentsFeatureWidget">;
|
|
16
|
+
}, {
|
|
17
|
+
error: unknown;
|
|
18
|
+
} & {
|
|
19
|
+
setFeatureData(featureData: Record<string, unknown>): void;
|
|
20
|
+
clearFeatureData(): void;
|
|
21
|
+
setFormattedData(feat: Record<string, unknown>): void;
|
|
22
|
+
setExtra(type?: string | undefined, trackId?: string | undefined, maxDepth?: number | undefined): void;
|
|
23
|
+
setError(e: unknown): void;
|
|
24
|
+
} & {
|
|
25
|
+
afterCreate(): void;
|
|
26
|
+
}, {
|
|
27
|
+
type: "BaseFeatureWidget";
|
|
28
|
+
} & Partial<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
|
|
29
|
+
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
30
|
+
type: import("mobx-state-tree").ISimpleType<"BaseFeatureWidget">;
|
|
31
|
+
featureData: import("mobx-state-tree").IType<any, any, any>;
|
|
32
|
+
formattedFields: import("mobx-state-tree").IType<any, any, any>;
|
|
33
|
+
unformattedFeatureData: import("mobx-state-tree").IType<any, any, any>;
|
|
34
|
+
view: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IAnyType>>;
|
|
35
|
+
track: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IAnyType>>;
|
|
36
|
+
trackId: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
37
|
+
trackType: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
38
|
+
maxDepth: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
|
|
39
|
+
}>> & import("mobx-state-tree/dist/internal").NonEmptyObject & import("mobx-state-tree")._NotCustomized, {
|
|
40
|
+
id: string;
|
|
41
|
+
type: "BaseFeatureWidget";
|
|
42
|
+
track: import("mobx-state-tree").ReferenceIdentifier | undefined;
|
|
43
|
+
view: import("mobx-state-tree").ReferenceIdentifier | undefined;
|
|
44
|
+
trackId: string | undefined;
|
|
45
|
+
trackType: string | undefined;
|
|
46
|
+
maxDepth: number | undefined;
|
|
47
|
+
formattedFields: any;
|
|
48
|
+
finalizedFeatureData: any;
|
|
49
|
+
} & import("mobx-state-tree")._NotCustomized>;
|
|
50
|
+
export type AlignmentFeatureWidgetStateModel = ReturnType<typeof stateModelFactory>;
|
|
51
|
+
export type AlignmentFeatureWidgetModel = Instance<AlignmentFeatureWidgetStateModel>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.stateModelFactory = void 0;
|
|
4
|
+
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
5
|
+
const BaseFeatureWidget_1 = require("@jbrowse/core/BaseFeatureWidget");
|
|
6
|
+
function stateModelFactory(pluginManager) {
|
|
7
|
+
const baseModel = (0, BaseFeatureWidget_1.stateModelFactory)(pluginManager);
|
|
8
|
+
return mobx_state_tree_1.types.compose(baseModel, mobx_state_tree_1.types.model('AlignmentsFeatureWidget', {
|
|
9
|
+
type: mobx_state_tree_1.types.literal('AlignmentsFeatureWidget'),
|
|
10
|
+
}));
|
|
11
|
+
}
|
|
12
|
+
exports.stateModelFactory = stateModelFactory;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export declare const tags: {
|
|
2
|
+
AM: string;
|
|
3
|
+
AS: string;
|
|
4
|
+
BC: string;
|
|
5
|
+
BQ: string;
|
|
6
|
+
BZ: string;
|
|
7
|
+
CB: string;
|
|
8
|
+
CC: string;
|
|
9
|
+
CM: string;
|
|
10
|
+
CO: string;
|
|
11
|
+
CP: string;
|
|
12
|
+
CQ: string;
|
|
13
|
+
CR: string;
|
|
14
|
+
CS: string;
|
|
15
|
+
CT: string;
|
|
16
|
+
CY: string;
|
|
17
|
+
E2: string;
|
|
18
|
+
FI: string;
|
|
19
|
+
FS: string;
|
|
20
|
+
FZ: string;
|
|
21
|
+
GC: string;
|
|
22
|
+
GQ: string;
|
|
23
|
+
GS: string;
|
|
24
|
+
H0: string;
|
|
25
|
+
H1: string;
|
|
26
|
+
H2: string;
|
|
27
|
+
HI: string;
|
|
28
|
+
IH: string;
|
|
29
|
+
LB: string;
|
|
30
|
+
MC: string;
|
|
31
|
+
MD: string;
|
|
32
|
+
MF: string;
|
|
33
|
+
MI: string;
|
|
34
|
+
ML: string;
|
|
35
|
+
MM: string;
|
|
36
|
+
MQ: string;
|
|
37
|
+
NH: string;
|
|
38
|
+
NM: string;
|
|
39
|
+
OA: string;
|
|
40
|
+
OC: string;
|
|
41
|
+
OP: string;
|
|
42
|
+
OQ: string;
|
|
43
|
+
OX: string;
|
|
44
|
+
PG: string;
|
|
45
|
+
PQ: string;
|
|
46
|
+
PT: string;
|
|
47
|
+
PU: string;
|
|
48
|
+
Q2: string;
|
|
49
|
+
QT: string;
|
|
50
|
+
QX: string;
|
|
51
|
+
R2: string;
|
|
52
|
+
RG: string;
|
|
53
|
+
RT: string;
|
|
54
|
+
RX: string;
|
|
55
|
+
S2: string;
|
|
56
|
+
SA: string;
|
|
57
|
+
SM: string;
|
|
58
|
+
SQ: string;
|
|
59
|
+
TC: string;
|
|
60
|
+
TS: string;
|
|
61
|
+
U2: string;
|
|
62
|
+
UQ: string;
|
|
63
|
+
};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.tags = void 0;
|
|
4
|
+
exports.tags = {
|
|
5
|
+
AM: 'The smallest template-independent mapping quality in the template',
|
|
6
|
+
AS: 'Alignment score generated by aligner',
|
|
7
|
+
BC: 'Barcode sequence identifying the sample',
|
|
8
|
+
BQ: 'Offset to base alignment quality (BAQ)',
|
|
9
|
+
BZ: 'Phred quality of the unique molecular barcode bases in the {OX} tag',
|
|
10
|
+
CB: 'Cell identifier',
|
|
11
|
+
CC: 'Reference name of the next hit',
|
|
12
|
+
CM: 'Edit distance between the color sequence and the color reference (see also {NM})',
|
|
13
|
+
CO: 'Free-text comments',
|
|
14
|
+
CP: 'Leftmost coordinate of the next hit',
|
|
15
|
+
CQ: 'Color read base qualities',
|
|
16
|
+
CR: 'Cellular barcode sequence bases (uncorrected)',
|
|
17
|
+
CS: 'Color read sequence',
|
|
18
|
+
CT: 'Complete read annotation tag, used for consensus annotation dummy features',
|
|
19
|
+
CY: 'Phred quality of the cellular barcode sequence in the {CR} tag',
|
|
20
|
+
E2: 'The 2nd most likely base calls',
|
|
21
|
+
FI: 'The index of segment in the template',
|
|
22
|
+
FS: 'Segment suffix',
|
|
23
|
+
FZ: 'Flow signal intensities',
|
|
24
|
+
GC: 'Reserved for backwards compatibility reasons',
|
|
25
|
+
GQ: 'Reserved for backwards compatibility reasons',
|
|
26
|
+
GS: 'Reserved for backwards compatibility reasons',
|
|
27
|
+
H0: 'Number of perfect hits',
|
|
28
|
+
H1: 'Number of 1-difference hits (see also {NM})',
|
|
29
|
+
H2: 'Number of 2-difference hits',
|
|
30
|
+
HI: 'Query hit index',
|
|
31
|
+
IH: 'Query hit total count',
|
|
32
|
+
LB: 'Library',
|
|
33
|
+
MC: 'CIGAR string for mate/next segment',
|
|
34
|
+
MD: 'String encoding mismatched and deleted reference bases',
|
|
35
|
+
MF: 'Reserved for backwards compatibility reasons',
|
|
36
|
+
MI: 'Molecular identifier; a string that uniquely identifies the molecule from which the record was derived',
|
|
37
|
+
ML: 'Base modification probabilities',
|
|
38
|
+
MM: 'Base modifications / methylation ',
|
|
39
|
+
MQ: 'Mapping quality of the mate/next segment',
|
|
40
|
+
NH: 'Number of reported alignments that contain the query in the current record',
|
|
41
|
+
NM: 'Edit distance to the reference',
|
|
42
|
+
OA: 'Original alignment',
|
|
43
|
+
OC: 'Original CIGAR (deprecated; use {OA} instead)',
|
|
44
|
+
OP: 'Original mapping position (deprecated; use {OA} instead)',
|
|
45
|
+
OQ: 'Original base quality',
|
|
46
|
+
OX: 'Original unique molecular barcode bases',
|
|
47
|
+
PG: 'Program',
|
|
48
|
+
PQ: 'Phred likelihood of the template',
|
|
49
|
+
PT: 'Read annotations for parts of the padded read sequence',
|
|
50
|
+
PU: 'Platform unit',
|
|
51
|
+
Q2: 'Phred quality of the mate/next segment sequence in the {R2} tag',
|
|
52
|
+
QT: 'Phred quality of the sample barcode sequence in the {BC} tag',
|
|
53
|
+
QX: 'Quality score of the unique molecular identifier in the {RX} tag',
|
|
54
|
+
R2: 'Sequence of the mate/next segment in the template',
|
|
55
|
+
RG: 'Read group',
|
|
56
|
+
RT: 'Reserved for backwards compatibility reasons',
|
|
57
|
+
RX: 'Sequence bases of the (possibly corrected) unique molecular identifier',
|
|
58
|
+
S2: 'Reserved for backwards compatibility reasons',
|
|
59
|
+
SA: 'Other canonical alignments in a chimeric alignment',
|
|
60
|
+
SM: 'Template-independent mapping quality',
|
|
61
|
+
SQ: 'Reserved for backwards compatibility reasons',
|
|
62
|
+
TC: 'The number of segments in the template',
|
|
63
|
+
TS: 'Transcript strand',
|
|
64
|
+
U2: 'Phred probability of the 2nd call being wrong conditional on the best being wrong',
|
|
65
|
+
UQ: 'Phred likelihood of the segment, conditional on the mapping being correct',
|
|
66
|
+
};
|
|
@@ -65,14 +65,13 @@ class BamAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
|
65
65
|
const idToName = [];
|
|
66
66
|
const nameToId = {};
|
|
67
67
|
samHeader === null || samHeader === void 0 ? void 0 : samHeader.filter(l => l.tag === 'SQ').forEach((sqLine, refId) => {
|
|
68
|
-
sqLine.data.
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
});
|
|
68
|
+
const SN = sqLine.data.find(item => item.tag === 'SN');
|
|
69
|
+
if (SN) {
|
|
70
|
+
// this is the ref name
|
|
71
|
+
const refName = SN.value;
|
|
72
|
+
nameToId[refName] = refId;
|
|
73
|
+
idToName[refId] = refName;
|
|
74
|
+
}
|
|
76
75
|
});
|
|
77
76
|
return { idToName, nameToId };
|
|
78
77
|
});
|
|
@@ -144,7 +143,9 @@ class BamAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
|
144
143
|
}
|
|
145
144
|
if (tagFilter) {
|
|
146
145
|
const v = record.get(tagFilter.tag);
|
|
147
|
-
if (!(
|
|
146
|
+
if (!(tagFilter.value === '*'
|
|
147
|
+
? v !== undefined
|
|
148
|
+
: `${v}` === tagFilter.value)) {
|
|
148
149
|
continue;
|
|
149
150
|
}
|
|
150
151
|
}
|
|
@@ -22,12 +22,6 @@ class CramAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
|
22
22
|
async configurePre() {
|
|
23
23
|
const cramLocation = this.getConf('cramLocation');
|
|
24
24
|
const craiLocation = this.getConf('craiLocation');
|
|
25
|
-
if (!cramLocation) {
|
|
26
|
-
throw new Error('missing cramLocation argument');
|
|
27
|
-
}
|
|
28
|
-
if (!craiLocation) {
|
|
29
|
-
throw new Error('missing craiLocation argument');
|
|
30
|
-
}
|
|
31
25
|
const pm = this.pluginManager;
|
|
32
26
|
const cram = new cram_1.IndexedCramFile({
|
|
33
27
|
cramFilehandle: (0, io_1.openLocation)(cramLocation, pm),
|
|
@@ -40,6 +34,9 @@ class CramAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
|
40
34
|
throw new Error('Error getting subadapter');
|
|
41
35
|
}
|
|
42
36
|
const seqConf = this.getConf('sequenceAdapter');
|
|
37
|
+
if (!seqConf) {
|
|
38
|
+
throw new Error('no sequenceAdapter supplied to CramAdapter config');
|
|
39
|
+
}
|
|
43
40
|
const subadapter = await this.getSubAdapter(seqConf);
|
|
44
41
|
return {
|
|
45
42
|
cram,
|
|
@@ -86,8 +83,9 @@ class CramAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
|
86
83
|
return chunkSeq.slice(trimStart, trimStart + trimLength);
|
|
87
84
|
})
|
|
88
85
|
.join('');
|
|
89
|
-
|
|
90
|
-
|
|
86
|
+
const qlen = end - start;
|
|
87
|
+
if (sequence.length !== qlen) {
|
|
88
|
+
throw new Error(`fetching ${refName}:${(0, util_1.toLocale)(start - 1)}-${(0, util_1.toLocale)(end)} returned ${(0, util_1.toLocale)(sequence.length)} bases, should have returned ${(0, util_1.toLocale)(qlen)}`);
|
|
91
89
|
}
|
|
92
90
|
return sequence;
|
|
93
91
|
}
|
|
@@ -104,14 +102,12 @@ class CramAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
|
104
102
|
samHeader
|
|
105
103
|
.filter(l => l.tag === 'SQ')
|
|
106
104
|
.forEach((sqLine, refId) => {
|
|
107
|
-
sqLine.data.
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}
|
|
114
|
-
});
|
|
105
|
+
const SN = sqLine.data.find(item => item.tag === 'SN');
|
|
106
|
+
if (SN) {
|
|
107
|
+
const refName = SN.value;
|
|
108
|
+
nameToId[refName] = refId;
|
|
109
|
+
idToName[refId] = refName;
|
|
110
|
+
}
|
|
115
111
|
});
|
|
116
112
|
const readGroups = samHeader
|
|
117
113
|
.filter(l => l.tag === 'RG')
|
|
@@ -161,7 +157,7 @@ class CramAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
|
161
157
|
const { signal, filterBy, statusCallback = () => { } } = opts || {};
|
|
162
158
|
const { refName, start, end, originalRefName } = region;
|
|
163
159
|
return (0, rxjs_1.ObservableCreate)(async (observer) => {
|
|
164
|
-
const { cram } = await this.setup(opts);
|
|
160
|
+
const { cram, samHeader } = await this.setup(opts);
|
|
165
161
|
const refId = this.refNameToId(refName);
|
|
166
162
|
if (refId === undefined) {
|
|
167
163
|
console.warn('Unknown refName', refName);
|
|
@@ -183,9 +179,11 @@ class CramAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
|
183
179
|
}
|
|
184
180
|
if (tagFilter) {
|
|
185
181
|
const v = tagFilter.tag === 'RG'
|
|
186
|
-
? (_a =
|
|
182
|
+
? (_a = samHeader.readGroups) === null || _a === void 0 ? void 0 : _a[record.readGroupId]
|
|
187
183
|
: record.tags[tagFilter.tag];
|
|
188
|
-
if (!(
|
|
184
|
+
if (!(tagFilter.value === '*'
|
|
185
|
+
? v !== undefined
|
|
186
|
+
: `${v}` === tagFilter.value)) {
|
|
189
187
|
continue;
|
|
190
188
|
}
|
|
191
189
|
}
|
|
@@ -46,28 +46,32 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
|
|
|
46
46
|
message: string | undefined;
|
|
47
47
|
maxHeightReached: boolean;
|
|
48
48
|
ReactComponent: ({ model, }: {
|
|
49
|
-
model:
|
|
50
|
-
|
|
49
|
+
model: {
|
|
50
|
+
error?: unknown;
|
|
51
|
+
reload: () => void;
|
|
52
|
+
message: import("react").ReactNode;
|
|
53
|
+
filled?: boolean | undefined;
|
|
54
|
+
status?: string | undefined;
|
|
55
|
+
reactElement?: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
|
|
56
|
+
};
|
|
57
|
+
}) => import("react").JSX.Element | undefined;
|
|
51
58
|
renderProps: any;
|
|
52
59
|
} & {
|
|
53
60
|
doReload(): void;
|
|
54
61
|
afterAttach(): void;
|
|
55
62
|
setStatus(message: string): void;
|
|
56
63
|
setLoading(abortController: AbortController): void;
|
|
57
|
-
setMessage(messageText: string): void;
|
|
64
|
+
setMessage(messageText: string): void; /**
|
|
65
|
+
* #action
|
|
66
|
+
*/
|
|
58
67
|
setRendered(props: {
|
|
59
68
|
reactElement: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
|
60
|
-
/**
|
|
61
|
-
* #action
|
|
62
|
-
*/
|
|
63
69
|
features: Map<string, Feature>;
|
|
64
70
|
layout: any;
|
|
65
71
|
maxHeightReached: boolean;
|
|
66
72
|
renderProps: any;
|
|
67
73
|
} | undefined): void;
|
|
68
|
-
setError(error: unknown): void;
|
|
69
|
-
* #action
|
|
70
|
-
*/
|
|
74
|
+
setError(error: unknown): void;
|
|
71
75
|
reload(): void;
|
|
72
76
|
beforeDestroy(): void;
|
|
73
77
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
@@ -173,11 +177,11 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
|
|
|
173
177
|
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
|
|
174
178
|
rendererTypeName: string;
|
|
175
179
|
error: unknown;
|
|
176
|
-
message: string | undefined;
|
|
177
|
-
} & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
|
|
178
|
-
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>; /**
|
|
180
|
+
message: string | undefined; /**
|
|
179
181
|
* #property
|
|
180
182
|
*/
|
|
183
|
+
} & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
|
|
184
|
+
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
181
185
|
type: import("mobx-state-tree").ISimpleType<string>;
|
|
182
186
|
rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
183
187
|
}, {
|
|
@@ -220,7 +224,9 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
|
|
|
220
224
|
} & {
|
|
221
225
|
afterAttach(): void;
|
|
222
226
|
} & {
|
|
223
|
-
setCurrStatsBpPerPx(n: number): void;
|
|
227
|
+
setCurrStatsBpPerPx(n: number): void; /**
|
|
228
|
+
* #property
|
|
229
|
+
*/
|
|
224
230
|
setFeatureDensityStatsLimit(stats?: import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats | undefined): void;
|
|
225
231
|
getFeatureDensityStats(): Promise<import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats>;
|
|
226
232
|
setFeatureDensityStatsP(arg: any): void;
|
|
@@ -241,13 +247,17 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
|
|
|
241
247
|
} & {
|
|
242
248
|
readonly renderDelay: number;
|
|
243
249
|
readonly TooltipComponent: import("react").FC<any>;
|
|
244
|
-
readonly selectedFeatureId: string | undefined;
|
|
250
|
+
readonly selectedFeatureId: string | undefined; /**
|
|
251
|
+
* #action
|
|
252
|
+
*/
|
|
245
253
|
readonly DisplayMessageComponent: import("react").FC<any> | undefined;
|
|
246
254
|
} & {
|
|
247
255
|
readonly features: import("@jbrowse/core/util/compositeMap").default<string, Feature>;
|
|
248
256
|
readonly featureUnderMouse: Feature | undefined;
|
|
249
257
|
getFeatureOverlapping(blockKey: string, x: number, y: number): string | undefined;
|
|
250
|
-
getFeatureByID(blockKey: string, id: string): [number, number, number, number] | undefined;
|
|
258
|
+
getFeatureByID(blockKey: string, id: string): [number, number, number, number] | undefined; /**
|
|
259
|
+
* #action
|
|
260
|
+
*/
|
|
251
261
|
searchFeatureByID(id: string): [number, number, number, number] | undefined;
|
|
252
262
|
} & {
|
|
253
263
|
addBlock(key: string, block: import("@jbrowse/core/util/blockTypes").BaseBlock): void;
|
|
@@ -450,28 +460,32 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
|
|
|
450
460
|
message: string | undefined;
|
|
451
461
|
maxHeightReached: boolean;
|
|
452
462
|
ReactComponent: ({ model, }: {
|
|
453
|
-
model:
|
|
454
|
-
|
|
463
|
+
model: {
|
|
464
|
+
error?: unknown;
|
|
465
|
+
reload: () => void;
|
|
466
|
+
message: import("react").ReactNode;
|
|
467
|
+
filled?: boolean | undefined;
|
|
468
|
+
status?: string | undefined;
|
|
469
|
+
reactElement?: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
|
|
470
|
+
};
|
|
471
|
+
}) => import("react").JSX.Element | undefined;
|
|
455
472
|
renderProps: any;
|
|
456
473
|
} & {
|
|
457
474
|
doReload(): void;
|
|
458
475
|
afterAttach(): void;
|
|
459
476
|
setStatus(message: string): void;
|
|
460
477
|
setLoading(abortController: AbortController): void;
|
|
461
|
-
setMessage(messageText: string): void;
|
|
478
|
+
setMessage(messageText: string): void; /**
|
|
479
|
+
* #action
|
|
480
|
+
*/
|
|
462
481
|
setRendered(props: {
|
|
463
482
|
reactElement: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
|
464
|
-
/**
|
|
465
|
-
* #action
|
|
466
|
-
*/
|
|
467
483
|
features: Map<string, Feature>;
|
|
468
484
|
layout: any;
|
|
469
485
|
maxHeightReached: boolean;
|
|
470
486
|
renderProps: any;
|
|
471
487
|
} | undefined): void;
|
|
472
|
-
setError(error: unknown): void;
|
|
473
|
-
* #action
|
|
474
|
-
*/
|
|
488
|
+
setError(error: unknown): void;
|
|
475
489
|
reload(): void;
|
|
476
490
|
beforeDestroy(): void;
|
|
477
491
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
@@ -46,10 +46,10 @@ const shared_1 = require("../shared");
|
|
|
46
46
|
const util_2 = require("../util");
|
|
47
47
|
const color_1 = require("../shared/color");
|
|
48
48
|
// async
|
|
49
|
-
const
|
|
50
|
-
const
|
|
51
|
-
const
|
|
52
|
-
const
|
|
49
|
+
const FilterByTagDialog = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('../shared/FilterByTag'))));
|
|
50
|
+
const ColorByTagDialog = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./components/ColorByTag'))));
|
|
51
|
+
const SetFeatureHeightDialog = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./components/SetFeatureHeight'))));
|
|
52
|
+
const SetMaxHeightDialog = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./components/SetMaxHeight'))));
|
|
53
53
|
// using a map because it preserves order
|
|
54
54
|
const rendererTypes = new Map([
|
|
55
55
|
['pileup', 'PileupRenderer'],
|
|
@@ -421,7 +421,7 @@ function SharedLinearPileupDisplayMixin(configSchema) {
|
|
|
421
421
|
label: 'Color by tag...',
|
|
422
422
|
onClick: () => {
|
|
423
423
|
(0, util_1.getSession)(self).queueDialog(doneCallback => [
|
|
424
|
-
|
|
424
|
+
ColorByTagDialog,
|
|
425
425
|
{ model: self, handleClose: doneCallback },
|
|
426
426
|
]);
|
|
427
427
|
},
|
|
@@ -439,7 +439,7 @@ function SharedLinearPileupDisplayMixin(configSchema) {
|
|
|
439
439
|
icon: ClearAll_1.default,
|
|
440
440
|
onClick: () => {
|
|
441
441
|
(0, util_1.getSession)(self).queueDialog(doneCallback => [
|
|
442
|
-
|
|
442
|
+
FilterByTagDialog,
|
|
443
443
|
{ model: self, handleClose: doneCallback },
|
|
444
444
|
]);
|
|
445
445
|
},
|
|
@@ -465,7 +465,7 @@ function SharedLinearPileupDisplayMixin(configSchema) {
|
|
|
465
465
|
label: 'Manually set height',
|
|
466
466
|
onClick: () => {
|
|
467
467
|
(0, util_1.getSession)(self).queueDialog(doneCallback => [
|
|
468
|
-
|
|
468
|
+
SetFeatureHeightDialog,
|
|
469
469
|
{ model: self, handleClose: doneCallback },
|
|
470
470
|
]);
|
|
471
471
|
},
|
|
@@ -476,7 +476,7 @@ function SharedLinearPileupDisplayMixin(configSchema) {
|
|
|
476
476
|
label: 'Set max height...',
|
|
477
477
|
onClick: () => {
|
|
478
478
|
(0, util_1.getSession)(self).queueDialog(doneCallback => [
|
|
479
|
-
|
|
479
|
+
SetMaxHeightDialog,
|
|
480
480
|
{ model: self, handleClose: doneCallback },
|
|
481
481
|
]);
|
|
482
482
|
},
|