@jbrowse/plugin-alignments 2.6.3 → 2.7.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 +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/PileupRPC/methods/GetReducedFeatures.d.ts +2 -2
- 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/PileupRPC/methods/GetReducedFeatures.d.ts +2 -2
- 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
|
import React from 'react';
|
|
2
2
|
import { IAnyStateTreeNode } from 'mobx-state-tree';
|
|
3
|
-
declare const
|
|
3
|
+
declare const AlignmentsFeatureDetails: (props: {
|
|
4
4
|
model: IAnyStateTreeNode;
|
|
5
5
|
}) => React.JSX.Element;
|
|
6
|
-
export default
|
|
6
|
+
export default AlignmentsFeatureDetails;
|
|
@@ -120,7 +120,7 @@ function PairLink({ locString, model, }) {
|
|
|
120
120
|
(0, util_1.navToLoc)(locString, model);
|
|
121
121
|
}, href: "#" }, locString));
|
|
122
122
|
}
|
|
123
|
-
|
|
123
|
+
const AlignmentsFeatureDetails = (0, mobx_react_1.observer)(function (props) {
|
|
124
124
|
const { model } = props;
|
|
125
125
|
const feat = (0, clone_1.default)(model.featureData);
|
|
126
126
|
const SA = (0, util_1.getTag)('SA', feat);
|
|
@@ -131,3 +131,4 @@ exports.default = (0, mobx_react_1.observer)(function AlignmentFeatureDetails(pr
|
|
|
131
131
|
SA ? react_1.default.createElement(AlignmentsFeatureSuppAligns_1.default, { model: model, tag: SA }) : null,
|
|
132
132
|
feat.flags !== undefined ? (react_1.default.createElement(AlignmentsFeatureFlags_1.default, { feature: feat, ...props })) : null));
|
|
133
133
|
});
|
|
134
|
+
exports.default = AlignmentsFeatureDetails;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { IAnyStateTreeNode } from 'mobx-state-tree';
|
|
2
2
|
export declare function getTag(tag: string, feat: {
|
|
3
|
-
tags?:
|
|
4
|
-
[key: string]: unknown;
|
|
5
|
-
};
|
|
3
|
+
tags?: Record<string, unknown>;
|
|
6
4
|
[key: string]: unknown;
|
|
7
5
|
}): unknown;
|
|
8
6
|
export declare function navToLoc(locString: string, model: IAnyStateTreeNode): Promise<void>;
|
|
@@ -2,6 +2,7 @@ import { BamFile } from '@gmod/bam';
|
|
|
2
2
|
import { BaseFeatureDataAdapter, BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
|
|
3
3
|
import { Region } from '@jbrowse/core/util/types';
|
|
4
4
|
import { Feature } from '@jbrowse/core/util';
|
|
5
|
+
import { IFilter } from '../shared';
|
|
5
6
|
interface Header {
|
|
6
7
|
idToName: string[];
|
|
7
8
|
nameToId: Record<string, number>;
|
|
@@ -29,15 +30,7 @@ export default class BamAdapter extends BaseFeatureDataAdapter {
|
|
|
29
30
|
getFeatures(region: Region & {
|
|
30
31
|
originalRefName?: string;
|
|
31
32
|
}, opts?: BaseOptions & {
|
|
32
|
-
filterBy:
|
|
33
|
-
flagInclude: number;
|
|
34
|
-
flagExclude: number;
|
|
35
|
-
tagFilter: {
|
|
36
|
-
tag: string;
|
|
37
|
-
value: unknown;
|
|
38
|
-
};
|
|
39
|
-
readName: string;
|
|
40
|
-
};
|
|
33
|
+
filterBy: IFilter;
|
|
41
34
|
}): import("rxjs").Observable<Feature>;
|
|
42
35
|
getMultiRegionFeatureDensityStats(regions: Region[], opts?: BaseOptions): Promise<import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats | {
|
|
43
36
|
bytes: number;
|
|
@@ -2,20 +2,12 @@ import { IndexedCramFile, CramRecord } from '@gmod/cram';
|
|
|
2
2
|
import { BaseFeatureDataAdapter, BaseOptions, BaseSequenceAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
|
|
3
3
|
import { Region, Feature } from '@jbrowse/core/util';
|
|
4
4
|
import CramSlightlyLazyFeature from './CramSlightlyLazyFeature';
|
|
5
|
+
import { IFilter } from '../shared';
|
|
5
6
|
interface Header {
|
|
6
7
|
idToName?: string[];
|
|
7
8
|
nameToId?: Record<string, number>;
|
|
8
9
|
readGroups?: (string | undefined)[];
|
|
9
10
|
}
|
|
10
|
-
interface FilterBy {
|
|
11
|
-
flagInclude: number;
|
|
12
|
-
flagExclude: number;
|
|
13
|
-
tagFilter: {
|
|
14
|
-
tag: string;
|
|
15
|
-
value: unknown;
|
|
16
|
-
};
|
|
17
|
-
readName: string;
|
|
18
|
-
}
|
|
19
11
|
export default class CramAdapter extends BaseFeatureDataAdapter {
|
|
20
12
|
samHeader: Header;
|
|
21
13
|
private setupP?;
|
|
@@ -30,7 +22,7 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
|
|
|
30
22
|
cram: IndexedCramFile;
|
|
31
23
|
sequenceAdapter: BaseSequenceAdapter;
|
|
32
24
|
}>;
|
|
33
|
-
getHeader(
|
|
25
|
+
getHeader(_opts?: BaseOptions): Promise<string | undefined>;
|
|
34
26
|
private seqFetch;
|
|
35
27
|
private setupPre;
|
|
36
28
|
private setup;
|
|
@@ -41,7 +33,7 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
|
|
|
41
33
|
getFeatures(region: Region & {
|
|
42
34
|
originalRefName?: string;
|
|
43
35
|
}, opts?: BaseOptions & {
|
|
44
|
-
filterBy:
|
|
36
|
+
filterBy: IFilter;
|
|
45
37
|
}): import("rxjs").Observable<Feature>;
|
|
46
38
|
freeResources(): void;
|
|
47
39
|
cramRecordToFeature(record: CramRecord): CramSlightlyLazyFeature;
|
|
@@ -10,6 +10,7 @@ const io_1 = require("@jbrowse/core/util/io");
|
|
|
10
10
|
const rxjs_1 = require("@jbrowse/core/util/rxjs");
|
|
11
11
|
const operators_1 = require("rxjs/operators");
|
|
12
12
|
const rxjs_2 = require("rxjs");
|
|
13
|
+
// locals
|
|
13
14
|
const CramSlightlyLazyFeature_1 = __importDefault(require("./CramSlightlyLazyFeature"));
|
|
14
15
|
class CramAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
15
16
|
constructor() {
|
|
@@ -54,7 +55,7 @@ class CramAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
|
54
55
|
}
|
|
55
56
|
return this.configureP;
|
|
56
57
|
}
|
|
57
|
-
async getHeader(
|
|
58
|
+
async getHeader(_opts) {
|
|
58
59
|
const { cram } = await this.configure();
|
|
59
60
|
return cram.cram.getHeaderText();
|
|
60
61
|
}
|
package/dist/CramAdapter/util.js
CHANGED
|
@@ -11,9 +11,7 @@ function readFeaturesToMismatches(readFeatures, start, qual) {
|
|
|
11
11
|
let refPos = 0;
|
|
12
12
|
let sublen = 0;
|
|
13
13
|
let lastPos = start;
|
|
14
|
-
for (
|
|
15
|
-
const f = readFeatures[i];
|
|
16
|
-
const { code, pos, data, sub, ref } = f;
|
|
14
|
+
for (const { refPos: p, code, pos, data, sub, ref } of readFeatures) {
|
|
17
15
|
sublen = refPos - lastPos;
|
|
18
16
|
lastPos = refPos;
|
|
19
17
|
if (sublen && insLen > 0) {
|
|
@@ -25,7 +23,7 @@ function readFeaturesToMismatches(readFeatures, start, qual) {
|
|
|
25
23
|
};
|
|
26
24
|
insLen = 0;
|
|
27
25
|
}
|
|
28
|
-
refPos =
|
|
26
|
+
refPos = p - 1 - start;
|
|
29
27
|
if (code === 'X') {
|
|
30
28
|
// substitution
|
|
31
29
|
mismatches[j++] = {
|
|
@@ -134,8 +132,7 @@ function readFeaturesToCIGAR(readFeatures, alignmentStart, readLen, refRegion) {
|
|
|
134
132
|
let sublen = 0;
|
|
135
133
|
let insLen = 0;
|
|
136
134
|
if (readFeatures !== undefined) {
|
|
137
|
-
for (
|
|
138
|
-
const { code, refPos, sub, data } = readFeatures[i];
|
|
135
|
+
for (const { code, refPos, sub, data } of readFeatures) {
|
|
139
136
|
sublen = refPos - lastPos;
|
|
140
137
|
seq += ref.slice(lastPos - refStart, refPos - refStart);
|
|
141
138
|
lastPos = refPos;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { AlignmentsDisplayModel } from '../models/model';
|
|
3
|
-
declare
|
|
3
|
+
declare const AlignmentsDisplay: ({ model, }: {
|
|
4
4
|
model: AlignmentsDisplayModel;
|
|
5
|
-
})
|
|
6
|
-
|
|
7
|
-
export default _default;
|
|
5
|
+
}) => React.JSX.Element | null;
|
|
6
|
+
export default AlignmentsDisplay;
|
|
@@ -15,7 +15,7 @@ const useStyles = (0, mui_1.makeStyles)()({
|
|
|
15
15
|
zIndex: 2,
|
|
16
16
|
},
|
|
17
17
|
});
|
|
18
|
-
function AlignmentsDisplay({ model }) {
|
|
18
|
+
const AlignmentsDisplay = (0, mobx_react_1.observer)(function AlignmentsDisplay({ model, }) {
|
|
19
19
|
var _a;
|
|
20
20
|
const { PileupDisplay, SNPCoverageDisplay } = model;
|
|
21
21
|
const { classes } = useStyles();
|
|
@@ -35,5 +35,5 @@ function AlignmentsDisplay({ model }) {
|
|
|
35
35
|
top,
|
|
36
36
|
} },
|
|
37
37
|
react_1.default.createElement(PileupDisplay.RenderingComponent, { model: PileupDisplay }))));
|
|
38
|
-
}
|
|
39
|
-
exports.default =
|
|
38
|
+
});
|
|
39
|
+
exports.default = AlignmentsDisplay;
|
|
@@ -55,10 +55,7 @@ declare function stateModelFactory(pluginManager: PluginManager, configSchema: A
|
|
|
55
55
|
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
|
|
56
56
|
rendererTypeName: string;
|
|
57
57
|
error: unknown;
|
|
58
|
-
message: string | undefined;
|
|
59
|
-
* #property
|
|
60
|
-
* refers to LinearPileupDisplay sub-display model
|
|
61
|
-
*/
|
|
58
|
+
message: string | undefined;
|
|
62
59
|
} & IStateTreeNode<import("mobx-state-tree").IModelType<{
|
|
63
60
|
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
64
61
|
type: import("mobx-state-tree").ISimpleType<string>;
|
|
@@ -69,14 +66,13 @@ declare function stateModelFactory(pluginManager: PluginManager, configSchema: A
|
|
|
69
66
|
message: string | undefined;
|
|
70
67
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
71
68
|
}> | null;
|
|
72
|
-
readonly adapterConfig: any;
|
|
73
|
-
* #stateModel LinearAlignmentsDisplay
|
|
74
|
-
* extends `BaseDisplay`
|
|
75
|
-
*/
|
|
69
|
+
readonly adapterConfig: any;
|
|
76
70
|
readonly parentTrack: any;
|
|
77
71
|
renderProps(): any;
|
|
78
72
|
readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType;
|
|
79
|
-
readonly DisplayMessageComponent: React.FC<any> | undefined;
|
|
73
|
+
readonly DisplayMessageComponent: React.FC<any> | undefined; /**
|
|
74
|
+
* #action
|
|
75
|
+
*/
|
|
80
76
|
trackMenuItems(): MenuItem[];
|
|
81
77
|
readonly viewMenuActions: MenuItem[];
|
|
82
78
|
regionCannotBeRendered(): null;
|
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
/* eslint-disable react-refresh/only-export-components */
|
|
6
7
|
const react_1 = __importDefault(require("react"));
|
|
7
8
|
const mobx_1 = require("mobx");
|
|
8
9
|
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
@@ -1,17 +1,10 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { AnyConfigurationModel, AnyConfigurationSchemaType } from '@jbrowse/core/configuration';
|
|
3
|
+
import SerializableFilterChain from '@jbrowse/core/pluggableElementTypes/renderers/util/serializableFilterChain';
|
|
3
4
|
import { Feature } from '@jbrowse/core/util';
|
|
4
5
|
import { ContentCopy as ContentCopyIcon } from '@jbrowse/core/ui/Icons';
|
|
6
|
+
import { IFilter } from '../shared';
|
|
5
7
|
import { ExtraColorBy } from '../shared/color';
|
|
6
|
-
export interface Filter {
|
|
7
|
-
flagInclude: number;
|
|
8
|
-
flagExclude: number;
|
|
9
|
-
readName?: string;
|
|
10
|
-
tagFilter?: {
|
|
11
|
-
tag: string;
|
|
12
|
-
value: string;
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
8
|
/**
|
|
16
9
|
* #stateModel SharedLinearPileupDisplayMixin
|
|
17
10
|
* #category display
|
|
@@ -61,17 +54,20 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
|
|
|
61
54
|
afterAttach(): void;
|
|
62
55
|
setStatus(message: string): void;
|
|
63
56
|
setLoading(abortController: AbortController): void;
|
|
64
|
-
setMessage(messageText: string): void;
|
|
65
|
-
* #action
|
|
66
|
-
*/
|
|
57
|
+
setMessage(messageText: string): void;
|
|
67
58
|
setRendered(props: {
|
|
68
59
|
reactElement: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
|
60
|
+
/**
|
|
61
|
+
* #action
|
|
62
|
+
*/
|
|
69
63
|
features: Map<string, Feature>;
|
|
70
64
|
layout: any;
|
|
71
65
|
maxHeightReached: boolean;
|
|
72
66
|
renderProps: any;
|
|
73
67
|
} | undefined): void;
|
|
74
|
-
setError(error: unknown): void;
|
|
68
|
+
setError(error: unknown): void; /**
|
|
69
|
+
* #action
|
|
70
|
+
*/
|
|
75
71
|
reload(): void;
|
|
76
72
|
beforeDestroy(): void;
|
|
77
73
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
@@ -139,6 +135,10 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
|
|
|
139
135
|
value: import("mobx-state-tree").ISimpleType<string>;
|
|
140
136
|
}, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
141
137
|
}, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>, [undefined]>;
|
|
138
|
+
/**
|
|
139
|
+
* #property
|
|
140
|
+
*/
|
|
141
|
+
jexlFilters: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").ISimpleType<string>>, [undefined]>;
|
|
142
142
|
}, {
|
|
143
143
|
rendererTypeName: string;
|
|
144
144
|
error: unknown;
|
|
@@ -173,11 +173,11 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
|
|
|
173
173
|
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
|
|
174
174
|
rendererTypeName: string;
|
|
175
175
|
error: unknown;
|
|
176
|
-
message: string | undefined;
|
|
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]>; /**
|
|
177
179
|
* #property
|
|
178
180
|
*/
|
|
179
|
-
} & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
|
|
180
|
-
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
181
181
|
type: import("mobx-state-tree").ISimpleType<string>;
|
|
182
182
|
rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
183
183
|
}, {
|
|
@@ -233,9 +233,14 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
|
|
|
233
233
|
regionCannotBeRenderedText(_region: import("@jbrowse/core/util").Region): "" | "Force load to see features";
|
|
234
234
|
regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react").JSX.Element | null;
|
|
235
235
|
} & {
|
|
236
|
-
featureIdUnderMouse: string | undefined;
|
|
236
|
+
featureIdUnderMouse: string | undefined; /**
|
|
237
|
+
* #property
|
|
238
|
+
*/
|
|
237
239
|
contextMenuFeature: Feature | undefined;
|
|
238
240
|
} & {
|
|
241
|
+
/**
|
|
242
|
+
* #property
|
|
243
|
+
*/
|
|
239
244
|
readonly blockType: "dynamicBlocks" | "staticBlocks";
|
|
240
245
|
readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
|
|
241
246
|
} & {
|
|
@@ -250,10 +255,7 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
|
|
|
250
255
|
getFeatureByID(blockKey: string, id: string): [number, number, number, number] | undefined;
|
|
251
256
|
searchFeatureByID(id: string): [number, number, number, number] | undefined;
|
|
252
257
|
} & {
|
|
253
|
-
addBlock(key: string, block: import("@jbrowse/core/util/blockTypes").BaseBlock): void;
|
|
254
|
-
* #action
|
|
255
|
-
* uses copy-to-clipboard and generates notification
|
|
256
|
-
*/
|
|
258
|
+
addBlock(key: string, block: import("@jbrowse/core/util/blockTypes").BaseBlock): void;
|
|
257
259
|
deleteBlock(key: string): void;
|
|
258
260
|
selectFeature(feature: Feature): void;
|
|
259
261
|
clearFeatureSelection(): void;
|
|
@@ -323,7 +325,11 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
|
|
|
323
325
|
/**
|
|
324
326
|
* #action
|
|
325
327
|
*/
|
|
326
|
-
setFilterBy(filter:
|
|
328
|
+
setFilterBy(filter: IFilter): void;
|
|
329
|
+
/**
|
|
330
|
+
* #action
|
|
331
|
+
*/
|
|
332
|
+
setJexlFilters(filters: string[]): void;
|
|
327
333
|
} & {
|
|
328
334
|
/**
|
|
329
335
|
* #getter
|
|
@@ -350,6 +356,10 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
|
|
|
350
356
|
* #getter
|
|
351
357
|
*/
|
|
352
358
|
renderReady(): boolean;
|
|
359
|
+
/**
|
|
360
|
+
* #getter
|
|
361
|
+
*/
|
|
362
|
+
readonly filters: SerializableFilterChain;
|
|
353
363
|
} & {
|
|
354
364
|
/**
|
|
355
365
|
* #getter
|
|
@@ -372,7 +382,16 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
|
|
|
372
382
|
/**
|
|
373
383
|
* #getter
|
|
374
384
|
*/
|
|
375
|
-
readonly DisplayBlurb: (
|
|
385
|
+
readonly DisplayBlurb: ({ model, }: {
|
|
386
|
+
model: {
|
|
387
|
+
sortedBy?: {
|
|
388
|
+
pos: number;
|
|
389
|
+
refName: number;
|
|
390
|
+
type: string;
|
|
391
|
+
tag?: string | undefined;
|
|
392
|
+
} | undefined;
|
|
393
|
+
};
|
|
394
|
+
}) => import("react").JSX.Element | null;
|
|
376
395
|
/**
|
|
377
396
|
* #method
|
|
378
397
|
*/
|
|
@@ -444,17 +463,20 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
|
|
|
444
463
|
afterAttach(): void;
|
|
445
464
|
setStatus(message: string): void;
|
|
446
465
|
setLoading(abortController: AbortController): void;
|
|
447
|
-
setMessage(messageText: string): void;
|
|
448
|
-
* #action
|
|
449
|
-
*/
|
|
466
|
+
setMessage(messageText: string): void;
|
|
450
467
|
setRendered(props: {
|
|
451
468
|
reactElement: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
|
469
|
+
/**
|
|
470
|
+
* #action
|
|
471
|
+
*/
|
|
452
472
|
features: Map<string, Feature>;
|
|
453
473
|
layout: any;
|
|
454
474
|
maxHeightReached: boolean;
|
|
455
475
|
renderProps: any;
|
|
456
476
|
} | undefined): void;
|
|
457
|
-
setError(error: unknown): void;
|
|
477
|
+
setError(error: unknown): void; /**
|
|
478
|
+
* #action
|
|
479
|
+
*/
|
|
458
480
|
reload(): void;
|
|
459
481
|
beforeDestroy(): void;
|
|
460
482
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
@@ -32,6 +32,7 @@ const mobx_1 = require("mobx");
|
|
|
32
32
|
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
33
33
|
const copy_to_clipboard_1 = __importDefault(require("copy-to-clipboard"));
|
|
34
34
|
const configuration_1 = require("@jbrowse/core/configuration");
|
|
35
|
+
const serializableFilterChain_1 = __importDefault(require("@jbrowse/core/pluggableElementTypes/renderers/util/serializableFilterChain"));
|
|
35
36
|
const tracks_1 = require("@jbrowse/core/util/tracks");
|
|
36
37
|
const util_1 = require("@jbrowse/core/util");
|
|
37
38
|
const plugin_linear_genome_view_1 = require("@jbrowse/plugin-linear-genome-view");
|
|
@@ -90,6 +91,10 @@ function SharedLinearPileupDisplayMixin(configSchema) {
|
|
|
90
91
|
* #property
|
|
91
92
|
*/
|
|
92
93
|
filterBy: mobx_state_tree_1.types.optional(shared_1.FilterModel, {}),
|
|
94
|
+
/**
|
|
95
|
+
* #property
|
|
96
|
+
*/
|
|
97
|
+
jexlFilters: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.array(mobx_state_tree_1.types.string), []),
|
|
93
98
|
}))
|
|
94
99
|
.volatile(() => ({
|
|
95
100
|
colorTagMap: mobx_1.observable.map({}),
|
|
@@ -204,6 +209,12 @@ function SharedLinearPileupDisplayMixin(configSchema) {
|
|
|
204
209
|
setFilterBy(filter) {
|
|
205
210
|
self.filterBy = (0, mobx_state_tree_1.cast)(filter);
|
|
206
211
|
},
|
|
212
|
+
/**
|
|
213
|
+
* #action
|
|
214
|
+
*/
|
|
215
|
+
setJexlFilters(filters) {
|
|
216
|
+
self.jexlFilters = (0, mobx_state_tree_1.cast)(filters);
|
|
217
|
+
},
|
|
207
218
|
}))
|
|
208
219
|
.views(self => ({
|
|
209
220
|
/**
|
|
@@ -247,6 +258,12 @@ function SharedLinearPileupDisplayMixin(configSchema) {
|
|
|
247
258
|
renderReady() {
|
|
248
259
|
return self.tagsReady;
|
|
249
260
|
},
|
|
261
|
+
/**
|
|
262
|
+
* #getter
|
|
263
|
+
*/
|
|
264
|
+
get filters() {
|
|
265
|
+
return new serializableFilterChain_1.default({ filters: self.jexlFilters });
|
|
266
|
+
},
|
|
250
267
|
}))
|
|
251
268
|
.views(self => {
|
|
252
269
|
const { trackMenuItems: superTrackMenuItems, renderProps: superRenderProps, } = self;
|
|
@@ -310,6 +327,7 @@ function SharedLinearPileupDisplayMixin(configSchema) {
|
|
|
310
327
|
displayModel: self,
|
|
311
328
|
colorBy: colorBy ? (0, mobx_state_tree_1.getSnapshot)(colorBy) : undefined,
|
|
312
329
|
filterBy: JSON.parse(JSON.stringify(filterBy)),
|
|
330
|
+
filters: self.filters,
|
|
313
331
|
colorTagMap: Object.fromEntries(colorTagMap.toJSON()),
|
|
314
332
|
config: self.rendererConfig,
|
|
315
333
|
async onFeatureClick(_, featureId) {
|
|
@@ -479,9 +497,9 @@ function SharedLinearPileupDisplayMixin(configSchema) {
|
|
|
479
497
|
if (!self.autorunReady) {
|
|
480
498
|
return;
|
|
481
499
|
}
|
|
482
|
-
const { colorBy } = self;
|
|
500
|
+
const { colorBy, tagsReady } = self;
|
|
483
501
|
const { staticBlocks } = view;
|
|
484
|
-
if (colorBy === null || colorBy === void 0 ? void 0 : colorBy.tag) {
|
|
502
|
+
if ((colorBy === null || colorBy === void 0 ? void 0 : colorBy.tag) && !tagsReady) {
|
|
485
503
|
const vals = await (0, shared_1.getUniqueTagValues)(self, colorBy, staticBlocks);
|
|
486
504
|
self.updateColorTagMap(vals);
|
|
487
505
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ObservableMap } from 'mobx';
|
|
3
|
-
declare
|
|
3
|
+
declare const ColorByModificationsDialog: ({ model, handleClose, }: {
|
|
4
4
|
model: {
|
|
5
5
|
setColorScheme: (arg: {
|
|
6
6
|
type: string;
|
|
@@ -8,9 +8,8 @@ declare function ColorByTagDlg(props: {
|
|
|
8
8
|
modificationTagMap: ObservableMap<string, string>;
|
|
9
9
|
colorBy?: {
|
|
10
10
|
type: string;
|
|
11
|
-
};
|
|
11
|
+
} | undefined;
|
|
12
12
|
};
|
|
13
13
|
handleClose: () => void;
|
|
14
|
-
})
|
|
15
|
-
|
|
16
|
-
export default _default;
|
|
14
|
+
}) => React.JSX.Element;
|
|
15
|
+
export default ColorByModificationsDialog;
|
|
@@ -8,8 +8,7 @@ const mobx_react_1 = require("mobx-react");
|
|
|
8
8
|
const material_1 = require("@mui/material");
|
|
9
9
|
const ui_1 = require("@jbrowse/core/ui");
|
|
10
10
|
const ModificationsTable_1 = __importDefault(require("./ModificationsTable"));
|
|
11
|
-
function
|
|
12
|
-
const { model, handleClose } = props;
|
|
11
|
+
const ColorByModificationsDialog = (0, mobx_react_1.observer)(function ({ model, handleClose, }) {
|
|
13
12
|
const { colorBy, modificationTagMap } = model;
|
|
14
13
|
const modifications = [...modificationTagMap.entries()];
|
|
15
14
|
return (react_1.default.createElement(ui_1.Dialog, { open: true, onClose: handleClose, title: "Color by modifications" },
|
|
@@ -36,5 +35,5 @@ function ColorByTagDlg(props) {
|
|
|
36
35
|
handleClose();
|
|
37
36
|
} }, "Methylation"),
|
|
38
37
|
react_1.default.createElement(material_1.Button, { variant: "contained", color: "secondary", onClick: () => handleClose() }, "Cancel")))));
|
|
39
|
-
}
|
|
40
|
-
exports.default =
|
|
38
|
+
});
|
|
39
|
+
exports.default = ColorByModificationsDialog;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
declare
|
|
2
|
+
declare const ColorByTagDialog: ({ model, handleClose, }: {
|
|
3
3
|
model: {
|
|
4
|
-
setColorScheme:
|
|
4
|
+
setColorScheme: (arg: {
|
|
5
|
+
type: string;
|
|
6
|
+
tag: string;
|
|
7
|
+
}) => void;
|
|
5
8
|
};
|
|
6
9
|
handleClose: () => void;
|
|
7
|
-
})
|
|
8
|
-
|
|
9
|
-
export default _default;
|
|
10
|
+
}) => React.JSX.Element;
|
|
11
|
+
export default ColorByTagDialog;
|
|
@@ -27,22 +27,19 @@ const react_1 = __importStar(require("react"));
|
|
|
27
27
|
const mobx_react_1 = require("mobx-react");
|
|
28
28
|
const material_1 = require("@mui/material");
|
|
29
29
|
const ui_1 = require("@jbrowse/core/ui");
|
|
30
|
-
function
|
|
31
|
-
const { model, handleClose } = props;
|
|
30
|
+
const ColorByTagDialog = (0, mobx_react_1.observer)(function ({ model, handleClose, }) {
|
|
32
31
|
const [tag, setTag] = (0, react_1.useState)('');
|
|
33
32
|
const validTag = tag.match(/^[A-Za-z][A-Za-z0-9]$/);
|
|
34
33
|
return (react_1.default.createElement(ui_1.Dialog, { open: true, onClose: handleClose, title: "Color by tag" },
|
|
35
34
|
react_1.default.createElement(material_1.DialogContent, { style: { overflowX: 'hidden' } },
|
|
36
35
|
react_1.default.createElement(material_1.Typography, null, "Enter tag to color by: "),
|
|
37
36
|
react_1.default.createElement(material_1.Typography, { color: "textSecondary" }, "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."),
|
|
38
|
-
react_1.default.createElement(material_1.TextField, { value: tag, onChange: event => setTag(event.target.value), placeholder: "Enter tag name", inputProps: {
|
|
39
|
-
maxLength: 2,
|
|
40
|
-
}, error: tag.length === 2 && !validTag, helperText: tag.length === 2 && !validTag ? 'Not a valid tag' : '', autoComplete: "off" }),
|
|
37
|
+
react_1.default.createElement(material_1.TextField, { value: tag, onChange: event => setTag(event.target.value), placeholder: "Enter tag name", inputProps: { maxLength: 2 }, error: tag.length === 2 && !validTag, helperText: tag.length === 2 && !validTag ? 'Not a valid tag' : '', autoComplete: "off" }),
|
|
41
38
|
react_1.default.createElement(material_1.DialogActions, null,
|
|
42
39
|
react_1.default.createElement(material_1.Button, { variant: "contained", color: "primary", onClick: () => {
|
|
43
40
|
model.setColorScheme({ type: 'tag', tag });
|
|
44
41
|
handleClose();
|
|
45
42
|
}, disabled: !validTag }, "Submit"),
|
|
46
43
|
react_1.default.createElement(material_1.Button, { variant: "contained", color: "secondary", onClick: handleClose }, "Cancel")))));
|
|
47
|
-
}
|
|
48
|
-
exports.default =
|
|
44
|
+
});
|
|
45
|
+
exports.default = ColorByTagDialog;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
2
|
+
declare const LinearPileupDisplayBlurb: ({ model, }: {
|
|
3
3
|
model: {
|
|
4
4
|
sortedBy?: {
|
|
5
5
|
pos: number;
|
|
@@ -8,6 +8,5 @@ export interface LinearPileupDisplayBlurbProps {
|
|
|
8
8
|
tag?: string;
|
|
9
9
|
};
|
|
10
10
|
};
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export default _default;
|
|
11
|
+
}) => React.JSX.Element | null;
|
|
12
|
+
export default LinearPileupDisplayBlurb;
|
|
@@ -6,12 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const react_1 = __importDefault(require("react"));
|
|
7
7
|
const mobx_react_1 = require("mobx-react");
|
|
8
8
|
const material_1 = require("@mui/material");
|
|
9
|
-
|
|
9
|
+
const LinearPileupDisplayBlurb = (0, mobx_react_1.observer)(function ({ model, }) {
|
|
10
10
|
var _a;
|
|
11
|
-
const { model } = props;
|
|
12
11
|
const { sortedBy } = model;
|
|
13
12
|
return sortedBy ? (react_1.default.createElement("div", { "data-testid": `blurb-${sortedBy}` },
|
|
14
13
|
react_1.default.createElement(material_1.Typography, { color: "secondary", variant: "caption" }, sortedBy
|
|
15
14
|
? `Sorted by ${(_a = sortedBy.tag) !== null && _a !== void 0 ? _a : sortedBy.type} at ${sortedBy.refName}:${sortedBy.pos}`
|
|
16
15
|
: null))) : null;
|
|
17
16
|
});
|
|
17
|
+
exports.default = LinearPileupDisplayBlurb;
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
declare
|
|
2
|
+
declare const SetFeatureHeightDialog: (props: {
|
|
3
3
|
model: {
|
|
4
4
|
setFeatureHeight: (arg?: number) => void;
|
|
5
5
|
setNoSpacing: (arg?: boolean) => void;
|
|
6
6
|
featureHeightSetting: number;
|
|
7
|
-
noSpacing?: boolean;
|
|
7
|
+
noSpacing?: boolean | undefined;
|
|
8
8
|
};
|
|
9
9
|
handleClose: () => void;
|
|
10
|
-
})
|
|
11
|
-
|
|
12
|
-
export default _default;
|
|
10
|
+
}) => React.JSX.Element;
|
|
11
|
+
export default SetFeatureHeightDialog;
|
|
@@ -27,7 +27,7 @@ const react_1 = __importStar(require("react"));
|
|
|
27
27
|
const mobx_react_1 = require("mobx-react");
|
|
28
28
|
const material_1 = require("@mui/material");
|
|
29
29
|
const ui_1 = require("@jbrowse/core/ui");
|
|
30
|
-
function
|
|
30
|
+
const SetFeatureHeightDialog = (0, mobx_react_1.observer)(function (props) {
|
|
31
31
|
const { model, handleClose } = props;
|
|
32
32
|
const { featureHeightSetting, noSpacing: noSpacingSetting } = model;
|
|
33
33
|
const [height, setHeight] = (0, react_1.useState)(`${featureHeightSetting}`);
|
|
@@ -45,5 +45,5 @@ function SetFeatureHeightDlg(props) {
|
|
|
45
45
|
handleClose();
|
|
46
46
|
} }, "Submit"),
|
|
47
47
|
react_1.default.createElement(material_1.Button, { variant: "contained", color: "secondary", onClick: () => handleClose() }, "Cancel")))));
|
|
48
|
-
}
|
|
49
|
-
exports.default =
|
|
48
|
+
});
|
|
49
|
+
exports.default = SetFeatureHeightDialog;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
declare
|
|
2
|
+
declare const SetMaxHeightDialog: (props: {
|
|
3
3
|
model: {
|
|
4
4
|
maxHeight?: number;
|
|
5
5
|
setMaxHeight: Function;
|
|
6
6
|
};
|
|
7
7
|
handleClose: () => void;
|
|
8
|
-
})
|
|
9
|
-
|
|
10
|
-
export default _default;
|
|
8
|
+
}) => React.JSX.Element;
|
|
9
|
+
export default SetMaxHeightDialog;
|
|
@@ -33,7 +33,7 @@ const useStyles = (0, mui_1.makeStyles)()({
|
|
|
33
33
|
width: 500,
|
|
34
34
|
},
|
|
35
35
|
});
|
|
36
|
-
function
|
|
36
|
+
const SetMaxHeightDialog = (0, mobx_react_1.observer)(function (props) {
|
|
37
37
|
const { model, handleClose } = props;
|
|
38
38
|
const { classes } = useStyles();
|
|
39
39
|
const { maxHeight = '' } = model;
|
|
@@ -48,5 +48,5 @@ function SetMaxHeightDlg(props) {
|
|
|
48
48
|
handleClose();
|
|
49
49
|
} }, "Submit"),
|
|
50
50
|
react_1.default.createElement(material_1.Button, { variant: "contained", color: "secondary", onClick: () => handleClose() }, "Cancel")))));
|
|
51
|
-
}
|
|
52
|
-
exports.default =
|
|
51
|
+
});
|
|
52
|
+
exports.default = SetMaxHeightDialog;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
declare
|
|
2
|
+
declare const SortByTagDialog: (props: {
|
|
3
3
|
model: {
|
|
4
4
|
setSortedBy: Function;
|
|
5
5
|
};
|
|
6
6
|
handleClose: () => void;
|
|
7
|
-
})
|
|
8
|
-
|
|
9
|
-
export default _default;
|
|
7
|
+
}) => React.JSX.Element;
|
|
8
|
+
export default SortByTagDialog;
|