@jbrowse/plugin-alignments 2.6.3 → 2.7.0
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 +2 -1
- package/dist/AlignmentsFeatureDetail/util.d.ts +1 -3
- package/dist/BamAdapter/BamAdapter.d.ts +2 -9
- package/dist/CramAdapter/CramAdapter.d.ts +3 -11
- package/dist/CramAdapter/CramAdapter.js +2 -1
- package/dist/CramAdapter/util.js +3 -6
- package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +3 -4
- package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +3 -3
- package/dist/LinearAlignmentsDisplay/models/model.d.ts +5 -9
- package/dist/LinearAlignmentsDisplay/models/model.js +1 -0
- package/dist/LinearPileupDisplay/SharedLinearPileupDisplayMixin.d.ts +49 -27
- package/dist/LinearPileupDisplay/SharedLinearPileupDisplayMixin.js +20 -2
- package/dist/LinearPileupDisplay/components/ColorByModifications.d.ts +4 -5
- package/dist/LinearPileupDisplay/components/ColorByModifications.js +3 -4
- package/dist/LinearPileupDisplay/components/ColorByTag.d.ts +7 -5
- package/dist/LinearPileupDisplay/components/ColorByTag.js +4 -7
- package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.d.ts +3 -4
- package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +2 -2
- package/dist/LinearPileupDisplay/components/SetFeatureHeight.d.ts +4 -5
- package/dist/LinearPileupDisplay/components/SetFeatureHeight.js +3 -3
- package/dist/LinearPileupDisplay/components/SetMaxHeight.d.ts +3 -4
- package/dist/LinearPileupDisplay/components/SetMaxHeight.js +3 -3
- package/dist/LinearPileupDisplay/components/SortByTag.d.ts +3 -4
- package/dist/LinearPileupDisplay/components/SortByTag.js +3 -3
- package/dist/LinearPileupDisplay/model.d.ts +56 -35
- package/dist/LinearPileupDisplay/model.js +3 -2
- package/dist/LinearReadArcsDisplay/components/ReactComponent.d.ts +2 -2
- package/dist/LinearReadArcsDisplay/components/ReactComponent.js +2 -1
- package/dist/LinearReadArcsDisplay/model.d.ts +9 -14
- package/dist/LinearReadCloudDisplay/components/ReactComponent.d.ts +2 -2
- package/dist/LinearReadCloudDisplay/components/ReactComponent.js +2 -1
- package/dist/LinearReadCloudDisplay/drawPairChains.js +1 -2
- package/dist/LinearReadCloudDisplay/model.d.ts +13 -15
- package/dist/LinearSNPCoverageDisplay/components/Tooltip.js +1 -1
- package/dist/LinearSNPCoverageDisplay/models/model.d.ts +18 -423
- package/dist/LinearSNPCoverageDisplay/models/model.js +18 -0
- package/dist/MismatchParser/index.js +6 -8
- package/dist/PileupRenderer/PileupRenderer.js +0 -25
- package/dist/PileupRenderer/colorBy.js +1 -1
- package/dist/PileupRenderer/components/PileupRendering.d.ts +9 -10
- package/dist/PileupRenderer/components/PileupRendering.js +3 -5
- package/dist/PileupRenderer/getAlignmentShapeColor.js +1 -1
- package/dist/PileupRenderer/layoutFeature.js +1 -2
- package/dist/PileupRenderer/makeImageData.d.ts +1 -3
- package/dist/PileupRenderer/renderMethylation.js +5 -10
- package/dist/PileupRenderer/renderMismatches.d.ts +2 -6
- package/dist/PileupRenderer/renderMismatches.js +8 -11
- package/dist/PileupRenderer/renderModifications.js +4 -8
- package/dist/PileupRenderer/renderSoftClipping.js +26 -25
- package/dist/PileupRenderer/sortUtil.js +2 -2
- package/dist/SNPCoverageAdapter/util.d.ts +9 -13
- package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js +6 -12
- package/dist/shared/BaseDisplayComponent.d.ts +2 -2
- package/dist/shared/BaseDisplayComponent.js +2 -1
- package/dist/shared/FilterByTag.d.ts +6 -15
- package/dist/shared/FilterByTag.js +4 -6
- package/dist/shared/fetchChains.js +1 -0
- package/dist/shared/index.d.ts +9 -0
- package/dist/util.d.ts +3 -9
- package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +2 -2
- package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +2 -1
- package/esm/AlignmentsFeatureDetail/util.d.ts +1 -3
- package/esm/BamAdapter/BamAdapter.d.ts +2 -9
- package/esm/CramAdapter/CramAdapter.d.ts +3 -11
- package/esm/CramAdapter/CramAdapter.js +2 -1
- package/esm/CramAdapter/util.js +3 -6
- package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +3 -4
- package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +3 -3
- package/esm/LinearAlignmentsDisplay/models/model.d.ts +5 -9
- package/esm/LinearAlignmentsDisplay/models/model.js +1 -0
- package/esm/LinearPileupDisplay/SharedLinearPileupDisplayMixin.d.ts +49 -27
- package/esm/LinearPileupDisplay/SharedLinearPileupDisplayMixin.js +20 -2
- package/esm/LinearPileupDisplay/components/ColorByModifications.d.ts +4 -5
- package/esm/LinearPileupDisplay/components/ColorByModifications.js +3 -4
- package/esm/LinearPileupDisplay/components/ColorByTag.d.ts +7 -5
- package/esm/LinearPileupDisplay/components/ColorByTag.js +4 -7
- package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.d.ts +3 -4
- package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +2 -2
- package/esm/LinearPileupDisplay/components/SetFeatureHeight.d.ts +4 -5
- package/esm/LinearPileupDisplay/components/SetFeatureHeight.js +3 -3
- package/esm/LinearPileupDisplay/components/SetMaxHeight.d.ts +3 -4
- package/esm/LinearPileupDisplay/components/SetMaxHeight.js +3 -3
- package/esm/LinearPileupDisplay/components/SortByTag.d.ts +3 -4
- package/esm/LinearPileupDisplay/components/SortByTag.js +3 -3
- package/esm/LinearPileupDisplay/model.d.ts +56 -35
- package/esm/LinearPileupDisplay/model.js +3 -2
- package/esm/LinearReadArcsDisplay/components/ReactComponent.d.ts +2 -2
- package/esm/LinearReadArcsDisplay/components/ReactComponent.js +2 -1
- package/esm/LinearReadArcsDisplay/model.d.ts +9 -14
- package/esm/LinearReadCloudDisplay/components/ReactComponent.d.ts +2 -2
- package/esm/LinearReadCloudDisplay/components/ReactComponent.js +2 -1
- package/esm/LinearReadCloudDisplay/drawPairChains.js +1 -2
- package/esm/LinearReadCloudDisplay/model.d.ts +13 -15
- package/esm/LinearSNPCoverageDisplay/components/Tooltip.js +1 -1
- package/esm/LinearSNPCoverageDisplay/models/model.d.ts +18 -423
- package/esm/LinearSNPCoverageDisplay/models/model.js +18 -0
- package/esm/MismatchParser/index.js +6 -8
- package/esm/PileupRenderer/PileupRenderer.js +0 -2
- package/esm/PileupRenderer/colorBy.js +1 -1
- package/esm/PileupRenderer/components/PileupRendering.d.ts +9 -10
- package/esm/PileupRenderer/components/PileupRendering.js +3 -5
- package/esm/PileupRenderer/getAlignmentShapeColor.js +1 -1
- package/esm/PileupRenderer/layoutFeature.js +1 -2
- package/esm/PileupRenderer/makeImageData.d.ts +1 -3
- package/esm/PileupRenderer/renderMethylation.js +5 -10
- package/esm/PileupRenderer/renderMismatches.d.ts +2 -6
- package/esm/PileupRenderer/renderMismatches.js +8 -11
- package/esm/PileupRenderer/renderModifications.js +4 -8
- package/esm/PileupRenderer/renderSoftClipping.js +26 -25
- package/esm/PileupRenderer/sortUtil.js +2 -2
- package/esm/SNPCoverageAdapter/util.d.ts +9 -13
- package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js +6 -12
- package/esm/shared/BaseDisplayComponent.d.ts +2 -2
- package/esm/shared/BaseDisplayComponent.js +3 -2
- package/esm/shared/FilterByTag.d.ts +6 -15
- package/esm/shared/FilterByTag.js +4 -6
- package/esm/shared/fetchChains.js +1 -0
- package/esm/shared/index.d.ts +9 -0
- package/esm/util.d.ts +3 -9
- package/package.json +3 -4
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import PluginManager from '@jbrowse/core/PluginManager';
|
|
3
|
-
import { AnyConfigurationSchemaType
|
|
3
|
+
import { AnyConfigurationSchemaType } from '@jbrowse/core/configuration';
|
|
4
4
|
/**
|
|
5
5
|
* #stateModel LinearSNPCoverageDisplay
|
|
6
6
|
* extends `LinearWiggleDisplay`
|
|
@@ -19,11 +19,11 @@ declare function stateModelFactory(pluginManager: PluginManager, configSchema: A
|
|
|
19
19
|
key: import("mobx-state-tree").ISimpleType<string>;
|
|
20
20
|
region: import("mobx-state-tree").IModelType<{
|
|
21
21
|
refName: import("mobx-state-tree").ISimpleType<string>;
|
|
22
|
-
start: import("mobx-state-tree").ISimpleType<number>;
|
|
23
|
-
end: import("mobx-state-tree").ISimpleType<number>;
|
|
24
|
-
reversed: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>; /**
|
|
22
|
+
start: import("mobx-state-tree").ISimpleType<number>; /**
|
|
25
23
|
* #property
|
|
26
24
|
*/
|
|
25
|
+
end: import("mobx-state-tree").ISimpleType<number>;
|
|
26
|
+
reversed: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
|
|
27
27
|
} & {
|
|
28
28
|
assemblyName: import("mobx-state-tree").ISimpleType<string>;
|
|
29
29
|
}, {
|
|
@@ -37,19 +37,16 @@ declare function stateModelFactory(pluginManager: PluginManager, configSchema: A
|
|
|
37
37
|
filled: boolean;
|
|
38
38
|
reactElement: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
|
|
39
39
|
features: Map<string, import("@jbrowse/core/util").Feature> | undefined;
|
|
40
|
-
layout: any;
|
|
40
|
+
layout: any; /**
|
|
41
|
+
* #property
|
|
42
|
+
*/
|
|
41
43
|
status: string;
|
|
42
44
|
error: unknown;
|
|
43
45
|
message: string | undefined;
|
|
44
46
|
maxHeightReached: boolean;
|
|
45
47
|
ReactComponent: ({ model, }: {
|
|
46
|
-
/**
|
|
47
|
-
* #property
|
|
48
|
-
*/
|
|
49
48
|
model: any;
|
|
50
|
-
}) => any;
|
|
51
|
-
* #property
|
|
52
|
-
*/
|
|
49
|
+
}) => any;
|
|
53
50
|
renderProps: any;
|
|
54
51
|
} & {
|
|
55
52
|
doReload(): void;
|
|
@@ -88,7 +85,9 @@ declare function stateModelFactory(pluginManager: PluginManager, configSchema: A
|
|
|
88
85
|
type: string;
|
|
89
86
|
description: string;
|
|
90
87
|
defaultValue: string;
|
|
91
|
-
contextVariable: string[];
|
|
88
|
+
contextVariable: string[]; /**
|
|
89
|
+
* #property
|
|
90
|
+
*/
|
|
92
91
|
};
|
|
93
92
|
}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, "displayId">>;
|
|
94
93
|
} & {
|
|
@@ -98,19 +97,11 @@ declare function stateModelFactory(pluginManager: PluginManager, configSchema: A
|
|
|
98
97
|
minSize: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
|
|
99
98
|
color: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
100
99
|
posColor: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
101
|
-
negColor: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
102
|
-
|
|
103
|
-
*/
|
|
104
|
-
summaryScoreMode: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>; /**
|
|
105
|
-
* #property
|
|
106
|
-
*/
|
|
100
|
+
negColor: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
101
|
+
summaryScoreMode: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
107
102
|
rendererTypeNameState: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
108
|
-
scale: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
109
|
-
|
|
110
|
-
*/
|
|
111
|
-
autoscale: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>; /**
|
|
112
|
-
* #property
|
|
113
|
-
*/
|
|
103
|
+
scale: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
104
|
+
autoscale: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
114
105
|
displayCrossHatches: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<boolean>>;
|
|
115
106
|
constraints: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IModelType<{
|
|
116
107
|
max: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
|
|
@@ -155,406 +146,10 @@ declare function stateModelFactory(pluginManager: PluginManager, configSchema: A
|
|
|
155
146
|
type: import("mobx-state-tree").ISimpleType<string>;
|
|
156
147
|
tag: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
157
148
|
}, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
158
|
-
}, {
|
|
159
|
-
rendererTypeName: string;
|
|
160
|
-
error: unknown;
|
|
161
|
-
message: string | undefined;
|
|
162
|
-
} & {
|
|
163
|
-
readonly RenderingComponent: import("react").FC<{
|
|
164
|
-
model: {
|
|
165
|
-
id: string;
|
|
166
|
-
type: string;
|
|
167
|
-
rpcDriverName: string | undefined;
|
|
168
|
-
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
|
|
169
|
-
rendererTypeName: string;
|
|
170
|
-
error: unknown;
|
|
171
|
-
message: string | undefined;
|
|
172
|
-
} & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
|
|
173
|
-
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
174
|
-
type: import("mobx-state-tree").ISimpleType<string>;
|
|
175
|
-
rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
176
|
-
}, {
|
|
177
|
-
rendererTypeName: string;
|
|
178
|
-
error: unknown;
|
|
179
|
-
message: string | undefined;
|
|
180
|
-
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
181
|
-
onHorizontalScroll?: Function | undefined;
|
|
182
|
-
blockState?: Record<string, any> | undefined;
|
|
183
|
-
}>;
|
|
184
|
-
readonly DisplayBlurb: import("react").FC<{
|
|
185
|
-
model: {
|
|
186
|
-
id: string;
|
|
187
|
-
type: string;
|
|
188
|
-
rpcDriverName: string | undefined;
|
|
189
|
-
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
|
|
190
|
-
rendererTypeName: string;
|
|
191
|
-
error: unknown;
|
|
192
|
-
message: string | undefined;
|
|
193
|
-
} & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
|
|
194
|
-
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
195
|
-
type: import("mobx-state-tree").ISimpleType<string>;
|
|
196
|
-
rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
197
|
-
}, {
|
|
198
|
-
rendererTypeName: string;
|
|
199
|
-
error: unknown;
|
|
200
|
-
message: string | undefined;
|
|
201
|
-
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
202
|
-
}> | null;
|
|
203
|
-
readonly adapterConfig: any; /**
|
|
204
|
-
* #getter
|
|
205
|
-
*/
|
|
206
|
-
readonly parentTrack: any;
|
|
207
|
-
renderProps(): any;
|
|
208
|
-
readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType;
|
|
209
|
-
readonly DisplayMessageComponent: import("react").FC<any> | undefined;
|
|
210
|
-
trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
|
|
211
|
-
readonly viewMenuActions: import("@jbrowse/core/ui").MenuItem[];
|
|
212
|
-
regionCannotBeRendered(): null;
|
|
213
|
-
} & {
|
|
214
|
-
setMessage(arg?: string | undefined): void;
|
|
215
|
-
setError(error?: unknown): void;
|
|
216
|
-
setRpcDriverName(rpcDriverName: string): void;
|
|
217
|
-
reload(): void;
|
|
218
|
-
} & {
|
|
219
|
-
scrollTop: number;
|
|
220
|
-
} & {
|
|
221
|
-
readonly height: number;
|
|
222
|
-
} & {
|
|
223
|
-
setScrollTop(scrollTop: number): void;
|
|
224
|
-
setHeight(displayHeight: number): number;
|
|
225
|
-
resizeHeight(distance: number): number;
|
|
226
|
-
} & {
|
|
227
|
-
featureDensityStatsP: Promise<import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats> | undefined;
|
|
228
|
-
featureDensityStats: import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats | undefined;
|
|
229
|
-
currStatsBpPerPx: number;
|
|
230
|
-
} & {
|
|
231
|
-
readonly currentBytesRequested: number;
|
|
232
|
-
readonly currentFeatureScreenDensity: number;
|
|
233
|
-
readonly maxFeatureScreenDensity: any;
|
|
234
|
-
readonly featureDensityStatsReady: boolean;
|
|
235
|
-
readonly maxAllowableBytes: number;
|
|
236
|
-
} & {
|
|
237
|
-
afterAttach(): void;
|
|
238
|
-
} & {
|
|
239
|
-
setCurrStatsBpPerPx(n: number): void;
|
|
240
|
-
setFeatureDensityStatsLimit(stats?: import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats | undefined): void;
|
|
241
|
-
getFeatureDensityStats(): Promise<import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats>;
|
|
242
|
-
setFeatureDensityStatsP(arg: any): void;
|
|
243
|
-
setFeatureDensityStats(featureDensityStats?: import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats | undefined): void;
|
|
244
|
-
clearFeatureDensityStats(): void;
|
|
245
|
-
} & {
|
|
246
|
-
readonly regionTooLarge: boolean;
|
|
247
|
-
readonly regionTooLargeReason: string;
|
|
248
|
-
} & {
|
|
249
|
-
regionCannotBeRenderedText(_region: import("@jbrowse/core/util").Region): "" | "Force load to see features";
|
|
250
|
-
regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react").JSX.Element | null;
|
|
251
|
-
} & {
|
|
252
|
-
featureIdUnderMouse: string | undefined;
|
|
253
|
-
contextMenuFeature: import("@jbrowse/core/util").Feature | undefined;
|
|
254
|
-
} & {
|
|
255
|
-
readonly blockType: "dynamicBlocks" | "staticBlocks";
|
|
256
|
-
readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
|
|
257
|
-
} & {
|
|
258
|
-
readonly renderDelay: number;
|
|
259
|
-
readonly TooltipComponent: import("react").FC<any>;
|
|
260
|
-
readonly selectedFeatureId: string | undefined;
|
|
261
|
-
readonly DisplayMessageComponent: import("react").FC<any> | undefined;
|
|
262
|
-
} & {
|
|
263
|
-
readonly features: import("@jbrowse/core/util/compositeMap").default<string, import("@jbrowse/core/util").Feature>;
|
|
264
|
-
readonly featureUnderMouse: import("@jbrowse/core/util").Feature | undefined;
|
|
265
|
-
getFeatureOverlapping(blockKey: string, x: number, y: number): string | undefined;
|
|
266
|
-
getFeatureByID(blockKey: string, id: string): [number, number, number, number] | undefined;
|
|
267
|
-
searchFeatureByID(id: string): [number, number, number, number] | undefined;
|
|
268
|
-
} & {
|
|
269
|
-
addBlock(key: string, block: import("@jbrowse/core/util/blockTypes").BaseBlock): void;
|
|
270
|
-
deleteBlock(key: string): void;
|
|
271
|
-
selectFeature(feature: import("@jbrowse/core/util").Feature): void;
|
|
272
|
-
clearFeatureSelection(): void;
|
|
273
|
-
setFeatureIdUnderMouse(feature?: string | undefined): void;
|
|
274
|
-
setContextMenuFeature(feature?: import("@jbrowse/core/util").Feature | undefined): void;
|
|
275
|
-
} & {
|
|
276
|
-
reload(): Promise<void>;
|
|
277
|
-
} & {
|
|
278
|
-
trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
|
|
279
|
-
contextMenuItems(): import("@jbrowse/core/ui").MenuItem[];
|
|
280
|
-
renderProps(): any;
|
|
281
|
-
} & {
|
|
282
|
-
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
|
|
283
|
-
afterAttach(): void;
|
|
284
|
-
} & {
|
|
285
|
-
message: string | undefined;
|
|
286
|
-
stats: {
|
|
287
|
-
scoreMin: number;
|
|
288
|
-
scoreMax: number;
|
|
289
|
-
} | undefined;
|
|
290
|
-
statsFetchInProgress: AbortController | undefined;
|
|
291
|
-
} & {
|
|
292
|
-
updateQuantitativeStats(stats: {
|
|
293
|
-
scoreMin: number;
|
|
294
|
-
scoreMax: number;
|
|
295
|
-
}): void;
|
|
296
|
-
setColor(color?: string | undefined): void;
|
|
297
|
-
setPosColor(color?: string | undefined): void;
|
|
298
|
-
setNegColor(color?: string | undefined): void;
|
|
299
|
-
setLoading(aborter: AbortController): void;
|
|
300
|
-
selectFeature(feature: import("@jbrowse/core/util").Feature): void;
|
|
301
|
-
setResolution(res: number): void;
|
|
302
|
-
setFill(fill: number): void;
|
|
303
|
-
toggleLogScale(): void;
|
|
304
|
-
setScaleType(scale?: string | undefined): void;
|
|
305
|
-
setSummaryScoreMode(val: string): void;
|
|
306
|
-
setAutoscale(val: string): void;
|
|
307
|
-
setMaxScore(val?: number | undefined): void;
|
|
308
|
-
setRendererType(val: string): void;
|
|
309
|
-
setMinScore(val?: number | undefined): void;
|
|
310
|
-
toggleCrossHatches(): void;
|
|
311
|
-
setCrossHatches(cross: boolean): void;
|
|
312
|
-
} & {
|
|
313
|
-
readonly adapterTypeName: any;
|
|
314
|
-
readonly rendererTypeNameSimple: any;
|
|
315
|
-
readonly filters: undefined;
|
|
316
|
-
readonly scaleType: any;
|
|
317
|
-
readonly maxScore: any;
|
|
318
|
-
readonly minScore: any;
|
|
319
|
-
} & {
|
|
320
|
-
readonly adapterCapabilities: string[];
|
|
321
|
-
readonly rendererConfig: {
|
|
322
|
-
[x: string]: any;
|
|
323
|
-
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
|
|
324
|
-
setSubschema(slotName: string, data: unknown): any;
|
|
325
|
-
} & import("mobx-state-tree").IStateTreeNode<AnyConfigurationSchemaType>;
|
|
326
|
-
readonly autoscaleType: any;
|
|
327
|
-
} & {
|
|
328
|
-
readonly domain: number[] | undefined;
|
|
329
|
-
} & {
|
|
330
|
-
readonly filled: boolean;
|
|
331
|
-
readonly summaryScoreModeSetting: string;
|
|
332
|
-
readonly scaleOpts: {
|
|
333
|
-
domain: number[] | undefined;
|
|
334
|
-
stats: {
|
|
335
|
-
scoreMin: number;
|
|
336
|
-
scoreMax: number;
|
|
337
|
-
} | undefined;
|
|
338
|
-
autoscaleType: any;
|
|
339
|
-
scaleType: any;
|
|
340
|
-
inverted: any;
|
|
341
|
-
};
|
|
342
|
-
readonly canHaveFill: boolean;
|
|
343
|
-
readonly displayCrossHatchesSetting: boolean;
|
|
344
|
-
readonly hasResolution: boolean;
|
|
345
|
-
readonly hasGlobalStats: boolean;
|
|
346
|
-
} & {
|
|
347
|
-
scoreTrackMenuItems(): ({
|
|
348
|
-
label: string;
|
|
349
|
-
subMenu: {
|
|
350
|
-
label: string;
|
|
351
|
-
onClick: () => void;
|
|
352
|
-
}[];
|
|
353
|
-
onClick?: undefined;
|
|
354
|
-
} | {
|
|
355
|
-
label: string;
|
|
356
|
-
subMenu: {
|
|
357
|
-
label: string;
|
|
358
|
-
type: string;
|
|
359
|
-
checked: boolean;
|
|
360
|
-
onClick: () => void;
|
|
361
|
-
}[];
|
|
362
|
-
onClick?: undefined;
|
|
363
|
-
} | {
|
|
364
|
-
label: string;
|
|
365
|
-
onClick: () => void;
|
|
366
|
-
subMenu?: undefined;
|
|
367
|
-
})[];
|
|
368
|
-
} & {
|
|
369
|
-
reload(): Promise<void>;
|
|
370
|
-
} & {
|
|
371
|
-
readonly TooltipComponent: import("react").FC<{}>;
|
|
372
|
-
readonly rendererTypeName: string; /**
|
|
373
|
-
* #property
|
|
374
|
-
*/
|
|
375
|
-
} & {
|
|
376
|
-
readonly ticks: {
|
|
377
|
-
range: number[];
|
|
378
|
-
values: number[];
|
|
379
|
-
format: (d: import("d3-scale").NumberValue) => string;
|
|
380
|
-
position: import("d3-scale").ScaleLinear<number, number, never> | import("d3-scale").ScaleQuantize<number, never>;
|
|
381
|
-
} | undefined;
|
|
382
|
-
} & {
|
|
383
|
-
renderProps(): any;
|
|
384
|
-
readonly needsScalebar: boolean;
|
|
385
|
-
readonly fillSetting: 0 | 1 | 2;
|
|
386
|
-
} & {
|
|
387
|
-
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 | {
|
|
388
|
-
label: string;
|
|
389
|
-
subMenu: ({
|
|
390
|
-
label: string;
|
|
391
|
-
subMenu: {
|
|
392
|
-
label: string;
|
|
393
|
-
onClick: () => void;
|
|
394
|
-
}[];
|
|
395
|
-
onClick?: undefined;
|
|
396
|
-
} | {
|
|
397
|
-
label: string;
|
|
398
|
-
subMenu: {
|
|
399
|
-
label: string;
|
|
400
|
-
type: string;
|
|
401
|
-
checked: boolean;
|
|
402
|
-
onClick: () => void;
|
|
403
|
-
}[];
|
|
404
|
-
onClick?: undefined;
|
|
405
|
-
} | {
|
|
406
|
-
label: string;
|
|
407
|
-
onClick: () => void;
|
|
408
|
-
subMenu?: undefined;
|
|
409
|
-
})[];
|
|
410
|
-
type?: undefined;
|
|
411
|
-
checked?: undefined;
|
|
412
|
-
onClick?: undefined;
|
|
413
|
-
} | {
|
|
414
|
-
label: string;
|
|
415
|
-
subMenu: {
|
|
416
|
-
label: string;
|
|
417
|
-
type: string;
|
|
418
|
-
checked: boolean; /**
|
|
419
|
-
* #getter
|
|
420
|
-
*/
|
|
421
|
-
onClick: () => void;
|
|
422
|
-
}[];
|
|
423
|
-
type?: undefined;
|
|
424
|
-
checked?: undefined;
|
|
425
|
-
onClick?: undefined;
|
|
426
|
-
} | {
|
|
427
|
-
type: string;
|
|
428
|
-
label: string;
|
|
429
|
-
checked: boolean;
|
|
430
|
-
onClick: () => void;
|
|
431
|
-
subMenu?: undefined;
|
|
432
|
-
})[];
|
|
433
|
-
} & {
|
|
434
|
-
afterAttach(): void;
|
|
435
|
-
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
|
|
436
|
-
} & {
|
|
437
|
-
modificationTagMap: import("mobx").ObservableMap<string, string>;
|
|
438
|
-
modificationsReady: boolean;
|
|
439
|
-
} & {
|
|
440
|
-
/**
|
|
441
|
-
* #action
|
|
442
|
-
*/
|
|
443
|
-
setConfig(configuration: AnyConfigurationModel): void;
|
|
444
149
|
/**
|
|
445
|
-
* #
|
|
446
|
-
*/
|
|
447
|
-
setFilterBy(filter: {
|
|
448
|
-
flagInclude: number;
|
|
449
|
-
flagExclude: number;
|
|
450
|
-
readName?: string;
|
|
451
|
-
tagFilter?: {
|
|
452
|
-
tag: string;
|
|
453
|
-
value: string;
|
|
454
|
-
};
|
|
455
|
-
}): void;
|
|
456
|
-
/**
|
|
457
|
-
* #action
|
|
458
|
-
*/
|
|
459
|
-
setColorBy(colorBy?: {
|
|
460
|
-
type: string;
|
|
461
|
-
tag?: string;
|
|
462
|
-
}): void;
|
|
463
|
-
/**
|
|
464
|
-
* #action
|
|
465
|
-
*/
|
|
466
|
-
updateModificationColorMap(uniqueModifications: string[]): void;
|
|
467
|
-
} & {
|
|
468
|
-
/**
|
|
469
|
-
* #getter
|
|
470
|
-
*/
|
|
471
|
-
readonly rendererConfig: {
|
|
472
|
-
[x: string]: any;
|
|
473
|
-
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
|
|
474
|
-
setSubschema(slotName: string, data: unknown): any;
|
|
475
|
-
} & import("mobx-state-tree").IStateTreeNode<AnyConfigurationSchemaType>;
|
|
476
|
-
/**
|
|
477
|
-
* #getter
|
|
478
|
-
*/
|
|
479
|
-
readonly drawArcsSetting: any;
|
|
480
|
-
/**
|
|
481
|
-
* #getter
|
|
482
|
-
*/
|
|
483
|
-
readonly drawInterbaseCountsSetting: any;
|
|
484
|
-
/**
|
|
485
|
-
* #getter
|
|
486
|
-
*/
|
|
487
|
-
readonly drawIndicatorsSetting: any;
|
|
488
|
-
/**
|
|
489
|
-
* #getter
|
|
490
|
-
*/
|
|
491
|
-
readonly autorunReady: boolean;
|
|
492
|
-
readonly renderReady: boolean;
|
|
493
|
-
readonly ready: boolean;
|
|
494
|
-
/**
|
|
495
|
-
* #method
|
|
496
|
-
*/
|
|
497
|
-
renderProps(): any;
|
|
498
|
-
} & {
|
|
499
|
-
/**
|
|
500
|
-
* #action
|
|
501
|
-
*/
|
|
502
|
-
setModificationsReady(flag: boolean): void;
|
|
503
|
-
/**
|
|
504
|
-
* #action
|
|
505
|
-
*/
|
|
506
|
-
toggleDrawIndicators(): void;
|
|
507
|
-
/**
|
|
508
|
-
* #action
|
|
509
|
-
*/
|
|
510
|
-
toggleDrawInterbaseCounts(): void;
|
|
511
|
-
/**
|
|
512
|
-
* #action
|
|
513
|
-
*/
|
|
514
|
-
toggleDrawArcs(): void;
|
|
515
|
-
} & {
|
|
516
|
-
afterAttach(): void;
|
|
517
|
-
} & {
|
|
518
|
-
/**
|
|
519
|
-
* #getter
|
|
520
|
-
*/
|
|
521
|
-
readonly TooltipComponent: (props: {
|
|
522
|
-
model: {
|
|
523
|
-
featureUnderMouse: import("@jbrowse/core/util").Feature;
|
|
524
|
-
};
|
|
525
|
-
height: number;
|
|
526
|
-
offsetMouseCoord: [number, number];
|
|
527
|
-
clientMouseCoord: [number, number];
|
|
528
|
-
clientRect?: DOMRect | undefined;
|
|
529
|
-
}) => import("react").JSX.Element | null;
|
|
530
|
-
/**
|
|
531
|
-
* #getter
|
|
532
|
-
*/
|
|
533
|
-
readonly adapterConfig: {
|
|
534
|
-
type: string;
|
|
535
|
-
subadapter: any;
|
|
536
|
-
};
|
|
537
|
-
/**
|
|
538
|
-
* #getter
|
|
539
|
-
*/
|
|
540
|
-
readonly rendererTypeName: string | undefined;
|
|
541
|
-
/**
|
|
542
|
-
* #getter
|
|
543
|
-
*/
|
|
544
|
-
readonly needsScalebar: boolean;
|
|
545
|
-
/**
|
|
546
|
-
* #method
|
|
547
|
-
*/
|
|
548
|
-
contextMenuItems(): never[];
|
|
549
|
-
/**
|
|
550
|
-
* #method
|
|
150
|
+
* #property
|
|
551
151
|
*/
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
type: string;
|
|
555
|
-
checked: any;
|
|
556
|
-
onClick: () => void;
|
|
557
|
-
})[];
|
|
558
|
-
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
152
|
+
jexlFilters: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").ISimpleType<string>>, [undefined]>;
|
|
153
|
+
}, never, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
559
154
|
export type SNPCoverageDisplayModel = ReturnType<typeof stateModelFactory>;
|
|
560
155
|
export default stateModelFactory;
|
|
@@ -3,6 +3,7 @@ import { observable } from 'mobx';
|
|
|
3
3
|
import { getConf, readConfObject, } from '@jbrowse/core/configuration';
|
|
4
4
|
import { linearWiggleDisplayModelFactory } from '@jbrowse/plugin-wiggle';
|
|
5
5
|
import { getContainingView } from '@jbrowse/core/util';
|
|
6
|
+
import SerializableFilterChain from '@jbrowse/core/pluggableElementTypes/renderers/util/serializableFilterChain';
|
|
6
7
|
// locals
|
|
7
8
|
import Tooltip from '../components/Tooltip';
|
|
8
9
|
import { FilterModel, getUniqueModificationValues } from '../../shared';
|
|
@@ -44,6 +45,10 @@ function stateModelFactory(pluginManager, configSchema) {
|
|
|
44
45
|
type: types.string,
|
|
45
46
|
tag: types.maybe(types.string),
|
|
46
47
|
})),
|
|
48
|
+
/**
|
|
49
|
+
* #property
|
|
50
|
+
*/
|
|
51
|
+
jexlFilters: types.optional(types.array(types.string), []),
|
|
47
52
|
}))
|
|
48
53
|
.volatile(() => ({
|
|
49
54
|
modificationTagMap: observable.map({}),
|
|
@@ -68,6 +73,12 @@ function stateModelFactory(pluginManager, configSchema) {
|
|
|
68
73
|
setColorBy(colorBy) {
|
|
69
74
|
self.colorBy = cast(colorBy);
|
|
70
75
|
},
|
|
76
|
+
/**
|
|
77
|
+
* #action
|
|
78
|
+
*/
|
|
79
|
+
setJexlFilters(filters) {
|
|
80
|
+
self.jexlFilters = cast(filters);
|
|
81
|
+
},
|
|
71
82
|
/**
|
|
72
83
|
* #action
|
|
73
84
|
*/
|
|
@@ -142,6 +153,7 @@ function stateModelFactory(pluginManager, configSchema) {
|
|
|
142
153
|
return {
|
|
143
154
|
...superProps,
|
|
144
155
|
notReady: !this.ready,
|
|
156
|
+
filters: self.filters,
|
|
145
157
|
modificationTagMap: Object.fromEntries(modificationTagMap.toJSON()),
|
|
146
158
|
// must use getSnapshot because otherwise changes to e.g. just the
|
|
147
159
|
// colorBy.type are not read
|
|
@@ -264,6 +276,12 @@ function stateModelFactory(pluginManager, configSchema) {
|
|
|
264
276
|
},
|
|
265
277
|
];
|
|
266
278
|
},
|
|
279
|
+
/**
|
|
280
|
+
* #getter
|
|
281
|
+
*/
|
|
282
|
+
get filters() {
|
|
283
|
+
return new SerializableFilterChain({ filters: self.jexlFilters });
|
|
284
|
+
},
|
|
267
285
|
};
|
|
268
286
|
});
|
|
269
287
|
}
|
|
@@ -146,8 +146,7 @@ export function mdToMismatches(mdstring, ops, cigarMismatches, seq, qual) {
|
|
|
146
146
|
}
|
|
147
147
|
// now actually parse the MD string
|
|
148
148
|
const md = mdstring.match(mdRegex) || [];
|
|
149
|
-
for (
|
|
150
|
-
const token = md[i];
|
|
149
|
+
for (const token of md) {
|
|
151
150
|
const num = +token;
|
|
152
151
|
if (!Number.isNaN(num)) {
|
|
153
152
|
curr.start += num;
|
|
@@ -157,6 +156,7 @@ export function mdToMismatches(mdstring, ops, cigarMismatches, seq, qual) {
|
|
|
157
156
|
}
|
|
158
157
|
else {
|
|
159
158
|
// mismatch
|
|
159
|
+
// eslint-disable-next-line @typescript-eslint/prefer-for-of
|
|
160
160
|
for (let j = 0; j < token.length; j += 1) {
|
|
161
161
|
curr.length = 1;
|
|
162
162
|
while (lastSkipPos < skips.length) {
|
|
@@ -264,8 +264,7 @@ export function getModificationPositions(mm, fseq, fstrand) {
|
|
|
264
264
|
const seq = fstrand === -1 ? revcom(fseq) : fseq;
|
|
265
265
|
const mods = mm.split(';').filter(mod => !!mod);
|
|
266
266
|
const result = [];
|
|
267
|
-
for (
|
|
268
|
-
const mod = mods[i];
|
|
267
|
+
for (const mod of mods) {
|
|
269
268
|
const [basemod, ...skips] = mod.split(',');
|
|
270
269
|
// regexes based on parse_mm.pl from hts-specs
|
|
271
270
|
const matches = basemod.match(modificationRegex);
|
|
@@ -285,12 +284,11 @@ export function getModificationPositions(mm, fseq, fstrand) {
|
|
|
285
284
|
// sequence of the read, if we have a modification type e.g. C+m;2 and a
|
|
286
285
|
// sequence ACGTACGTAC we skip the two instances of C and go to the last
|
|
287
286
|
// C
|
|
288
|
-
for (
|
|
289
|
-
const type = types[j];
|
|
287
|
+
for (const type of types) {
|
|
290
288
|
let i = 0;
|
|
291
289
|
const positions = [];
|
|
292
|
-
for (
|
|
293
|
-
let delta = +
|
|
290
|
+
for (const d of skips) {
|
|
291
|
+
let delta = +d;
|
|
294
292
|
do {
|
|
295
293
|
if (base === 'N' || base === seq[i]) {
|
|
296
294
|
delta--;
|
|
@@ -53,7 +53,6 @@ export default class PileupRenderer extends BoxRendererType {
|
|
|
53
53
|
: undefined;
|
|
54
54
|
const width = (region.end - region.start) / bpPerPx;
|
|
55
55
|
const height = Math.max(layout.getTotalHeight(), 1);
|
|
56
|
-
const Color = await import('color').then(f => f.default);
|
|
57
56
|
const res = await renderToAbstractCanvas(width, height, renderProps, ctx => makeImageData({
|
|
58
57
|
ctx,
|
|
59
58
|
layoutRecords: layoutRecords.filter(notEmpty),
|
|
@@ -63,7 +62,6 @@ export default class PileupRenderer extends BoxRendererType {
|
|
|
63
62
|
layout,
|
|
64
63
|
features,
|
|
65
64
|
regionSequence,
|
|
66
|
-
Color,
|
|
67
65
|
},
|
|
68
66
|
}));
|
|
69
67
|
const results = await super.render({
|
|
@@ -8,7 +8,7 @@ export function colorByInsertSize(feature) {
|
|
|
8
8
|
: `hsl(${Math.abs(feature.get('template_length')) / 10},50%,50%)`;
|
|
9
9
|
}
|
|
10
10
|
export function colorByMappingQuality(feature) {
|
|
11
|
-
return `hsl(${feature.get('
|
|
11
|
+
return `hsl(${feature.get('score')},50%,50%)`;
|
|
12
12
|
}
|
|
13
13
|
function getOrientation(feature, config) {
|
|
14
14
|
const orientationType = readConfObject(config, 'orientationType');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Region } from '@jbrowse/core/util/types';
|
|
3
3
|
import type { BaseLinearDisplayModel } from '@jbrowse/plugin-linear-genome-view';
|
|
4
|
-
declare
|
|
4
|
+
declare const PileupRendering: (props: {
|
|
5
5
|
blockKey: string;
|
|
6
6
|
displayModel: BaseLinearDisplayModel;
|
|
7
7
|
width: number;
|
|
@@ -12,17 +12,16 @@ declare function PileupRendering(props: {
|
|
|
12
12
|
type: string;
|
|
13
13
|
pos: number;
|
|
14
14
|
refName: string;
|
|
15
|
-
};
|
|
15
|
+
} | undefined;
|
|
16
16
|
colorBy?: {
|
|
17
17
|
type: string;
|
|
18
|
-
tag?: string;
|
|
19
|
-
};
|
|
18
|
+
tag?: string | undefined;
|
|
19
|
+
} | undefined;
|
|
20
20
|
filterBy?: {
|
|
21
21
|
tagFilter?: {
|
|
22
22
|
tag: string;
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
onMouseMove?: (event: React.MouseEvent, featureId?: string) => void;
|
|
26
|
-
})
|
|
27
|
-
|
|
28
|
-
export default _default;
|
|
23
|
+
} | undefined;
|
|
24
|
+
} | undefined;
|
|
25
|
+
onMouseMove?: ((event: React.MouseEvent, featureId?: string) => void) | undefined;
|
|
26
|
+
}) => React.JSX.Element;
|
|
27
|
+
export default PileupRendering;
|
|
@@ -5,7 +5,7 @@ import { observer } from 'mobx-react';
|
|
|
5
5
|
// used so that user can click-away-from-feature below the laid out features
|
|
6
6
|
// (issue #1248)
|
|
7
7
|
const canvasPadding = 100;
|
|
8
|
-
|
|
8
|
+
const PileupRendering = observer(function (props) {
|
|
9
9
|
var _a;
|
|
10
10
|
const { onMouseMove, blockKey, displayModel, width, height, regions, bpPerPx, sortedBy, colorBy, filterBy, } = props;
|
|
11
11
|
const { selectedFeatureId, featureIdUnderMouse, contextMenuFeature } = displayModel;
|
|
@@ -108,10 +108,8 @@ function PileupRendering(props) {
|
|
|
108
108
|
}
|
|
109
109
|
function callMouseHandler(handlerName, event) {
|
|
110
110
|
// @ts-expect-error
|
|
111
|
-
// eslint-disable-next-line react/destructuring-assignment
|
|
112
111
|
const featureHandler = props[`onFeature${handlerName}`];
|
|
113
112
|
// @ts-expect-error
|
|
114
|
-
// eslint-disable-next-line react/destructuring-assignment
|
|
115
113
|
const canvasHandler = props[`on${handlerName}`];
|
|
116
114
|
if (featureHandler && featureIdUnderMouse) {
|
|
117
115
|
featureHandler(event, featureIdUnderMouse);
|
|
@@ -132,5 +130,5 @@ function PileupRendering(props) {
|
|
|
132
130
|
.join('-')}`, style: { position: 'relative', width: canvasWidth, height } },
|
|
133
131
|
React.createElement(PrerenderedCanvas, { ...props, style: { position: 'absolute', left: 0, top: 0 } }),
|
|
134
132
|
React.createElement("canvas", { "data-testid": "pileup_overlay_canvas", width: canvasWidth, height: height + canvasPadding, style: { position: 'absolute', left: 0, top: 0 }, className: "highlightOverlayCanvas", ref: highlightOverlayCanvas, onMouseDown: event => onMouseDown(event), onMouseEnter: event => onMouseEnter(event), onMouseOut: event => onMouseOut(event), onMouseOver: event => onMouseOver(event), onMouseUp: event => onMouseUp(event), onMouseLeave: event => onMouseLeave(event), onMouseMove: event => mouseMove(event), onClick: event => onClick(event), onContextMenu: event => onContextMenu(event), onFocus: () => { }, onBlur: () => { } })));
|
|
135
|
-
}
|
|
136
|
-
export default
|
|
133
|
+
});
|
|
134
|
+
export default PileupRendering;
|