@jbrowse/plugin-linear-genome-view 2.9.0 → 2.10.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/BaseLinearDisplay/components/Tooltip.js +18 -50
- package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.d.ts +4 -16
- package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.js +8 -1
- package/dist/LinearBareDisplay/model.d.ts +8 -11
- package/dist/LinearBareDisplay/model.js +2 -1
- package/dist/LinearBasicDisplay/model.d.ts +30 -33
- package/dist/LinearBasicDisplay/model.js +3 -0
- package/dist/LinearGenomeView/components/Cytobands.d.ts +18 -6
- package/dist/LinearGenomeView/components/Cytobands.js +8 -2
- package/dist/LinearGenomeView/components/OverviewScalebar.d.ts +0 -8
- package/dist/LinearGenomeView/components/OverviewScalebar.js +23 -55
- package/dist/LinearGenomeView/components/OverviewScalebarPolygon.d.ts +9 -0
- package/dist/LinearGenomeView/components/OverviewScalebarPolygon.js +46 -0
- package/dist/LinearGenomeView/components/TracksContainer.js +1 -1
- package/dist/LinearGenomeView/model.d.ts +6 -1
- package/dist/LinearGenomeView/model.js +3 -0
- package/dist/LinearGenomeView/svgcomponents/SVGHeader.js +2 -2
- package/dist/LinearGenomeView/svgcomponents/SVGLinearGenomeView.d.ts +0 -7
- package/dist/LinearGenomeView/svgcomponents/SVGLinearGenomeView.js +11 -13
- package/dist/LinearGenomeView/svgcomponents/util.d.ts +8 -0
- package/dist/LinearGenomeView/svgcomponents/util.js +9 -0
- package/dist/index.d.ts +110 -37
- package/dist/index.js +3 -2
- package/esm/BaseLinearDisplay/components/Tooltip.js +16 -28
- package/esm/BaseLinearDisplay/models/BaseLinearDisplayModel.d.ts +4 -16
- package/esm/BaseLinearDisplay/models/BaseLinearDisplayModel.js +8 -1
- package/esm/LinearBareDisplay/model.d.ts +8 -11
- package/esm/LinearBareDisplay/model.js +2 -1
- package/esm/LinearBasicDisplay/model.d.ts +30 -33
- package/esm/LinearBasicDisplay/model.js +3 -0
- package/esm/LinearGenomeView/components/Cytobands.d.ts +18 -6
- package/esm/LinearGenomeView/components/Cytobands.js +8 -2
- package/esm/LinearGenomeView/components/OverviewScalebar.d.ts +0 -8
- package/esm/LinearGenomeView/components/OverviewScalebar.js +23 -53
- package/esm/LinearGenomeView/components/OverviewScalebarPolygon.d.ts +9 -0
- package/esm/LinearGenomeView/components/OverviewScalebarPolygon.js +41 -0
- package/esm/LinearGenomeView/components/TracksContainer.js +1 -1
- package/esm/LinearGenomeView/model.d.ts +6 -1
- package/esm/LinearGenomeView/model.js +3 -0
- package/esm/LinearGenomeView/svgcomponents/SVGHeader.js +2 -2
- package/esm/LinearGenomeView/svgcomponents/SVGLinearGenomeView.d.ts +0 -7
- package/esm/LinearGenomeView/svgcomponents/SVGLinearGenomeView.js +9 -10
- package/esm/LinearGenomeView/svgcomponents/util.d.ts +8 -0
- package/esm/LinearGenomeView/svgcomponents/util.js +5 -0
- package/esm/index.d.ts +110 -37
- package/esm/index.js +2 -1
- package/package.json +4 -6
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const react_1 = __importDefault(require("react"));
|
|
7
|
+
const material_1 = require("@mui/material");
|
|
8
|
+
const mobx_react_1 = require("mobx-react");
|
|
9
|
+
// locals
|
|
10
|
+
const __1 = require("..");
|
|
11
|
+
const OverviewScalebarPolygon = (0, mobx_react_1.observer)(function ({ model, overview, useOffset = true, }) {
|
|
12
|
+
const theme = (0, material_1.useTheme)();
|
|
13
|
+
const multiplier = Number(useOffset);
|
|
14
|
+
const { interRegionPaddingWidth, offsetPx, dynamicBlocks, cytobandOffset } = model;
|
|
15
|
+
const { contentBlocks, totalWidthPxWithoutBorders } = dynamicBlocks;
|
|
16
|
+
const { tertiary, primary } = theme.palette;
|
|
17
|
+
const polygonColor = tertiary ? tertiary.light : primary.light;
|
|
18
|
+
// catches possible null from at's below
|
|
19
|
+
if (!contentBlocks.length) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
const first = contentBlocks.at(0);
|
|
23
|
+
const last = contentBlocks.at(-1);
|
|
24
|
+
const topLeft = (overview.bpToPx({
|
|
25
|
+
...first,
|
|
26
|
+
coord: first.reversed ? first.end : first.start,
|
|
27
|
+
}) || 0) +
|
|
28
|
+
cytobandOffset * multiplier;
|
|
29
|
+
const topRight = (overview.bpToPx({
|
|
30
|
+
...last,
|
|
31
|
+
coord: last.reversed ? last.start : last.end,
|
|
32
|
+
}) || 0) +
|
|
33
|
+
cytobandOffset * multiplier;
|
|
34
|
+
const startPx = Math.max(0, -offsetPx);
|
|
35
|
+
const endPx = startPx +
|
|
36
|
+
totalWidthPxWithoutBorders +
|
|
37
|
+
(contentBlocks.length * interRegionPaddingWidth) / 2;
|
|
38
|
+
const points = [
|
|
39
|
+
[startPx, __1.HEADER_BAR_HEIGHT],
|
|
40
|
+
[endPx, __1.HEADER_BAR_HEIGHT],
|
|
41
|
+
[topRight, 0],
|
|
42
|
+
[topLeft, 0],
|
|
43
|
+
];
|
|
44
|
+
return (react_1.default.createElement("polygon", { points: points.toString(), fill: (0, material_1.alpha)(polygonColor, 0.3), stroke: (0, material_1.alpha)(polygonColor, 0.8) }));
|
|
45
|
+
});
|
|
46
|
+
exports.default = OverviewScalebarPolygon;
|
|
@@ -30,6 +30,7 @@ const react_1 = __importStar(require("react"));
|
|
|
30
30
|
const mui_1 = require("tss-react/mui");
|
|
31
31
|
const mobx_react_1 = require("mobx-react");
|
|
32
32
|
const ui_1 = require("@jbrowse/core/ui");
|
|
33
|
+
const util_1 = require("@jbrowse/core/util");
|
|
33
34
|
// local utils
|
|
34
35
|
const __1 = require("..");
|
|
35
36
|
const hooks_1 = require("./hooks");
|
|
@@ -40,7 +41,6 @@ const Gridlines_1 = __importDefault(require("./Gridlines"));
|
|
|
40
41
|
const CenterLine_1 = __importDefault(require("./CenterLine"));
|
|
41
42
|
const VerticalGuide_1 = __importDefault(require("./VerticalGuide"));
|
|
42
43
|
const RubberbandSpan_1 = __importDefault(require("./RubberbandSpan"));
|
|
43
|
-
const util_1 = require("@jbrowse/core/util");
|
|
44
44
|
const useStyles = (0, mui_1.makeStyles)()({
|
|
45
45
|
tracksContainer: {
|
|
46
46
|
position: 'relative',
|
|
@@ -21,7 +21,9 @@ export interface BpOffset {
|
|
|
21
21
|
export interface ExportSvgOptions {
|
|
22
22
|
rasterizeLayers?: boolean;
|
|
23
23
|
filename?: string;
|
|
24
|
-
Wrapper?: React.FC<
|
|
24
|
+
Wrapper?: React.FC<{
|
|
25
|
+
children: React.ReactNode;
|
|
26
|
+
}>;
|
|
25
27
|
fontSize?: number;
|
|
26
28
|
rulerHeight?: number;
|
|
27
29
|
textHeight?: number;
|
|
@@ -47,6 +49,9 @@ export declare const WIDGET_HEIGHT = 32;
|
|
|
47
49
|
/**
|
|
48
50
|
* #stateModel LinearGenomeView
|
|
49
51
|
* #category view
|
|
52
|
+
*
|
|
53
|
+
* extends
|
|
54
|
+
* - [BaseViewModel](../baseviewmodel)
|
|
50
55
|
*/
|
|
51
56
|
export declare function stateModelFactory(pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
|
|
52
57
|
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
@@ -10,9 +10,9 @@ const material_1 = require("@mui/material");
|
|
|
10
10
|
// locals
|
|
11
11
|
const __1 = require("..");
|
|
12
12
|
const Cytobands_1 = __importDefault(require("../components/Cytobands"));
|
|
13
|
-
const OverviewScalebar_1 = require("../components/OverviewScalebar");
|
|
14
13
|
const SVGRuler_1 = __importDefault(require("./SVGRuler"));
|
|
15
14
|
const SVGScalebar_1 = __importDefault(require("./SVGScalebar"));
|
|
15
|
+
const OverviewScalebarPolygon_1 = __importDefault(require("../components/OverviewScalebarPolygon"));
|
|
16
16
|
function SVGHeader({ model, fontSize, cytobandHeight, rulerHeight, }) {
|
|
17
17
|
const { width, assemblyNames, showCytobands, displayedRegions } = model;
|
|
18
18
|
const { assemblyManager } = (0, util_1.getSession)(model);
|
|
@@ -49,7 +49,7 @@ function SVGHeader({ model, fontSize, cytobandHeight, rulerHeight, }) {
|
|
|
49
49
|
react_1.default.createElement(Cytobands_1.default, { overview: overview, assembly: assembly, block: block }),
|
|
50
50
|
react_1.default.createElement("rect", { stroke: "red", fill: "rgb(255,0,0,0.1)", width: Math.max(lastOverviewPx - firstOverviewPx, 0.5), height: __1.HEADER_OVERVIEW_HEIGHT - 1, x: firstOverviewPx, y: 0.5 }),
|
|
51
51
|
react_1.default.createElement("g", { transform: `translate(0,${__1.HEADER_OVERVIEW_HEIGHT})` },
|
|
52
|
-
react_1.default.createElement(
|
|
52
|
+
react_1.default.createElement(OverviewScalebarPolygon_1.default, { overview: overview, model: model, useOffset: false })))) : null,
|
|
53
53
|
react_1.default.createElement("g", { transform: `translate(0 ${fontSize + y})` },
|
|
54
54
|
react_1.default.createElement(SVGScalebar_1.default, { model: model, fontSize: fontSize })),
|
|
55
55
|
react_1.default.createElement("g", { transform: `translate(0 ${rulerHeight + y})` },
|
|
@@ -1,12 +1,5 @@
|
|
|
1
1
|
import { LinearGenomeViewModel, ExportSvgOptions } from '..';
|
|
2
2
|
type LGV = LinearGenomeViewModel;
|
|
3
|
-
interface Display {
|
|
4
|
-
height: number;
|
|
5
|
-
}
|
|
6
|
-
interface Track {
|
|
7
|
-
displays: Display[];
|
|
8
|
-
}
|
|
9
|
-
export declare function totalHeight(tracks: Track[], textHeight: number, trackLabels: string): number;
|
|
10
3
|
export declare function renderToSvg(model: LGV, opts: ExportSvgOptions): Promise<string>;
|
|
11
4
|
export { default as SVGRuler } from './SVGRuler';
|
|
12
5
|
export { default as SVGTracks } from './SVGTracks';
|
|
@@ -3,35 +3,33 @@ 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
|
-
exports.SVGTracks = exports.SVGRuler = exports.renderToSvg =
|
|
6
|
+
exports.SVGTracks = exports.SVGRuler = exports.renderToSvg = void 0;
|
|
7
7
|
/* eslint-disable react-refresh/only-export-components */
|
|
8
8
|
const react_1 = __importDefault(require("react"));
|
|
9
|
-
const server_1 = require("react-dom/server");
|
|
10
9
|
const mobx_1 = require("mobx");
|
|
11
10
|
const util_1 = require("@jbrowse/core/util");
|
|
12
11
|
const material_1 = require("@mui/material");
|
|
13
12
|
const ui_1 = require("@jbrowse/core/ui");
|
|
13
|
+
const tracks_1 = require("@jbrowse/core/util/tracks");
|
|
14
|
+
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
14
15
|
const SVGBackground_1 = __importDefault(require("./SVGBackground"));
|
|
15
16
|
const SVGTracks_1 = __importDefault(require("./SVGTracks"));
|
|
16
17
|
const SVGHeader_1 = __importDefault(require("./SVGHeader"));
|
|
17
|
-
const
|
|
18
|
-
function totalHeight(tracks, textHeight, trackLabels) {
|
|
19
|
-
return (0, util_1.sum)(tracks.map(t => t.displays[0].height +
|
|
20
|
-
(['none', 'left'].includes(trackLabels) ? 0 : textHeight)));
|
|
21
|
-
}
|
|
22
|
-
exports.totalHeight = totalHeight;
|
|
18
|
+
const util_2 = require("./util");
|
|
23
19
|
// render LGV to SVG
|
|
24
20
|
async function renderToSvg(model, opts) {
|
|
25
|
-
var _a;
|
|
26
21
|
await (0, mobx_1.when)(() => model.initialized);
|
|
27
22
|
const { textHeight = 18, headerHeight = 40, rulerHeight = 50, fontSize = 13, cytobandHeight = 100, trackLabels = 'offset', themeName = 'default', Wrapper = ({ children }) => react_1.default.createElement(react_1.default.Fragment, null, children), } = opts;
|
|
28
23
|
const session = (0, util_1.getSession)(model);
|
|
29
|
-
const
|
|
24
|
+
const { allThemes } = session;
|
|
25
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
26
|
+
const { createRootFn } = (0, mobx_state_tree_1.getRoot)(model);
|
|
27
|
+
const theme = allThemes === null || allThemes === void 0 ? void 0 : allThemes()[themeName];
|
|
30
28
|
const { width, tracks, showCytobands } = model;
|
|
31
29
|
const shift = 50;
|
|
32
30
|
const c = +showCytobands * cytobandHeight;
|
|
33
31
|
const offset = headerHeight + rulerHeight + c + 10;
|
|
34
|
-
const height = totalHeight(tracks, textHeight, trackLabels) + offset + 100;
|
|
32
|
+
const height = (0, util_2.totalHeight)(tracks, textHeight, trackLabels) + offset + 100;
|
|
35
33
|
const displayResults = await Promise.all(tracks.map(async (track) => {
|
|
36
34
|
const display = track.displays[0];
|
|
37
35
|
await (0, mobx_1.when)(() => !display.renderProps().notReady);
|
|
@@ -41,14 +39,14 @@ async function renderToSvg(model, opts) {
|
|
|
41
39
|
const trackLabelOffset = trackLabels === 'left' ? trackLabelMaxLen : 0;
|
|
42
40
|
const w = width + trackLabelOffset;
|
|
43
41
|
// the xlink namespace is used for rendering <image> tag
|
|
44
|
-
return (0,
|
|
42
|
+
return (0, util_1.renderToStaticMarkup)(react_1.default.createElement(material_1.ThemeProvider, { theme: (0, ui_1.createJBrowseTheme)(theme) },
|
|
45
43
|
react_1.default.createElement(Wrapper, null,
|
|
46
44
|
react_1.default.createElement("svg", { width: w, height: height, xmlns: "http://www.w3.org/2000/svg", xmlnsXlink: "http://www.w3.org/1999/xlink", viewBox: [0, 0, w + shift * 2, height].toString() },
|
|
47
45
|
react_1.default.createElement(SVGBackground_1.default, { width: w, height: height, shift: shift }),
|
|
48
46
|
react_1.default.createElement("g", { transform: `translate(${shift} 0)` },
|
|
49
47
|
react_1.default.createElement("g", { transform: `translate(${trackLabelOffset})` },
|
|
50
48
|
react_1.default.createElement(SVGHeader_1.default, { model: model, fontSize: fontSize, rulerHeight: rulerHeight, cytobandHeight: cytobandHeight })),
|
|
51
|
-
react_1.default.createElement(SVGTracks_1.default, { textHeight: textHeight, fontSize: fontSize, model: model, displayResults: displayResults, offset: offset, trackLabels: trackLabels, trackLabelOffset: trackLabelOffset }))))));
|
|
49
|
+
react_1.default.createElement(SVGTracks_1.default, { textHeight: textHeight, fontSize: fontSize, model: model, displayResults: displayResults, offset: offset, trackLabels: trackLabels, trackLabelOffset: trackLabelOffset }))))), createRootFn);
|
|
52
50
|
}
|
|
53
51
|
exports.renderToSvg = renderToSvg;
|
|
54
52
|
var SVGRuler_1 = require("./SVGRuler");
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.totalHeight = void 0;
|
|
4
|
+
const util_1 = require("@jbrowse/core/util");
|
|
5
|
+
function totalHeight(tracks, textHeight, trackLabels) {
|
|
6
|
+
return (0, util_1.sum)(tracks.map(t => t.displays[0].height +
|
|
7
|
+
(['none', 'left'].includes(trackLabels) ? 0 : textHeight)));
|
|
8
|
+
}
|
|
9
|
+
exports.totalHeight = totalHeight;
|
package/dist/index.d.ts
CHANGED
|
@@ -1080,11 +1080,17 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
1080
1080
|
load(): Promise<void>;
|
|
1081
1081
|
loadPre(): Promise<void>;
|
|
1082
1082
|
} & {
|
|
1083
|
-
getAdapterMapEntry(adapterConf:
|
|
1084
|
-
|
|
1083
|
+
getAdapterMapEntry(adapterConf: {
|
|
1084
|
+
[x: string]: unknown;
|
|
1085
|
+
}, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameMap>;
|
|
1086
|
+
getRefNameMapForAdapter(adapterConf: {
|
|
1087
|
+
[x: string]: unknown;
|
|
1088
|
+
}, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
|
|
1085
1089
|
[x: string]: string | undefined;
|
|
1086
1090
|
}>;
|
|
1087
|
-
getReverseRefNameMapForAdapter(adapterConf:
|
|
1091
|
+
getReverseRefNameMapForAdapter(adapterConf: {
|
|
1092
|
+
[x: string]: unknown;
|
|
1093
|
+
}, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
|
|
1088
1094
|
[x: string]: string | undefined;
|
|
1089
1095
|
}>;
|
|
1090
1096
|
} & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
|
|
@@ -1136,11 +1142,17 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
1136
1142
|
load(): Promise<void>;
|
|
1137
1143
|
loadPre(): Promise<void>;
|
|
1138
1144
|
} & {
|
|
1139
|
-
getAdapterMapEntry(adapterConf:
|
|
1140
|
-
|
|
1145
|
+
getAdapterMapEntry(adapterConf: {
|
|
1146
|
+
[x: string]: unknown;
|
|
1147
|
+
}, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameMap>;
|
|
1148
|
+
getRefNameMapForAdapter(adapterConf: {
|
|
1149
|
+
[x: string]: unknown;
|
|
1150
|
+
}, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
|
|
1141
1151
|
[x: string]: string | undefined;
|
|
1142
1152
|
}>;
|
|
1143
|
-
getReverseRefNameMapForAdapter(adapterConf:
|
|
1153
|
+
getReverseRefNameMapForAdapter(adapterConf: {
|
|
1154
|
+
[x: string]: unknown;
|
|
1155
|
+
}, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
|
|
1144
1156
|
[x: string]: string | undefined;
|
|
1145
1157
|
}>;
|
|
1146
1158
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
@@ -1387,11 +1399,17 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
1387
1399
|
load(): Promise<void>;
|
|
1388
1400
|
loadPre(): Promise<void>;
|
|
1389
1401
|
} & {
|
|
1390
|
-
getAdapterMapEntry(adapterConf:
|
|
1391
|
-
|
|
1402
|
+
getAdapterMapEntry(adapterConf: {
|
|
1403
|
+
[x: string]: unknown;
|
|
1404
|
+
}, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameMap>;
|
|
1405
|
+
getRefNameMapForAdapter(adapterConf: {
|
|
1406
|
+
[x: string]: unknown;
|
|
1407
|
+
}, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
|
|
1392
1408
|
[x: string]: string | undefined;
|
|
1393
1409
|
}>;
|
|
1394
|
-
getReverseRefNameMapForAdapter(adapterConf:
|
|
1410
|
+
getReverseRefNameMapForAdapter(adapterConf: {
|
|
1411
|
+
[x: string]: unknown;
|
|
1412
|
+
}, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
|
|
1395
1413
|
[x: string]: string | undefined;
|
|
1396
1414
|
}>;
|
|
1397
1415
|
} & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
|
|
@@ -1443,11 +1461,17 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
1443
1461
|
load(): Promise<void>;
|
|
1444
1462
|
loadPre(): Promise<void>;
|
|
1445
1463
|
} & {
|
|
1446
|
-
getAdapterMapEntry(adapterConf:
|
|
1447
|
-
|
|
1464
|
+
getAdapterMapEntry(adapterConf: {
|
|
1465
|
+
[x: string]: unknown;
|
|
1466
|
+
}, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameMap>;
|
|
1467
|
+
getRefNameMapForAdapter(adapterConf: {
|
|
1468
|
+
[x: string]: unknown;
|
|
1469
|
+
}, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
|
|
1448
1470
|
[x: string]: string | undefined;
|
|
1449
1471
|
}>;
|
|
1450
|
-
getReverseRefNameMapForAdapter(adapterConf:
|
|
1472
|
+
getReverseRefNameMapForAdapter(adapterConf: {
|
|
1473
|
+
[x: string]: unknown;
|
|
1474
|
+
}, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
|
|
1451
1475
|
[x: string]: string | undefined;
|
|
1452
1476
|
}>;
|
|
1453
1477
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
@@ -1704,11 +1728,17 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
1704
1728
|
load(): Promise<void>;
|
|
1705
1729
|
loadPre(): Promise<void>;
|
|
1706
1730
|
} & {
|
|
1707
|
-
getAdapterMapEntry(adapterConf:
|
|
1708
|
-
|
|
1731
|
+
getAdapterMapEntry(adapterConf: {
|
|
1732
|
+
[x: string]: unknown;
|
|
1733
|
+
}, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameMap>;
|
|
1734
|
+
getRefNameMapForAdapter(adapterConf: {
|
|
1735
|
+
[x: string]: unknown;
|
|
1736
|
+
}, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
|
|
1709
1737
|
[x: string]: string | undefined;
|
|
1710
1738
|
}>;
|
|
1711
|
-
getReverseRefNameMapForAdapter(adapterConf:
|
|
1739
|
+
getReverseRefNameMapForAdapter(adapterConf: {
|
|
1740
|
+
[x: string]: unknown;
|
|
1741
|
+
}, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
|
|
1712
1742
|
[x: string]: string | undefined;
|
|
1713
1743
|
}>;
|
|
1714
1744
|
} & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
|
|
@@ -1760,11 +1790,17 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
1760
1790
|
load(): Promise<void>;
|
|
1761
1791
|
loadPre(): Promise<void>;
|
|
1762
1792
|
} & {
|
|
1763
|
-
getAdapterMapEntry(adapterConf:
|
|
1764
|
-
|
|
1793
|
+
getAdapterMapEntry(adapterConf: {
|
|
1794
|
+
[x: string]: unknown;
|
|
1795
|
+
}, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameMap>;
|
|
1796
|
+
getRefNameMapForAdapter(adapterConf: {
|
|
1797
|
+
[x: string]: unknown;
|
|
1798
|
+
}, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
|
|
1765
1799
|
[x: string]: string | undefined;
|
|
1766
1800
|
}>;
|
|
1767
|
-
getReverseRefNameMapForAdapter(adapterConf:
|
|
1801
|
+
getReverseRefNameMapForAdapter(adapterConf: {
|
|
1802
|
+
[x: string]: unknown;
|
|
1803
|
+
}, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
|
|
1768
1804
|
[x: string]: string | undefined;
|
|
1769
1805
|
}>;
|
|
1770
1806
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
@@ -2011,11 +2047,17 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
2011
2047
|
load(): Promise<void>;
|
|
2012
2048
|
loadPre(): Promise<void>;
|
|
2013
2049
|
} & {
|
|
2014
|
-
getAdapterMapEntry(adapterConf:
|
|
2015
|
-
|
|
2050
|
+
getAdapterMapEntry(adapterConf: {
|
|
2051
|
+
[x: string]: unknown;
|
|
2052
|
+
}, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameMap>;
|
|
2053
|
+
getRefNameMapForAdapter(adapterConf: {
|
|
2054
|
+
[x: string]: unknown;
|
|
2055
|
+
}, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
|
|
2016
2056
|
[x: string]: string | undefined;
|
|
2017
2057
|
}>;
|
|
2018
|
-
getReverseRefNameMapForAdapter(adapterConf:
|
|
2058
|
+
getReverseRefNameMapForAdapter(adapterConf: {
|
|
2059
|
+
[x: string]: unknown;
|
|
2060
|
+
}, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
|
|
2019
2061
|
[x: string]: string | undefined;
|
|
2020
2062
|
}>;
|
|
2021
2063
|
} & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
|
|
@@ -2067,11 +2109,17 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
2067
2109
|
load(): Promise<void>;
|
|
2068
2110
|
loadPre(): Promise<void>;
|
|
2069
2111
|
} & {
|
|
2070
|
-
getAdapterMapEntry(adapterConf:
|
|
2071
|
-
|
|
2112
|
+
getAdapterMapEntry(adapterConf: {
|
|
2113
|
+
[x: string]: unknown;
|
|
2114
|
+
}, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameMap>;
|
|
2115
|
+
getRefNameMapForAdapter(adapterConf: {
|
|
2116
|
+
[x: string]: unknown;
|
|
2117
|
+
}, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
|
|
2072
2118
|
[x: string]: string | undefined;
|
|
2073
2119
|
}>;
|
|
2074
|
-
getReverseRefNameMapForAdapter(adapterConf:
|
|
2120
|
+
getReverseRefNameMapForAdapter(adapterConf: {
|
|
2121
|
+
[x: string]: unknown;
|
|
2122
|
+
}, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
|
|
2075
2123
|
[x: string]: string | undefined;
|
|
2076
2124
|
}>;
|
|
2077
2125
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
@@ -2328,11 +2376,17 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
2328
2376
|
load(): Promise<void>;
|
|
2329
2377
|
loadPre(): Promise<void>;
|
|
2330
2378
|
} & {
|
|
2331
|
-
getAdapterMapEntry(adapterConf:
|
|
2332
|
-
|
|
2379
|
+
getAdapterMapEntry(adapterConf: {
|
|
2380
|
+
[x: string]: unknown;
|
|
2381
|
+
}, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameMap>;
|
|
2382
|
+
getRefNameMapForAdapter(adapterConf: {
|
|
2383
|
+
[x: string]: unknown;
|
|
2384
|
+
}, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
|
|
2333
2385
|
[x: string]: string | undefined;
|
|
2334
2386
|
}>;
|
|
2335
|
-
getReverseRefNameMapForAdapter(adapterConf:
|
|
2387
|
+
getReverseRefNameMapForAdapter(adapterConf: {
|
|
2388
|
+
[x: string]: unknown;
|
|
2389
|
+
}, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
|
|
2336
2390
|
[x: string]: string | undefined;
|
|
2337
2391
|
}>;
|
|
2338
2392
|
} & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
|
|
@@ -2384,11 +2438,17 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
2384
2438
|
load(): Promise<void>;
|
|
2385
2439
|
loadPre(): Promise<void>;
|
|
2386
2440
|
} & {
|
|
2387
|
-
getAdapterMapEntry(adapterConf:
|
|
2388
|
-
|
|
2441
|
+
getAdapterMapEntry(adapterConf: {
|
|
2442
|
+
[x: string]: unknown;
|
|
2443
|
+
}, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameMap>;
|
|
2444
|
+
getRefNameMapForAdapter(adapterConf: {
|
|
2445
|
+
[x: string]: unknown;
|
|
2446
|
+
}, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
|
|
2389
2447
|
[x: string]: string | undefined;
|
|
2390
2448
|
}>;
|
|
2391
|
-
getReverseRefNameMapForAdapter(adapterConf:
|
|
2449
|
+
getReverseRefNameMapForAdapter(adapterConf: {
|
|
2450
|
+
[x: string]: unknown;
|
|
2451
|
+
}, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
|
|
2392
2452
|
[x: string]: string | undefined;
|
|
2393
2453
|
}>;
|
|
2394
2454
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
@@ -2635,11 +2695,17 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
2635
2695
|
load(): Promise<void>;
|
|
2636
2696
|
loadPre(): Promise<void>;
|
|
2637
2697
|
} & {
|
|
2638
|
-
getAdapterMapEntry(adapterConf:
|
|
2639
|
-
|
|
2698
|
+
getAdapterMapEntry(adapterConf: {
|
|
2699
|
+
[x: string]: unknown;
|
|
2700
|
+
}, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameMap>;
|
|
2701
|
+
getRefNameMapForAdapter(adapterConf: {
|
|
2702
|
+
[x: string]: unknown;
|
|
2703
|
+
}, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
|
|
2640
2704
|
[x: string]: string | undefined;
|
|
2641
2705
|
}>;
|
|
2642
|
-
getReverseRefNameMapForAdapter(adapterConf:
|
|
2706
|
+
getReverseRefNameMapForAdapter(adapterConf: {
|
|
2707
|
+
[x: string]: unknown;
|
|
2708
|
+
}, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
|
|
2643
2709
|
[x: string]: string | undefined;
|
|
2644
2710
|
}>;
|
|
2645
2711
|
} & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
|
|
@@ -2691,11 +2757,17 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
2691
2757
|
load(): Promise<void>;
|
|
2692
2758
|
loadPre(): Promise<void>;
|
|
2693
2759
|
} & {
|
|
2694
|
-
getAdapterMapEntry(adapterConf:
|
|
2695
|
-
|
|
2760
|
+
getAdapterMapEntry(adapterConf: {
|
|
2761
|
+
[x: string]: unknown;
|
|
2762
|
+
}, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameMap>;
|
|
2763
|
+
getRefNameMapForAdapter(adapterConf: {
|
|
2764
|
+
[x: string]: unknown;
|
|
2765
|
+
}, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
|
|
2696
2766
|
[x: string]: string | undefined;
|
|
2697
2767
|
}>;
|
|
2698
|
-
getReverseRefNameMapForAdapter(adapterConf:
|
|
2768
|
+
getReverseRefNameMapForAdapter(adapterConf: {
|
|
2769
|
+
[x: string]: unknown;
|
|
2770
|
+
}, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
|
|
2699
2771
|
[x: string]: string | undefined;
|
|
2700
2772
|
}>;
|
|
2701
2773
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
@@ -2761,5 +2833,6 @@ export type { ExportSvgDisplayOptions, BaseLinearDisplayModel, BlockModel, } fro
|
|
|
2761
2833
|
export { configSchemaFactory as linearBareDisplayConfigSchemaFactory } from './LinearBareDisplay';
|
|
2762
2834
|
export { baseLinearDisplayConfigSchema, BaseLinearDisplay, BlockMsg, BaseLinearDisplayComponent, TrackHeightMixin, FeatureDensityMixin, TooLargeMessage, } from './BaseLinearDisplay';
|
|
2763
2835
|
export { type LinearGenomeViewModel, type LinearGenomeViewStateModel, RefNameAutocomplete, SearchBox, } from './LinearGenomeView';
|
|
2764
|
-
export { renderToSvg, SVGTracks,
|
|
2836
|
+
export { renderToSvg, SVGTracks, SVGRuler, } from './LinearGenomeView/svgcomponents/SVGLinearGenomeView';
|
|
2837
|
+
export { totalHeight } from './LinearGenomeView/svgcomponents/util';
|
|
2765
2838
|
export { configSchema as linearBasicDisplayConfigSchemaFactory, modelFactory as linearBasicDisplayModelFactory, } from './LinearBasicDisplay';
|
package/dist/index.js
CHANGED
|
@@ -26,7 +26,7 @@ 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.linearBasicDisplayModelFactory = exports.linearBasicDisplayConfigSchemaFactory = exports.
|
|
29
|
+
exports.linearBasicDisplayModelFactory = exports.linearBasicDisplayConfigSchemaFactory = exports.totalHeight = exports.SVGRuler = exports.SVGTracks = exports.renderToSvg = exports.SearchBox = exports.RefNameAutocomplete = exports.TooLargeMessage = exports.FeatureDensityMixin = exports.TrackHeightMixin = exports.BaseLinearDisplayComponent = exports.BlockMsg = exports.BaseLinearDisplay = exports.baseLinearDisplayConfigSchema = exports.linearBareDisplayConfigSchemaFactory = void 0;
|
|
30
30
|
const Plugin_1 = __importDefault(require("@jbrowse/core/Plugin"));
|
|
31
31
|
const util_1 = require("@jbrowse/core/util");
|
|
32
32
|
const configuration_1 = require("@jbrowse/core/configuration");
|
|
@@ -108,8 +108,9 @@ Object.defineProperty(exports, "SearchBox", { enumerable: true, get: function ()
|
|
|
108
108
|
var SVGLinearGenomeView_1 = require("./LinearGenomeView/svgcomponents/SVGLinearGenomeView");
|
|
109
109
|
Object.defineProperty(exports, "renderToSvg", { enumerable: true, get: function () { return SVGLinearGenomeView_1.renderToSvg; } });
|
|
110
110
|
Object.defineProperty(exports, "SVGTracks", { enumerable: true, get: function () { return SVGLinearGenomeView_1.SVGTracks; } });
|
|
111
|
-
Object.defineProperty(exports, "totalHeight", { enumerable: true, get: function () { return SVGLinearGenomeView_1.totalHeight; } });
|
|
112
111
|
Object.defineProperty(exports, "SVGRuler", { enumerable: true, get: function () { return SVGLinearGenomeView_1.SVGRuler; } });
|
|
112
|
+
var util_2 = require("./LinearGenomeView/svgcomponents/util");
|
|
113
|
+
Object.defineProperty(exports, "totalHeight", { enumerable: true, get: function () { return util_2.totalHeight; } });
|
|
113
114
|
var LinearBasicDisplay_2 = require("./LinearBasicDisplay");
|
|
114
115
|
Object.defineProperty(exports, "linearBasicDisplayConfigSchemaFactory", { enumerable: true, get: function () { return LinearBasicDisplay_2.configSchema; } });
|
|
115
116
|
Object.defineProperty(exports, "linearBasicDisplayModelFactory", { enumerable: true, get: function () { return LinearBasicDisplay_2.modelFactory; } });
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { getConf } from '@jbrowse/core/configuration';
|
|
3
3
|
import { SanitizedHTML } from '@jbrowse/core/ui';
|
|
4
4
|
import { observer } from 'mobx-react';
|
|
5
5
|
import { Portal, alpha } from '@mui/material';
|
|
6
6
|
import { makeStyles } from 'tss-react/mui';
|
|
7
|
-
import {
|
|
7
|
+
import { useClientPoint, useFloating, useInteractions, } from '@floating-ui/react';
|
|
8
8
|
function round(value) {
|
|
9
9
|
return Math.round(value * 1e5) / 1e5;
|
|
10
10
|
}
|
|
@@ -27,39 +27,27 @@ const useStyles = makeStyles()(theme => ({
|
|
|
27
27
|
const TooltipContents = React.forwardRef(function TooltipContents2({ message }, ref) {
|
|
28
28
|
return (React.createElement("div", { ref: ref }, React.isValidElement(message) ? (message) : message ? (React.createElement(SanitizedHTML, { html: String(message) })) : null));
|
|
29
29
|
});
|
|
30
|
-
const Tooltip = observer(({ model, clientMouseCoord, })
|
|
30
|
+
const Tooltip = observer(function ({ model, clientMouseCoord, }) {
|
|
31
31
|
var _a, _b;
|
|
32
32
|
const { theme, classes } = useStyles();
|
|
33
33
|
const { featureUnderMouse } = model;
|
|
34
|
-
const [
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
return {
|
|
42
|
-
top: y,
|
|
43
|
-
left: x,
|
|
44
|
-
bottom: y,
|
|
45
|
-
right: x,
|
|
46
|
-
width: 0,
|
|
47
|
-
height: 0,
|
|
48
|
-
x,
|
|
49
|
-
y,
|
|
50
|
-
toJSON() { },
|
|
51
|
-
};
|
|
52
|
-
},
|
|
53
|
-
}), [clientMouseCoord, width]);
|
|
54
|
-
const { styles, attributes } = usePopper(virtElement, popperElt);
|
|
34
|
+
const x = clientMouseCoord[0] + 15;
|
|
35
|
+
const y = clientMouseCoord[1];
|
|
36
|
+
const { refs, floatingStyles, context } = useFloating({
|
|
37
|
+
placement: 'right',
|
|
38
|
+
});
|
|
39
|
+
const clientPoint = useClientPoint(context, { x, y });
|
|
40
|
+
const { getFloatingProps } = useInteractions([clientPoint]);
|
|
55
41
|
const contents = featureUnderMouse
|
|
56
42
|
? getConf(model, 'mouseover', { feature: featureUnderMouse })
|
|
57
43
|
: undefined;
|
|
58
44
|
const popperTheme = (_a = theme === null || theme === void 0 ? void 0 : theme.components) === null || _a === void 0 ? void 0 : _a.MuiPopper;
|
|
59
45
|
return featureUnderMouse && contents ? (React.createElement(Portal, { container: (_b = popperTheme === null || popperTheme === void 0 ? void 0 : popperTheme.defaultProps) === null || _b === void 0 ? void 0 : _b.container },
|
|
60
|
-
React.createElement("div", {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
46
|
+
React.createElement("div", { className: classes.tooltip, ref: refs.setFloating, style: {
|
|
47
|
+
...floatingStyles,
|
|
48
|
+
zIndex: 100000,
|
|
49
|
+
pointerEvents: 'none',
|
|
50
|
+
}, ...getFloatingProps() },
|
|
51
|
+
React.createElement(TooltipContents, { message: contents })))) : null;
|
|
64
52
|
});
|
|
65
53
|
export default Tooltip;
|
|
@@ -69,11 +69,7 @@ export declare const BaseLinearDisplay: import("mobx-state-tree").IModelType<{
|
|
|
69
69
|
setMessage(messageText: string): void;
|
|
70
70
|
setRendered(props: {
|
|
71
71
|
reactElement: React.ReactElement<any, string | React.JSXElementConstructor<any>>;
|
|
72
|
-
features: Map<string, Feature>;
|
|
73
|
-
* #getter
|
|
74
|
-
* a CompositeMap of `featureId -> feature obj` that
|
|
75
|
-
* just looks in all the block data for that feature
|
|
76
|
-
*/
|
|
72
|
+
features: Map<string, Feature>;
|
|
77
73
|
layout: any;
|
|
78
74
|
maxHeightReached: boolean;
|
|
79
75
|
renderProps: any;
|
|
@@ -132,9 +128,7 @@ export declare const BaseLinearDisplay: import("mobx-state-tree").IModelType<{
|
|
|
132
128
|
message: string | undefined;
|
|
133
129
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
134
130
|
onHorizontalScroll?: Function | undefined;
|
|
135
|
-
blockState?: Record<string, any> | undefined;
|
|
136
|
-
* #property
|
|
137
|
-
*/
|
|
131
|
+
blockState?: Record<string, any> | undefined;
|
|
138
132
|
}>;
|
|
139
133
|
readonly DisplayBlurb: React.FC<{
|
|
140
134
|
model: {
|
|
@@ -142,9 +136,7 @@ export declare const BaseLinearDisplay: import("mobx-state-tree").IModelType<{
|
|
|
142
136
|
type: string;
|
|
143
137
|
rpcDriverName: string | undefined;
|
|
144
138
|
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
|
|
145
|
-
rendererTypeName: string;
|
|
146
|
-
* #getter
|
|
147
|
-
*/
|
|
139
|
+
rendererTypeName: string;
|
|
148
140
|
error: unknown;
|
|
149
141
|
message: string | undefined;
|
|
150
142
|
} & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
|
|
@@ -361,11 +353,7 @@ export declare const BaseLinearDisplay: import("mobx-state-tree").IModelType<{
|
|
|
361
353
|
setMessage(messageText: string): void;
|
|
362
354
|
setRendered(props: {
|
|
363
355
|
reactElement: React.ReactElement<any, string | React.JSXElementConstructor<any>>;
|
|
364
|
-
features: Map<string, Feature>;
|
|
365
|
-
* #getter
|
|
366
|
-
* a CompositeMap of `featureId -> feature obj` that
|
|
367
|
-
* just looks in all the block data for that feature
|
|
368
|
-
*/
|
|
356
|
+
features: Map<string, Feature>;
|
|
369
357
|
layout: any;
|
|
370
358
|
maxHeightReached: boolean;
|
|
371
359
|
renderProps: any;
|