@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.
Files changed (33) hide show
  1. package/dist/DotplotDisplay/index.d.ts +1 -2
  2. package/dist/DotplotDisplay/index.js +3 -2
  3. package/dist/DotplotReadVsRef/DotplotReadVsRef.js +1 -1
  4. package/dist/DotplotRenderer/index.d.ts +1 -2
  5. package/dist/DotplotRenderer/index.js +3 -2
  6. package/dist/DotplotView/components/Axes.js +8 -8
  7. package/dist/DotplotView/components/DotplotTooltip.js +1 -0
  8. package/dist/DotplotView/components/DotplotView.js +8 -8
  9. package/dist/DotplotView/components/ExportSvgDialog.js +8 -3
  10. package/dist/DotplotView/components/Grid.js +6 -5
  11. package/dist/DotplotView/components/Header.d.ts +1 -1
  12. package/dist/DotplotView/index.d.ts +1 -1
  13. package/dist/DotplotView/index.js +2 -2
  14. package/dist/DotplotView/model.d.ts +9 -39
  15. package/dist/DotplotView/svgcomponents/SVGDotplotView.js +1 -1
  16. package/dist/LaunchDotplotView.js +1 -1
  17. package/esm/DotplotDisplay/index.d.ts +1 -2
  18. package/esm/DotplotDisplay/index.js +2 -2
  19. package/esm/DotplotReadVsRef/DotplotReadVsRef.js +1 -1
  20. package/esm/DotplotRenderer/index.d.ts +1 -2
  21. package/esm/DotplotRenderer/index.js +2 -2
  22. package/esm/DotplotView/components/Axes.js +9 -9
  23. package/esm/DotplotView/components/DotplotTooltip.js +1 -0
  24. package/esm/DotplotView/components/DotplotView.js +8 -8
  25. package/esm/DotplotView/components/ExportSvgDialog.js +8 -3
  26. package/esm/DotplotView/components/Grid.js +6 -5
  27. package/esm/DotplotView/components/Header.d.ts +1 -1
  28. package/esm/DotplotView/index.d.ts +1 -1
  29. package/esm/DotplotView/index.js +1 -1
  30. package/esm/DotplotView/model.d.ts +9 -39
  31. package/esm/DotplotView/svgcomponents/SVGDotplotView.js +1 -1
  32. package/esm/LaunchDotplotView.js +1 -1
  33. package/package.json +3 -3
@@ -1,6 +1,5 @@
1
1
  import PluginManager from '@jbrowse/core/PluginManager';
2
- declare const _default: (pm: PluginManager) => void;
3
- export default _default;
2
+ export default function DotplotDisplayF(pm: PluginManager): void;
4
3
  /**
5
4
  * #config DotplotDisplay
6
5
  */
@@ -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
- exports.default = (pm) => {
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
  */
@@ -95,7 +95,7 @@ function onClick(feature, self) {
95
95
  }
96
96
  catch (e) {
97
97
  console.error(e);
98
- session.notify(`${e}`, 'error');
98
+ session.notifyError(`${e}`, e);
99
99
  }
100
100
  }
101
101
  exports.onClick = onClick;
@@ -1,3 +1,2 @@
1
1
  import PluginManager from '@jbrowse/core/PluginManager';
