@jbrowse/plugin-dotplot-view 2.10.3 → 2.11.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/DotplotDisplay/index.d.ts +1 -2
- package/dist/DotplotDisplay/index.js +3 -2
- package/dist/DotplotReadVsRef/DotplotReadVsRef.js +1 -1
- package/dist/DotplotRenderer/index.d.ts +1 -2
- package/dist/DotplotRenderer/index.js +3 -2
- package/dist/DotplotView/components/Axes.js +8 -8
- package/dist/DotplotView/components/DotplotTooltip.js +1 -0
- package/dist/DotplotView/components/DotplotView.js +8 -8
- package/dist/DotplotView/components/ExportSvgDialog.js +8 -3
- package/dist/DotplotView/components/Grid.js +6 -5
- package/dist/DotplotView/components/Header.d.ts +1 -1
- package/dist/DotplotView/index.d.ts +1 -1
- package/dist/DotplotView/index.js +2 -2
- package/dist/DotplotView/model.d.ts +9 -39
- package/dist/DotplotView/svgcomponents/SVGDotplotView.js +1 -1
- package/dist/LaunchDotplotView.js +1 -1
- package/esm/DotplotDisplay/index.d.ts +1 -2
- package/esm/DotplotDisplay/index.js +2 -2
- package/esm/DotplotReadVsRef/DotplotReadVsRef.js +1 -1
- package/esm/DotplotRenderer/index.d.ts +1 -2
- package/esm/DotplotRenderer/index.js +2 -2
- package/esm/DotplotView/components/Axes.js +9 -9
- package/esm/DotplotView/components/DotplotTooltip.js +1 -0
- package/esm/DotplotView/components/DotplotView.js +8 -8
- package/esm/DotplotView/components/ExportSvgDialog.js +8 -3
- package/esm/DotplotView/components/Grid.js +6 -5
- package/esm/DotplotView/components/Header.d.ts +1 -1
- package/esm/DotplotView/index.d.ts +1 -1
- package/esm/DotplotView/index.js +1 -1
- package/esm/DotplotView/model.d.ts +9 -39
- package/esm/DotplotView/svgcomponents/SVGDotplotView.js +1 -1
- package/esm/LaunchDotplotView.js +1 -1
- package/package.json +3 -3
|
@@ -11,7 +11,7 @@ const DisplayType_1 = __importDefault(require("@jbrowse/core/pluggableElementTyp
|
|
|
11
11
|
// locals
|
|
12
12
|
const stateModelFactory_1 = require("./stateModelFactory");
|
|
13
13
|
const DotplotDisplay_1 = __importDefault(require("./components/DotplotDisplay"));
|
|
14
|
-
|
|
14
|
+
function DotplotDisplayF(pm) {
|
|
15
15
|
pm.addDisplayType(() => {
|
|
16
16
|
const configSchema = configSchemaFactory(pm);
|
|
17
17
|
return new DisplayType_1.default({
|
|
@@ -24,7 +24,8 @@ exports.default = (pm) => {
|
|
|
24
24
|
ReactComponent: DotplotDisplay_1.default,
|
|
25
25
|
});
|
|
26
26
|
});
|
|
27
|
-
}
|
|
27
|
+
}
|
|
28
|
+
exports.default = DotplotDisplayF;
|
|
28
29
|
/**
|
|
29
30
|
* #config DotplotDisplay
|
|
30
31
|
*/
|
|
@@ -6,11 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const DotplotRendering_1 = __importDefault(require("./components/DotplotRendering"));
|
|
7
7
|
const DotplotRenderer_1 = __importDefault(require("./DotplotRenderer"));
|
|
8
8
|
const configSchema_1 = __importDefault(require("./configSchema"));
|
|
9
|
-
|
|
9
|
+
function DotplotRendererF(pluginManager) {
|
|
10
10
|
pluginManager.addRendererType(() => new DotplotRenderer_1.default({
|
|
11
11
|
name: 'DotplotRenderer',
|
|
12
12
|
configSchema: configSchema_1.default,
|
|
13
13
|
ReactComponent: DotplotRendering_1.default,
|
|
14
14
|
pluginManager,
|
|
15
15
|
}));
|
|
16
|
-
}
|
|
16
|
+
}
|
|
17
|
+
exports.default = DotplotRendererF;
|
|
@@ -65,13 +65,13 @@ exports.HorizontalAxisRaw = (0, mobx_react_1.observer)(function ({ model, }) {
|
|
|
65
65
|
const x = region.offsetPx;
|
|
66
66
|
const y = 0;
|
|
67
67
|
const xoff = Math.floor(x - hview.offsetPx);
|
|
68
|
-
return (react_1.default.createElement("text", { transform: `rotate(${htextRotation},${xoff},${y})`, key: JSON.stringify(region), x: xoff, y: y + 1,
|
|
68
|
+
return (react_1.default.createElement("text", { transform: `rotate(${htextRotation},${xoff},${y})`, key: JSON.stringify(region), x: xoff, y: y + 1, fontSize: 11, dominantBaseline: "hanging", textAnchor: "end", ...(0, util_1.getFillProps)(theme.palette.text.primary) }, region.refName));
|
|
69
69
|
}),
|
|
70
|
-
ticks.map(([tick, x]) => x > 0 && x < width ? (react_1.default.createElement("line", { key: `line-${JSON.stringify(tick)}`, x1: x, x2: x, y1: 0, y2: tick.type === 'major' ? 6 : 4, strokeWidth: 1,
|
|
70
|
+
ticks.map(([tick, x]) => x > 0 && x < width ? (react_1.default.createElement("line", { key: `line-${JSON.stringify(tick)}`, x1: x, x2: x, y1: 0, y2: tick.type === 'major' ? 6 : 4, strokeWidth: 1, ...(0, util_1.getFillProps)(theme.palette.text.primary) })) : null),
|
|
71
71
|
ticks
|
|
72
72
|
.filter(t => t[0].type === 'major')
|
|
73
|
-
.map(([tick, x]) => x > 10 && x < width ? (react_1.default.createElement("text", { x: x - 7, y: 0, transform: `rotate(${htextRotation},${x},${0})`, key: `text-${JSON.stringify(tick)}`,
|
|
74
|
-
react_1.default.createElement("text", { y: borderY - 12, x: (viewWidth - borderX) / 2,
|
|
73
|
+
.map(([tick, x]) => x > 10 && x < width ? (react_1.default.createElement("text", { x: x - 7, y: 0, transform: `rotate(${htextRotation},${x},${0})`, key: `text-${JSON.stringify(tick)}`, fontSize: 11, dominantBaseline: "middle", textAnchor: "end", ...(0, util_1.getFillProps)(theme.palette.text.primary) }, (0, util_1.getTickDisplayStr)(tick.base + 1, bpPerPx))) : null),
|
|
74
|
+
react_1.default.createElement("text", { y: borderY - 12, x: (viewWidth - borderX) / 2, textAnchor: "middle", fontSize: 11, dominantBaseline: "hanging", ...(0, util_1.getFillProps)(theme.palette.text.primary) }, hview.assemblyNames.join(','))));
|
|
75
75
|
});
|
|
76
76
|
exports.VerticalAxis = (0, mobx_react_1.observer)(function ({ model, }) {
|
|
77
77
|
const { borderX, viewHeight } = model;
|
|
@@ -111,11 +111,11 @@ exports.VerticalAxisRaw = (0, mobx_react_1.observer)(function ({ model, }) {
|
|
|
111
111
|
const y = region.offsetPx;
|
|
112
112
|
const x = borderX;
|
|
113
113
|
const yoff = Math.floor(viewHeight - y + offsetPx);
|
|
114
|
-
return (react_1.default.createElement("text", { transform: `rotate(${vtextRotation},${x},${y})`, key: JSON.stringify(region), x: x, y: yoff,
|
|
114
|
+
return (react_1.default.createElement("text", { transform: `rotate(${vtextRotation},${x},${y})`, key: JSON.stringify(region), x: x, y: yoff, fontSize: 11, textAnchor: "end", ...(0, util_1.getFillProps)(theme.palette.text.primary) }, region.refName));
|
|
115
115
|
}),
|
|
116
|
-
ticks.map(([tick, y]) => y > 0 ? (react_1.default.createElement("line", { key: `line-${JSON.stringify(tick)}`, y1: viewHeight - y, y2: viewHeight - y, x1: borderX, x2: borderX - (tick.type === 'major' ? 6 : 4), strokeWidth: 1,
|
|
116
|
+
ticks.map(([tick, y]) => y > 0 ? (react_1.default.createElement("line", { key: `line-${JSON.stringify(tick)}`, y1: viewHeight - y, y2: viewHeight - y, x1: borderX, x2: borderX - (tick.type === 'major' ? 6 : 4), strokeWidth: 1, ...(0, util_1.getStrokeProps)(theme.palette.grey[400]) })) : null),
|
|
117
117
|
ticks
|
|
118
118
|
.filter(t => t[0].type === 'major')
|
|
119
|
-
.map(([tick, y]) => y > 10 && y < viewHeight ? (react_1.default.createElement("text", { y: viewHeight - y - 3, x: borderX - 7, key: `text-${JSON.stringify(tick)}`, textAnchor: "end",
|
|
120
|
-
react_1.default.createElement("text", { y: (viewHeight - borderY) / 2, x: 12,
|
|
119
|
+
.map(([tick, y]) => y > 10 && y < viewHeight ? (react_1.default.createElement("text", { y: viewHeight - y - 3, x: borderX - 7, key: `text-${JSON.stringify(tick)}`, textAnchor: "end", dominantBaseline: "hanging", fontSize: 11, ...(0, util_1.getFillProps)(theme.palette.text.primary) }, (0, util_1.getTickDisplayStr)(tick.base + 1, bpPerPx))) : null),
|
|
120
|
+
react_1.default.createElement("text", { y: (viewHeight - borderY) / 2, x: 12, transform: `rotate(-90,12,${(viewHeight - borderY) / 2})`, textAnchor: "middle", fontSize: 11, ...(0, util_1.getFillProps)(theme.palette.text.primary) }, vview.assemblyNames.join(','))));
|
|
121
121
|
});
|
|
@@ -37,6 +37,7 @@ exports.TooltipWhereMouseovered = (0, mobx_react_1.observer)(function ({ model,
|
|
|
37
37
|
const theme = (0, material_1.useTheme)();
|
|
38
38
|
const { refs, floatingStyles, context } = (0, react_2.useFloating)({
|
|
39
39
|
placement: xdistance < 0 ? 'left' : 'right',
|
|
40
|
+
strategy: 'fixed',
|
|
40
41
|
});
|
|
41
42
|
const clientPoint = (0, react_2.useClientPoint)(context, mouserectClient
|
|
42
43
|
? {
|
|
@@ -178,15 +178,15 @@ const DotplotViewInternal = (0, mobx_react_1.observer)(function ({ model, }) {
|
|
|
178
178
|
// detect a mouseup after a mousedown was submitted, autoremoves mouseup once
|
|
179
179
|
// that single mouseup is set
|
|
180
180
|
(0, react_1.useEffect)(() => {
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
setMouseDownClient(undefined);
|
|
188
|
-
}
|
|
181
|
+
function globalMouseUp(event) {
|
|
182
|
+
if (Math.abs(xdistance) > 3 && Math.abs(ydistance) > 3 && validSelect) {
|
|
183
|
+
setMouseUpClient([event.clientX, event.clientY]);
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
setMouseDownClient(undefined);
|
|
189
187
|
}
|
|
188
|
+
}
|
|
189
|
+
if (mousedown && !mouseup) {
|
|
190
190
|
window.addEventListener('mouseup', globalMouseUp, true);
|
|
191
191
|
return () => {
|
|
192
192
|
window.removeEventListener('mouseup', globalMouseUp, true);
|
|
@@ -32,6 +32,10 @@ function LoadingMessage() {
|
|
|
32
32
|
react_1.default.createElement(material_1.CircularProgress, { size: 20, style: { marginRight: 20 } }),
|
|
33
33
|
react_1.default.createElement(material_1.Typography, { display: "inline" }, "Creating SVG")));
|
|
34
34
|
}
|
|
35
|
+
function TextField2({ children, ...rest }) {
|
|
36
|
+
return (react_1.default.createElement("div", null,
|
|
37
|
+
react_1.default.createElement(material_1.TextField, { ...rest }, children)));
|
|
38
|
+
}
|
|
35
39
|
function useSvgLocal(key, val) {
|
|
36
40
|
return (0, util_1.useLocalStorage)('svg-' + key, val);
|
|
37
41
|
}
|
|
@@ -46,9 +50,8 @@ function ExportSvgDialog({ model, handleClose, }) {
|
|
|
46
50
|
return (react_1.default.createElement(ui_1.Dialog, { open: true, onClose: handleClose, title: "Export SVG" },
|
|
47
51
|
react_1.default.createElement(material_1.DialogContent, null,
|
|
48
52
|
error ? (react_1.default.createElement(ui_1.ErrorMessage, { error: error })) : loading ? (react_1.default.createElement(LoadingMessage, null)) : null,
|
|
49
|
-
react_1.default.createElement(
|
|
50
|
-
react_1.default.createElement("
|
|
51
|
-
session.allThemes ? (react_1.default.createElement(material_1.TextField, { select: true, label: "Theme", value: themeName, onChange: event => setThemeName(event.target.value) }, Object.entries(session.allThemes()).map(([key, val]) => (react_1.default.createElement(material_1.MenuItem, { key: key, value: key },
|
|
53
|
+
react_1.default.createElement(TextField2, { helperText: "filename", value: filename, onChange: event => setFilename(event.target.value) }),
|
|
54
|
+
session.allThemes ? (react_1.default.createElement(TextField2, { select: true, label: "Theme", value: themeName, onChange: event => setThemeName(event.target.value) }, Object.entries(session.allThemes()).map(([key, val]) => (react_1.default.createElement(material_1.MenuItem, { key: key, value: key },
|
|
52
55
|
// @ts-expect-error
|
|
53
56
|
val.name || '(Unknown name)'))))) : null,
|
|
54
57
|
offscreenCanvas ? (react_1.default.createElement(material_1.FormControlLabel, { control: react_1.default.createElement(material_1.Checkbox, { checked: rasterizeLayers, onChange: () => setRasterizeLayers(val => !val) }), label: "Rasterize canvas based tracks? File may be much larger if this is turned off" })) : (react_1.default.createElement(material_1.Typography, null, "Note: rasterizing layers not yet supported in this browser, so SVG size may be large"))),
|
|
@@ -68,6 +71,8 @@ function ExportSvgDialog({ model, handleClose, }) {
|
|
|
68
71
|
catch (e) {
|
|
69
72
|
console.error(e);
|
|
70
73
|
setError(e);
|
|
74
|
+
}
|
|
75
|
+
finally {
|
|
71
76
|
setLoading(false);
|
|
72
77
|
}
|
|
73
78
|
} }, "Submit"))));
|
|
@@ -7,6 +7,7 @@ exports.GridRaw = void 0;
|
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const mobx_react_1 = require("mobx-react");
|
|
9
9
|
const material_1 = require("@mui/material");
|
|
10
|
+
const util_1 = require("@jbrowse/core/util");
|
|
10
11
|
exports.GridRaw = (0, mobx_react_1.observer)(function ({ model, children, }) {
|
|
11
12
|
const { viewWidth, viewHeight, hview, vview } = model;
|
|
12
13
|
const hblocks = hview.dynamicBlocks.contentBlocks;
|
|
@@ -29,7 +30,7 @@ exports.GridRaw = (0, mobx_react_1.observer)(function ({ model, children, }) {
|
|
|
29
30
|
let lastx = Infinity;
|
|
30
31
|
let lasty = Infinity;
|
|
31
32
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
32
|
-
react_1.default.createElement("rect", { x: rx, y: ry, width: w, height: h,
|
|
33
|
+
react_1.default.createElement("rect", { x: rx, y: ry, width: w, height: h, ...(0, util_1.getFillProps)(theme.palette.background.default) }),
|
|
33
34
|
react_1.default.createElement("g", null,
|
|
34
35
|
hblocks.map(region => {
|
|
35
36
|
const x = region.offsetPx - hview.offsetPx;
|
|
@@ -37,7 +38,7 @@ exports.GridRaw = (0, mobx_react_1.observer)(function ({ model, children, }) {
|
|
|
37
38
|
if (render) {
|
|
38
39
|
lastx = x;
|
|
39
40
|
}
|
|
40
|
-
return render ? (react_1.default.createElement("line", { key: JSON.stringify(region), x1: x, y1: 0, x2: x, y2: viewHeight,
|
|
41
|
+
return render ? (react_1.default.createElement("line", { key: JSON.stringify(region), x1: x, y1: 0, x2: x, y2: viewHeight, ...(0, util_1.getStrokeProps)(stroke) })) : null;
|
|
41
42
|
}),
|
|
42
43
|
vblocks.map(region => {
|
|
43
44
|
const y = viewHeight - (region.offsetPx - vview.offsetPx);
|
|
@@ -45,10 +46,10 @@ exports.GridRaw = (0, mobx_react_1.observer)(function ({ model, children, }) {
|
|
|
45
46
|
if (render) {
|
|
46
47
|
lasty = y;
|
|
47
48
|
}
|
|
48
|
-
return render ? (react_1.default.createElement("line", { key: JSON.stringify(region), x1: 0, y1: y, x2: viewWidth, y2: y,
|
|
49
|
+
return render ? (react_1.default.createElement("line", { key: JSON.stringify(region), x1: 0, y1: y, x2: viewWidth, y2: y, ...(0, util_1.getStrokeProps)(stroke) })) : null;
|
|
49
50
|
}),
|
|
50
|
-
react_1.default.createElement("line", { x1: htop, y1: 0, x2: htop, y2: viewHeight,
|
|
51
|
-
react_1.default.createElement("line", { x1: 0, y1: viewHeight - vtop, x2: viewWidth, y2: viewHeight - vtop,
|
|
51
|
+
react_1.default.createElement("line", { x1: htop, y1: 0, x2: htop, y2: viewHeight, ...(0, util_1.getStrokeProps)(stroke) }),
|
|
52
|
+
react_1.default.createElement("line", { x1: 0, y1: viewHeight - vtop, x2: viewWidth, y2: viewHeight - vtop, ...(0, util_1.getStrokeProps)(stroke) })),
|
|
52
53
|
children));
|
|
53
54
|
});
|
|
54
55
|
function Grid({ model, children, }) {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import PluginManager from '@jbrowse/core/PluginManager';
|
|
2
|
-
export default function (pluginManager: PluginManager): void;
|
|
2
|
+
export default function DotplotViewF(pluginManager: PluginManager): void;
|
|
@@ -30,7 +30,7 @@ const react_1 = require("react");
|
|
|
30
30
|
const ViewType_1 = __importDefault(require("@jbrowse/core/pluggableElementTypes/ViewType"));
|
|
31
31
|
// locals
|
|
32
32
|
const model_1 = __importDefault(require("./model"));
|
|
33
|
-
function
|
|
33
|
+
function DotplotViewF(pluginManager) {
|
|
34
34
|
pluginManager.addViewType(() => {
|
|
35
35
|
return new ViewType_1.default({
|
|
36
36
|
name: 'DotplotView',
|
|
@@ -40,4 +40,4 @@ function default_1(pluginManager) {
|
|
|
40
40
|
});
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
|
-
exports.default =
|
|
43
|
+
exports.default = DotplotViewF;
|
|
@@ -89,9 +89,7 @@ export default function stateModelFactory(pm: PluginManager): import("mobx-state
|
|
|
89
89
|
* #property
|
|
90
90
|
*/
|
|
91
91
|
coord: number;
|
|
92
|
-
regionNumber?: number | undefined;
|
|
93
|
-
* #property
|
|
94
|
-
*/
|
|
92
|
+
regionNumber?: number | undefined;
|
|
95
93
|
}): number | undefined;
|
|
96
94
|
} & {
|
|
97
95
|
setFeatures(features: import("@jbrowse/core/util").Feature[]): void;
|
|
@@ -100,12 +98,7 @@ export default function stateModelFactory(pm: PluginManager): import("mobx-state
|
|
|
100
98
|
zoomIn(): void;
|
|
101
99
|
zoomTo(bpPerPx: number, offset?: number | undefined): number;
|
|
102
100
|
scrollTo(offsetPx: number): number;
|
|
103
|
-
centerAt(coord: number, refName: string | undefined, regionNumber: number): void;
|
|
104
|
-
* #property
|
|
105
|
-
* this represents tracks specific to this view specifically used
|
|
106
|
-
* for read vs ref dotplots where this track would not really apply
|
|
107
|
-
* elsewhere
|
|
108
|
-
*/
|
|
101
|
+
centerAt(coord: number, refName: string | undefined, regionNumber: number): void;
|
|
109
102
|
scroll(distance: number): number;
|
|
110
103
|
} & {
|
|
111
104
|
moveTo(start?: import("@jbrowse/core/util/Base1DUtils").BpOffset | undefined, end?: import("@jbrowse/core/util/Base1DUtils").BpOffset | undefined): void;
|
|
@@ -177,9 +170,7 @@ export default function stateModelFactory(pm: PluginManager): import("mobx-state
|
|
|
177
170
|
* #property
|
|
178
171
|
*/
|
|
179
172
|
coord: number;
|
|
180
|
-
regionNumber?: number | undefined;
|
|
181
|
-
* #property
|
|
182
|
-
*/
|
|
173
|
+
regionNumber?: number | undefined;
|
|
183
174
|
}): number | undefined;
|
|
184
175
|
} & {
|
|
185
176
|
setFeatures(features: import("@jbrowse/core/util").Feature[]): void;
|
|
@@ -188,12 +179,7 @@ export default function stateModelFactory(pm: PluginManager): import("mobx-state
|
|
|
188
179
|
zoomIn(): void;
|
|
189
180
|
zoomTo(bpPerPx: number, offset?: number | undefined): number;
|
|
190
181
|
scrollTo(offsetPx: number): number;
|
|
191
|
-
centerAt(coord: number, refName: string | undefined, regionNumber: number): void;
|
|
192
|
-
* #property
|
|
193
|
-
* this represents tracks specific to this view specifically used
|
|
194
|
-
* for read vs ref dotplots where this track would not really apply
|
|
195
|
-
* elsewhere
|
|
196
|
-
*/
|
|
182
|
+
centerAt(coord: number, refName: string | undefined, regionNumber: number): void;
|
|
197
183
|
scroll(distance: number): number;
|
|
198
184
|
} & {
|
|
199
185
|
moveTo(start?: import("@jbrowse/core/util/Base1DUtils").BpOffset | undefined, end?: import("@jbrowse/core/util/Base1DUtils").BpOffset | undefined): void;
|
|
@@ -230,9 +216,7 @@ export default function stateModelFactory(pm: PluginManager): import("mobx-state
|
|
|
230
216
|
} & {
|
|
231
217
|
setMinimized(flag: boolean): void;
|
|
232
218
|
showDisplay(displayId: string, initialSnapshot?: {} | undefined): void;
|
|
233
|
-
hideDisplay(displayId: string): number;
|
|
234
|
-
* #property
|
|
235
|
-
*/
|
|
219
|
+
hideDisplay(displayId: string): number;
|
|
236
220
|
replaceDisplay(oldId: string, newId: string, initialSnapshot?: {} | undefined): void;
|
|
237
221
|
} & {
|
|
238
222
|
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 | {
|
|
@@ -385,9 +369,7 @@ export default function stateModelFactory(pm: PluginManager): import("mobx-state
|
|
|
385
369
|
* #property
|
|
386
370
|
*/
|
|
387
371
|
coord: number;
|
|
388
|
-
regionNumber?: number | undefined;
|
|
389
|
-
* #property
|
|
390
|
-
*/
|
|
372
|
+
regionNumber?: number | undefined;
|
|
391
373
|
}): number | undefined;
|
|
392
374
|
} & {
|
|
393
375
|
setFeatures(features: import("@jbrowse/core/util").Feature[]): void;
|
|
@@ -396,12 +378,7 @@ export default function stateModelFactory(pm: PluginManager): import("mobx-state
|
|
|
396
378
|
zoomIn(): void;
|
|
397
379
|
zoomTo(bpPerPx: number, offset?: number | undefined): number;
|
|
398
380
|
scrollTo(offsetPx: number): number;
|
|
399
|
-
centerAt(coord: number, refName: string | undefined, regionNumber: number): void;
|
|
400
|
-
* #property
|
|
401
|
-
* this represents tracks specific to this view specifically used
|
|
402
|
-
* for read vs ref dotplots where this track would not really apply
|
|
403
|
-
* elsewhere
|
|
404
|
-
*/
|
|
381
|
+
centerAt(coord: number, refName: string | undefined, regionNumber: number): void;
|
|
405
382
|
scroll(distance: number): number;
|
|
406
383
|
} & {
|
|
407
384
|
moveTo(start?: import("@jbrowse/core/util/Base1DUtils").BpOffset | undefined, end?: import("@jbrowse/core/util/Base1DUtils").BpOffset | undefined): void;
|
|
@@ -472,9 +449,7 @@ export default function stateModelFactory(pm: PluginManager): import("mobx-state
|
|
|
472
449
|
* #property
|
|
473
450
|
*/
|
|
474
451
|
coord: number;
|
|
475
|
-
regionNumber?: number | undefined;
|
|
476
|
-
* #property
|
|
477
|
-
*/
|
|
452
|
+
regionNumber?: number | undefined;
|
|
478
453
|
}): number | undefined;
|
|
479
454
|
} & {
|
|
480
455
|
setFeatures(features: import("@jbrowse/core/util").Feature[]): void;
|
|
@@ -483,12 +458,7 @@ export default function stateModelFactory(pm: PluginManager): import("mobx-state
|
|
|
483
458
|
zoomIn(): void;
|
|
484
459
|
zoomTo(bpPerPx: number, offset?: number | undefined): number;
|
|
485
460
|
scrollTo(offsetPx: number): number;
|
|
486
|
-
centerAt(coord: number, refName: string | undefined, regionNumber: number): void;
|
|
487
|
-
* #property
|
|
488
|
-
* this represents tracks specific to this view specifically used
|
|
489
|
-
* for read vs ref dotplots where this track would not really apply
|
|
490
|
-
* elsewhere
|
|
491
|
-
*/
|
|
461
|
+
centerAt(coord: number, refName: string | undefined, regionNumber: number): void;
|
|
492
462
|
scroll(distance: number): number;
|
|
493
463
|
} & {
|
|
494
464
|
moveTo(start?: import("@jbrowse/core/util/Base1DUtils").BpOffset | undefined, end?: import("@jbrowse/core/util/Base1DUtils").BpOffset | undefined): void;
|
|
@@ -17,7 +17,7 @@ const SVGBackground_1 = __importDefault(require("./SVGBackground"));
|
|
|
17
17
|
async function renderToSvg(model, opts) {
|
|
18
18
|
var _a;
|
|
19
19
|
await (0, mobx_1.when)(() => model.initialized);
|
|
20
|
-
const { themeName = 'default', Wrapper = ({ children }) =>
|
|
20
|
+
const { themeName = 'default', Wrapper = ({ children }) => children } = opts;
|
|
21
21
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
22
22
|
const { createRootFn } = (0, mobx_state_tree_1.getRoot)(model);
|
|
23
23
|
const session = (0, util_1.getSession)(model);
|
|
@@ -5,7 +5,7 @@ import DisplayType from '@jbrowse/core/pluggableElementTypes/DisplayType';
|
|
|
5
5
|
// locals
|
|
6
6
|
import { stateModelFactory } from './stateModelFactory';
|
|
7
7
|
import ReactComponent from './components/DotplotDisplay';
|
|
8
|
-
export default (pm)
|
|
8
|
+
export default function DotplotDisplayF(pm) {
|
|
9
9
|
pm.addDisplayType(() => {
|
|
10
10
|
const configSchema = configSchemaFactory(pm);
|
|
11
11
|
return new DisplayType({
|
|
@@ -18,7 +18,7 @@ export default (pm) => {
|
|
|
18
18
|
ReactComponent,
|
|
19
19
|
});
|
|
20
20
|
});
|
|
21
|
-
}
|
|
21
|
+
}
|
|
22
22
|
/**
|
|
23
23
|
* #config DotplotDisplay
|
|
24
24
|
*/
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import ReactComponent from './components/DotplotRendering';
|
|
2
2
|
import DotplotRenderer from './DotplotRenderer';
|
|
3
3
|
import configSchema from './configSchema';
|
|
4
|
-
export default (pluginManager)
|
|
4
|
+
export default function DotplotRendererF(pluginManager) {
|
|
5
5
|
pluginManager.addRendererType(() => new DotplotRenderer({
|
|
6
6
|
name: 'DotplotRenderer',
|
|
7
7
|
configSchema: configSchema,
|
|
8
8
|
ReactComponent,
|
|
9
9
|
pluginManager,
|
|
10
10
|
}));
|
|
11
|
-
}
|
|
11
|
+
}
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { makeStyles } from 'tss-react/mui';
|
|
3
3
|
import { observer } from 'mobx-react';
|
|
4
4
|
import { getSnapshot } from 'mobx-state-tree';
|
|
5
|
-
import { getTickDisplayStr } from '@jbrowse/core/util';
|
|
5
|
+
import { getFillProps, getStrokeProps, getTickDisplayStr, } from '@jbrowse/core/util';
|
|
6
6
|
import { bpToPx } from '@jbrowse/core/util/Base1DUtils';
|
|
7
7
|
import { useTheme } from '@mui/material';
|
|
8
8
|
// locals
|
|
@@ -59,13 +59,13 @@ export const HorizontalAxisRaw = observer(function ({ model, }) {
|
|
|
59
59
|
const x = region.offsetPx;
|
|
60
60
|
const y = 0;
|
|
61
61
|
const xoff = Math.floor(x - hview.offsetPx);
|
|
62
|
-
return (React.createElement("text", { transform: `rotate(${htextRotation},${xoff},${y})`, key: JSON.stringify(region), x: xoff, y: y + 1,
|
|
62
|
+
return (React.createElement("text", { transform: `rotate(${htextRotation},${xoff},${y})`, key: JSON.stringify(region), x: xoff, y: y + 1, fontSize: 11, dominantBaseline: "hanging", textAnchor: "end", ...getFillProps(theme.palette.text.primary) }, region.refName));
|
|
63
63
|
}),
|
|
64
|
-
ticks.map(([tick, x]) => x > 0 && x < width ? (React.createElement("line", { key: `line-${JSON.stringify(tick)}`, x1: x, x2: x, y1: 0, y2: tick.type === 'major' ? 6 : 4, strokeWidth: 1,
|
|
64
|
+
ticks.map(([tick, x]) => x > 0 && x < width ? (React.createElement("line", { key: `line-${JSON.stringify(tick)}`, x1: x, x2: x, y1: 0, y2: tick.type === 'major' ? 6 : 4, strokeWidth: 1, ...getFillProps(theme.palette.text.primary) })) : null),
|
|
65
65
|
ticks
|
|
66
66
|
.filter(t => t[0].type === 'major')
|
|
67
|
-
.map(([tick, x]) => x > 10 && x < width ? (React.createElement("text", { x: x - 7, y: 0, transform: `rotate(${htextRotation},${x},${0})`, key: `text-${JSON.stringify(tick)}`,
|
|
68
|
-
React.createElement("text", { y: borderY - 12, x: (viewWidth - borderX) / 2,
|
|
67
|
+
.map(([tick, x]) => x > 10 && x < width ? (React.createElement("text", { x: x - 7, y: 0, transform: `rotate(${htextRotation},${x},${0})`, key: `text-${JSON.stringify(tick)}`, fontSize: 11, dominantBaseline: "middle", textAnchor: "end", ...getFillProps(theme.palette.text.primary) }, getTickDisplayStr(tick.base + 1, bpPerPx))) : null),
|
|
68
|
+
React.createElement("text", { y: borderY - 12, x: (viewWidth - borderX) / 2, textAnchor: "middle", fontSize: 11, dominantBaseline: "hanging", ...getFillProps(theme.palette.text.primary) }, hview.assemblyNames.join(','))));
|
|
69
69
|
});
|
|
70
70
|
export const VerticalAxis = observer(function ({ model, }) {
|
|
71
71
|
const { borderX, viewHeight } = model;
|
|
@@ -105,11 +105,11 @@ export const VerticalAxisRaw = observer(function ({ model, }) {
|
|
|
105
105
|
const y = region.offsetPx;
|
|
106
106
|
const x = borderX;
|
|
107
107
|
const yoff = Math.floor(viewHeight - y + offsetPx);
|
|
108
|
-
return (React.createElement("text", { transform: `rotate(${vtextRotation},${x},${y})`, key: JSON.stringify(region), x: x, y: yoff,
|
|
108
|
+
return (React.createElement("text", { transform: `rotate(${vtextRotation},${x},${y})`, key: JSON.stringify(region), x: x, y: yoff, fontSize: 11, textAnchor: "end", ...getFillProps(theme.palette.text.primary) }, region.refName));
|
|
109
109
|
}),
|
|
110
|
-
ticks.map(([tick, y]) => y > 0 ? (React.createElement("line", { key: `line-${JSON.stringify(tick)}`, y1: viewHeight - y, y2: viewHeight - y, x1: borderX, x2: borderX - (tick.type === 'major' ? 6 : 4), strokeWidth: 1,
|
|
110
|
+
ticks.map(([tick, y]) => y > 0 ? (React.createElement("line", { key: `line-${JSON.stringify(tick)}`, y1: viewHeight - y, y2: viewHeight - y, x1: borderX, x2: borderX - (tick.type === 'major' ? 6 : 4), strokeWidth: 1, ...getStrokeProps(theme.palette.grey[400]) })) : null),
|
|
111
111
|
ticks
|
|
112
112
|
.filter(t => t[0].type === 'major')
|
|
113
|
-
.map(([tick, y]) => y > 10 && y < viewHeight ? (React.createElement("text", { y: viewHeight - y - 3, x: borderX - 7, key: `text-${JSON.stringify(tick)}`, textAnchor: "end",
|
|
114
|
-
React.createElement("text", { y: (viewHeight - borderY) / 2, x: 12,
|
|
113
|
+
.map(([tick, y]) => y > 10 && y < viewHeight ? (React.createElement("text", { y: viewHeight - y - 3, x: borderX - 7, key: `text-${JSON.stringify(tick)}`, textAnchor: "end", dominantBaseline: "hanging", fontSize: 11, ...getFillProps(theme.palette.text.primary) }, getTickDisplayStr(tick.base + 1, bpPerPx))) : null),
|
|
114
|
+
React.createElement("text", { y: (viewHeight - borderY) / 2, x: 12, transform: `rotate(-90,12,${(viewHeight - borderY) / 2})`, textAnchor: "middle", fontSize: 11, ...getFillProps(theme.palette.text.primary) }, vview.assemblyNames.join(','))));
|
|
115
115
|
});
|
|
@@ -31,6 +31,7 @@ export const TooltipWhereMouseovered = observer(function ({ model, mouserect, mo
|
|
|
31
31
|
const theme = useTheme();
|
|
32
32
|
const { refs, floatingStyles, context } = useFloating({
|
|
33
33
|
placement: xdistance < 0 ? 'left' : 'right',
|
|
34
|
+
strategy: 'fixed',
|
|
34
35
|
});
|
|
35
36
|
const clientPoint = useClientPoint(context, mouserectClient
|
|
36
37
|
? {
|
|
@@ -150,15 +150,15 @@ const DotplotViewInternal = observer(function ({ model, }) {
|
|
|
150
150
|
// detect a mouseup after a mousedown was submitted, autoremoves mouseup once
|
|
151
151
|
// that single mouseup is set
|
|
152
152
|
useEffect(() => {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
setMouseDownClient(undefined);
|
|
160
|
-
}
|
|
153
|
+
function globalMouseUp(event) {
|
|
154
|
+
if (Math.abs(xdistance) > 3 && Math.abs(ydistance) > 3 && validSelect) {
|
|
155
|
+
setMouseUpClient([event.clientX, event.clientY]);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
setMouseDownClient(undefined);
|
|
161
159
|
}
|
|
160
|
+
}
|
|
161
|
+
if (mousedown && !mouseup) {
|
|
162
162
|
window.addEventListener('mouseup', globalMouseUp, true);
|
|
163
163
|
return () => {
|
|
164
164
|
window.removeEventListener('mouseup', globalMouseUp, true);
|
|
@@ -7,6 +7,10 @@ function LoadingMessage() {
|
|
|
7
7
|
React.createElement(CircularProgress, { size: 20, style: { marginRight: 20 } }),
|
|
8
8
|
React.createElement(Typography, { display: "inline" }, "Creating SVG")));
|
|
9
9
|
}
|
|
10
|
+
function TextField2({ children, ...rest }) {
|
|
11
|
+
return (React.createElement("div", null,
|
|
12
|
+
React.createElement(TextField, { ...rest }, children)));
|
|
13
|
+
}
|
|
10
14
|
function useSvgLocal(key, val) {
|
|
11
15
|
return useLocalStorage('svg-' + key, val);
|
|
12
16
|
}
|
|
@@ -21,9 +25,8 @@ export default function ExportSvgDialog({ model, handleClose, }) {
|
|
|
21
25
|
return (React.createElement(Dialog, { open: true, onClose: handleClose, title: "Export SVG" },
|
|
22
26
|
React.createElement(DialogContent, null,
|
|
23
27
|
error ? (React.createElement(ErrorMessage, { error: error })) : loading ? (React.createElement(LoadingMessage, null)) : null,
|
|
24
|
-
React.createElement(
|
|
25
|
-
React.createElement("
|
|
26
|
-
session.allThemes ? (React.createElement(TextField, { select: true, label: "Theme", value: themeName, onChange: event => setThemeName(event.target.value) }, Object.entries(session.allThemes()).map(([key, val]) => (React.createElement(MenuItem, { key: key, value: key },
|
|
28
|
+
React.createElement(TextField2, { helperText: "filename", value: filename, onChange: event => setFilename(event.target.value) }),
|
|
29
|
+
session.allThemes ? (React.createElement(TextField2, { select: true, label: "Theme", value: themeName, onChange: event => setThemeName(event.target.value) }, Object.entries(session.allThemes()).map(([key, val]) => (React.createElement(MenuItem, { key: key, value: key },
|
|
27
30
|
// @ts-expect-error
|
|
28
31
|
val.name || '(Unknown name)'))))) : null,
|
|
29
32
|
offscreenCanvas ? (React.createElement(FormControlLabel, { control: React.createElement(Checkbox, { checked: rasterizeLayers, onChange: () => setRasterizeLayers(val => !val) }), label: "Rasterize canvas based tracks? File may be much larger if this is turned off" })) : (React.createElement(Typography, null, "Note: rasterizing layers not yet supported in this browser, so SVG size may be large"))),
|
|
@@ -43,6 +46,8 @@ export default function ExportSvgDialog({ model, handleClose, }) {
|
|
|
43
46
|
catch (e) {
|
|
44
47
|
console.error(e);
|
|
45
48
|
setError(e);
|
|
49
|
+
}
|
|
50
|
+
finally {
|
|
46
51
|
setLoading(false);
|
|
47
52
|
}
|
|
48
53
|
} }, "Submit"))));
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { observer } from 'mobx-react';
|
|
3
3
|
import { useTheme } from '@mui/material';
|
|
4
|
+
import { getFillProps, getStrokeProps } from '@jbrowse/core/util';
|
|
4
5
|
export const GridRaw = observer(function ({ model, children, }) {
|
|
5
6
|
const { viewWidth, viewHeight, hview, vview } = model;
|
|
6
7
|
const hblocks = hview.dynamicBlocks.contentBlocks;
|
|
@@ -23,7 +24,7 @@ export const GridRaw = observer(function ({ model, children, }) {
|
|
|
23
24
|
let lastx = Infinity;
|
|
24
25
|
let lasty = Infinity;
|
|
25
26
|
return (React.createElement(React.Fragment, null,
|
|
26
|
-
React.createElement("rect", { x: rx, y: ry, width: w, height: h,
|
|
27
|
+
React.createElement("rect", { x: rx, y: ry, width: w, height: h, ...getFillProps(theme.palette.background.default) }),
|
|
27
28
|
React.createElement("g", null,
|
|
28
29
|
hblocks.map(region => {
|
|
29
30
|
const x = region.offsetPx - hview.offsetPx;
|
|
@@ -31,7 +32,7 @@ export const GridRaw = observer(function ({ model, children, }) {
|
|
|
31
32
|
if (render) {
|
|
32
33
|
lastx = x;
|
|
33
34
|
}
|
|
34
|
-
return render ? (React.createElement("line", { key: JSON.stringify(region), x1: x, y1: 0, x2: x, y2: viewHeight, stroke
|
|
35
|
+
return render ? (React.createElement("line", { key: JSON.stringify(region), x1: x, y1: 0, x2: x, y2: viewHeight, ...getStrokeProps(stroke) })) : null;
|
|
35
36
|
}),
|
|
36
37
|
vblocks.map(region => {
|
|
37
38
|
const y = viewHeight - (region.offsetPx - vview.offsetPx);
|
|
@@ -39,10 +40,10 @@ export const GridRaw = observer(function ({ model, children, }) {
|
|
|
39
40
|
if (render) {
|
|
40
41
|
lasty = y;
|
|
41
42
|
}
|
|
42
|
-
return render ? (React.createElement("line", { key: JSON.stringify(region), x1: 0, y1: y, x2: viewWidth, y2: y, stroke
|
|
43
|
+
return render ? (React.createElement("line", { key: JSON.stringify(region), x1: 0, y1: y, x2: viewWidth, y2: y, ...getStrokeProps(stroke) })) : null;
|
|
43
44
|
}),
|
|
44
|
-
React.createElement("line", { x1: htop, y1: 0, x2: htop, y2: viewHeight, stroke
|
|
45
|
-
React.createElement("line", { x1: 0, y1: viewHeight - vtop, x2: viewWidth, y2: viewHeight - vtop, stroke
|
|
45
|
+
React.createElement("line", { x1: htop, y1: 0, x2: htop, y2: viewHeight, ...getStrokeProps(stroke) }),
|
|
46
|
+
React.createElement("line", { x1: 0, y1: viewHeight - vtop, x2: viewWidth, y2: viewHeight - vtop, ...getStrokeProps(stroke) })),
|
|
46
47
|
children));
|
|
47
48
|
});
|
|
48
49
|
export default function Grid({ model, children, }) {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import PluginManager from '@jbrowse/core/PluginManager';
|
|
2
|
-
export default function (pluginManager: PluginManager): void;
|
|
2
|
+
export default function DotplotViewF(pluginManager: PluginManager): void;
|
package/esm/DotplotView/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import { lazy } from 'react';
|
|
|
2
2
|
import ViewType from '@jbrowse/core/pluggableElementTypes/ViewType';
|
|
3
3
|
// locals
|
|
4
4
|
import stateModelFactory from './model';
|
|
5
|
-
export default function (pluginManager) {
|
|
5
|
+
export default function DotplotViewF(pluginManager) {
|
|
6
6
|
pluginManager.addViewType(() => {
|
|
7
7
|
return new ViewType({
|
|
8
8
|
name: 'DotplotView',
|
|
@@ -89,9 +89,7 @@ export default function stateModelFactory(pm: PluginManager): import("mobx-state
|
|
|
89
89
|
* #property
|
|
90
90
|
*/
|
|
91
91
|
coord: number;
|
|
92
|
-
regionNumber?: number | undefined;
|
|
93
|
-
* #property
|
|
94
|
-
*/
|
|
92
|
+
regionNumber?: number | undefined;
|
|
95
93
|
}): number | undefined;
|
|
96
94
|
} & {
|
|
97
95
|
setFeatures(features: import("@jbrowse/core/util").Feature[]): void;
|
|
@@ -100,12 +98,7 @@ export default function stateModelFactory(pm: PluginManager): import("mobx-state
|
|
|
100
98
|
zoomIn(): void;
|
|
101
99
|
zoomTo(bpPerPx: number, offset?: number | undefined): number;
|
|
102
100
|
scrollTo(offsetPx: number): number;
|
|
103
|
-
centerAt(coord: number, refName: string | undefined, regionNumber: number): void;
|
|
104
|
-
* #property
|
|
105
|
-
* this represents tracks specific to this view specifically used
|
|
106
|
-
* for read vs ref dotplots where this track would not really apply
|
|
107
|
-
* elsewhere
|
|
108
|
-
*/
|
|
101
|
+
centerAt(coord: number, refName: string | undefined, regionNumber: number): void;
|
|
109
102
|
scroll(distance: number): number;
|
|
110
103
|
} & {
|
|
111
104
|
moveTo(start?: import("@jbrowse/core/util/Base1DUtils").BpOffset | undefined, end?: import("@jbrowse/core/util/Base1DUtils").BpOffset | undefined): void;
|
|
@@ -177,9 +170,7 @@ export default function stateModelFactory(pm: PluginManager): import("mobx-state
|
|
|
177
170
|
* #property
|
|
178
171
|
*/
|
|
179
172
|
coord: number;
|
|
180
|
-
regionNumber?: number | undefined;
|
|
181
|
-
* #property
|
|
182
|
-
*/
|
|
173
|
+
regionNumber?: number | undefined;
|
|
183
174
|
}): number | undefined;
|
|
184
175
|
} & {
|
|
185
176
|
setFeatures(features: import("@jbrowse/core/util").Feature[]): void;
|
|
@@ -188,12 +179,7 @@ export default function stateModelFactory(pm: PluginManager): import("mobx-state
|
|
|
188
179
|
zoomIn(): void;
|
|
189
180
|
zoomTo(bpPerPx: number, offset?: number | undefined): number;
|
|
190
181
|
scrollTo(offsetPx: number): number;
|
|
191
|
-
centerAt(coord: number, refName: string | undefined, regionNumber: number): void;
|
|
192
|
-
* #property
|
|
193
|
-
* this represents tracks specific to this view specifically used
|
|
194
|
-
* for read vs ref dotplots where this track would not really apply
|
|
195
|
-
* elsewhere
|
|
196
|
-
*/
|
|
182
|
+
centerAt(coord: number, refName: string | undefined, regionNumber: number): void;
|
|
197
183
|
scroll(distance: number): number;
|
|
198
184
|
} & {
|
|
199
185
|
moveTo(start?: import("@jbrowse/core/util/Base1DUtils").BpOffset | undefined, end?: import("@jbrowse/core/util/Base1DUtils").BpOffset | undefined): void;
|
|
@@ -230,9 +216,7 @@ export default function stateModelFactory(pm: PluginManager): import("mobx-state
|
|
|
230
216
|
} & {
|
|
231
217
|
setMinimized(flag: boolean): void;
|
|
232
218
|
showDisplay(displayId: string, initialSnapshot?: {} | undefined): void;
|
|
233
|
-
hideDisplay(displayId: string): number;
|
|
234
|
-
* #property
|
|
235
|
-
*/
|
|
219
|
+
hideDisplay(displayId: string): number;
|
|
236
220
|
replaceDisplay(oldId: string, newId: string, initialSnapshot?: {} | undefined): void;
|
|
237
221
|
} & {
|
|
238
222
|
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 | {
|
|
@@ -385,9 +369,7 @@ export default function stateModelFactory(pm: PluginManager): import("mobx-state
|
|
|
385
369
|
* #property
|
|
386
370
|
*/
|
|
387
371
|
coord: number;
|
|
388
|
-
regionNumber?: number | undefined;
|
|
389
|
-
* #property
|
|
390
|
-
*/
|
|
372
|
+
regionNumber?: number | undefined;
|
|
391
373
|
}): number | undefined;
|
|
392
374
|
} & {
|
|
393
375
|
setFeatures(features: import("@jbrowse/core/util").Feature[]): void;
|
|
@@ -396,12 +378,7 @@ export default function stateModelFactory(pm: PluginManager): import("mobx-state
|
|
|
396
378
|
zoomIn(): void;
|
|
397
379
|
zoomTo(bpPerPx: number, offset?: number | undefined): number;
|
|
398
380
|
scrollTo(offsetPx: number): number;
|
|
399
|
-
centerAt(coord: number, refName: string | undefined, regionNumber: number): void;
|
|
400
|
-
* #property
|
|
401
|
-
* this represents tracks specific to this view specifically used
|
|
402
|
-
* for read vs ref dotplots where this track would not really apply
|
|
403
|
-
* elsewhere
|
|
404
|
-
*/
|
|
381
|
+
centerAt(coord: number, refName: string | undefined, regionNumber: number): void;
|
|
405
382
|
scroll(distance: number): number;
|
|
406
383
|
} & {
|
|
407
384
|
moveTo(start?: import("@jbrowse/core/util/Base1DUtils").BpOffset | undefined, end?: import("@jbrowse/core/util/Base1DUtils").BpOffset | undefined): void;
|
|
@@ -472,9 +449,7 @@ export default function stateModelFactory(pm: PluginManager): import("mobx-state
|
|
|
472
449
|
* #property
|
|
473
450
|
*/
|
|
474
451
|
coord: number;
|
|
475
|
-
regionNumber?: number | undefined;
|
|
476
|
-
* #property
|
|
477
|
-
*/
|
|
452
|
+
regionNumber?: number | undefined;
|
|
478
453
|
}): number | undefined;
|
|
479
454
|
} & {
|
|
480
455
|
setFeatures(features: import("@jbrowse/core/util").Feature[]): void;
|
|
@@ -483,12 +458,7 @@ export default function stateModelFactory(pm: PluginManager): import("mobx-state
|
|
|
483
458
|
zoomIn(): void;
|
|
484
459
|
zoomTo(bpPerPx: number, offset?: number | undefined): number;
|
|
485
460
|
scrollTo(offsetPx: number): number;
|
|
486
|
-
centerAt(coord: number, refName: string | undefined, regionNumber: number): void;
|
|
487
|
-
* #property
|
|
488
|
-
* this represents tracks specific to this view specifically used
|
|
489
|
-
* for read vs ref dotplots where this track would not really apply
|
|
490
|
-
* elsewhere
|
|
491
|
-
*/
|
|
461
|
+
centerAt(coord: number, refName: string | undefined, regionNumber: number): void;
|
|
492
462
|
scroll(distance: number): number;
|
|
493
463
|
} & {
|
|
494
464
|
moveTo(start?: import("@jbrowse/core/util/Base1DUtils").BpOffset | undefined, end?: import("@jbrowse/core/util/Base1DUtils").BpOffset | undefined): void;
|
|
@@ -11,7 +11,7 @@ import SVGBackground from './SVGBackground';
|
|
|
11
11
|
export async function renderToSvg(model, opts) {
|
|
12
12
|
var _a;
|
|
13
13
|
await when(() => model.initialized);
|
|
14
|
-
const { themeName = 'default', Wrapper = ({ children }) =>
|
|
14
|
+
const { themeName = 'default', Wrapper = ({ children }) => children } = opts;
|
|
15
15
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
16
16
|
const { createRootFn } = getRoot(model);
|
|
17
17
|
const session = getSession(model);
|
package/esm/LaunchDotplotView.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jbrowse/plugin-dotplot-view",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.11.1",
|
|
4
4
|
"description": "JBrowse 2 dotplot view",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jbrowse",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@floating-ui/react": "^0.26.3",
|
|
40
40
|
"@mui/icons-material": "^5.0.1",
|
|
41
|
-
"@mui/x-data-grid": "^
|
|
41
|
+
"@mui/x-data-grid": "^7.0.0",
|
|
42
42
|
"@types/file-saver": "^2.0.1",
|
|
43
43
|
"@types/normalize-wheel": "^1.0.0",
|
|
44
44
|
"clone": "^2.1.2",
|
|
@@ -63,5 +63,5 @@
|
|
|
63
63
|
"publishConfig": {
|
|
64
64
|
"access": "public"
|
|
65
65
|
},
|
|
66
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "11b28d66d782eb06f92ccb993108bb6c3c82819e"
|
|
67
67
|
}
|