@jbrowse/plugin-dotplot-view 2.10.3 → 2.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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;
@@ -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"))));
@@ -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;
@@ -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
  });
@@ -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
  }
@@ -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"))));
@@ -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;
@@ -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.0",
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": "3d43a820b9274a6160aa4dc15616147f390d9094"
67
67
  }