2
- declare const _default: (pluginManager: PluginManager) => void;
3
- export default _default;
2
+ export default function DotplotRendererF(pluginManager: PluginManager): void;
@@ -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
- exports.default = (pluginManager) => {
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, fill: theme.palette.text.primary, fontSize: 11, dominantBaseline: "hanging", textAnchor: "end" }, region.refName));
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, stroke: theme.palette.grey[400] })) : null),
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)}`, fill: theme.palette.text.primary, fontSize: 11, dominantBaseline: "middle", textAnchor: "end" }, (0, util_1.getTickDisplayStr)(tick.base + 1, bpPerPx))) : null),
74
- react_1.default.createElement("text", { y: borderY - 12, x: (viewWidth - borderX) / 2, fill: theme.palette.text.primary, textAnchor: "middle", fontSize: 11, dominantBaseline: "hanging" }, hview.assemblyNames.join(','))));
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, fill: theme.palette.text.primary, fontSize: 11, textAnchor: "end" }, region.refName));
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, stroke: theme.palette.grey[400] })) : null),
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", fill: theme.palette.text.primary, dominantBaseline: "hanging", fontSize: 11 }, (0, util_1.getTickDisplayStr)(tick.base + 1, bpPerPx))) : null),
120
- react_1.default.createElement("text", { y: (viewHeight - borderY) / 2, x: 12, fill: theme.palette.text.primary, transform: `rotate(-90,12,${(viewHeight - borderY) / 2})`, textAnchor: "middle", fontSize: 11 }, vview.assemblyNames.join(','))));
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
- if (mousedown && !mouseup) {
182
- function globalMouseUp(event) {
183
- if (Math.abs(xdistance) > 3 && Math.abs(ydistance) > 3 && validSelect) {
184
- setMouseUpClient([event.clientX, event.clientY]);
185
- }
186
- else {
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(material_1.TextField, { helperText: "filename", value: filename, onChange: event => setFilename(event.target.value) }),
50
- react_1.default.createElement("br", null),
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, fill: theme.palette.background.default }),
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, stroke: stroke })) : null;
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, stroke: stroke })) : null;
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, stroke: stroke }),
51
- react_1.default.createElement("line", { x1: 0, y1: viewHeight - vtop, x2: viewWidth, y2: viewHeight - vtop, stroke: stroke })),
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, }) {
@@ -5,6 +5,6 @@ declare const DotplotHeader: ({ model, selection, }: {
5
5
  selection?: {
6
6
  width: number;
7
7
  height: number;
8
- } | undefined;
8
+ };
9
9
  }) => React.JSX.Element;
10
10
  export default DotplotHeader;
@@ -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 default_1(pluginManager) {
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 = default_1;
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 }) => react_1.default.createElement(react_1.default.Fragment, null, children) } = opts;
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);
@@ -23,7 +23,7 @@ function LaunchDotplotView(pluginManager) {
23
23
  }
24
24
  }
25
25
  catch (e) {
26
- session.notify(`${e}`, 'error');
26
+ session.notifyError(`${e}`, e);
27
27
  throw e;
28
28
  }
29
29
  });
@@ -1,6 +1,5 @@
1
1
  import PluginManager from '@jbrowse/core/PluginManager';
2
- declare const _default: (pm: PluginManager) => void;
3
- export default _default;
2
+ export default function DotplotDisplayF(pm: PluginManager): void;
4
3
  /**
5
4
  * #config DotplotDisplay
6
5
  */
@@ -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
  */
@@ -92,6 +92,6 @@ export function onClick(feature, self) {
92
92
  }
93
93
  catch (e) {
94
94
  console.error(e);
95
- session.notify(`${e}`, 'error');
95
+ session.notifyError(`${e}`, e);
96
96
  }
97
97
  }
@@ -1,3 +1,2 @@
1
1
  import PluginManager from '@jbrowse/core/PluginManager';
2
- declare const _default: (pluginManager: PluginManager) => void;
3
- export default _default;
2
+ export default function DotplotRendererF(pluginManager: PluginManager): void;
@@ -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, fill: theme.palette.text.primary, fontSize: 11, dominantBaseline: "hanging", textAnchor: "end" }, region.refName));
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, stroke: theme.palette.grey[400] })) : null),
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)}`, fill: theme.palette.text.primary, fontSize: 11, dominantBaseline: "middle", textAnchor: "end" }, getTickDisplayStr(tick.base + 1, bpPerPx))) : null),
68
- React.createElement("text", { y: borderY - 12, x: (viewWidth - borderX) / 2, fill: theme.palette.text.primary, textAnchor: "middle", fontSize: 11, dominantBaseline: "hanging" }, hview.assemblyNames.join(','))));
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, fill: theme.palette.text.primary, fontSize: 11, textAnchor: "end" }, region.refName));
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, stroke: theme.palette.grey[400] })) : null),
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", fill: theme.palette.text.primary, dominantBaseline: "hanging", fontSize: 11 }, getTickDisplayStr(tick.base + 1, bpPerPx))) : null),
114
- React.createElement("text", { y: (viewHeight - borderY) / 2, x: 12, fill: theme.palette.text.primary, transform: `rotate(-90,12,${(viewHeight - borderY) / 2})`, textAnchor: "middle", fontSize: 11 }, vview.assemblyNames.join(','))));
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
- if (mousedown && !mouseup) {
154
- function globalMouseUp(event) {
155
- if (Math.abs(xdistance) > 3 && Math.abs(ydistance) > 3 && validSelect) {
156
- setMouseUpClient([event.clientX, event.clientY]);
157
- }
158
- else {
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(TextField, { helperText: "filename", value: filename, onChange: event => setFilename(event.target.value) }),
25
- React.createElement("br", null),
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, fill: theme.palette.background.default }),
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: stroke })) : null;
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: stroke })) : null;
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: stroke }),
45
- React.createElement("line", { x1: 0, y1: viewHeight - vtop, x2: viewWidth, y2: viewHeight - vtop, stroke: 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, }) {
@@ -5,6 +5,6 @@ declare const DotplotHeader: ({ model, selection, }: {
5
5
  selection?: {
6
6
  width: number;
7
7
  height: number;
8
- } | undefined;
8
+ };
9
9
  }) => React.JSX.Element;
10
10
  export default DotplotHeader;
@@ -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;
@@ -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 }) => React.createElement(React.Fragment, null, children) } = opts;
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);
@@ -21,7 +21,7 @@ export default function LaunchDotplotView(pluginManager) {
21
21
  }
22
22
  }
23
23
  catch (e) {
24
- session.notify(`${e}`, 'error');
24
+ session.notifyError(`${e}`, e);
25
25
  throw e;
26
26
  }
27
27
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-dotplot-view",
3
- "version": "2.10.3",
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": "^6.0.1",
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": "c8fc800cd17decd72b2e971c7a6add3b95214e72"
66
+ "gitHead": "11b28d66d782eb06f92ccb993108bb6c3c82819e"
67
67
  }