@jbrowse/plugin-circular-view 2.17.0 → 3.0.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.
Files changed (83) hide show
  1. package/dist/BaseChordDisplay/components/BaseChordDisplay.d.ts +1 -2
  2. package/dist/BaseChordDisplay/components/BaseChordDisplay.js +8 -7
  3. package/dist/BaseChordDisplay/components/DisplayError.d.ts +1 -2
  4. package/dist/BaseChordDisplay/components/DisplayError.js +2 -11
  5. package/dist/BaseChordDisplay/components/Loading.d.ts +1 -2
  6. package/dist/BaseChordDisplay/components/Loading.js +4 -34
  7. package/dist/BaseChordDisplay/{models/configSchema.d.ts → configSchema.d.ts} +0 -3
  8. package/dist/BaseChordDisplay/{models/configSchema.js → configSchema.js} +1 -10
  9. package/dist/BaseChordDisplay/index.d.ts +2 -2
  10. package/dist/BaseChordDisplay/index.js +2 -2
  11. package/{esm/BaseChordDisplay/models → dist/BaseChordDisplay}/model.d.ts +12 -54
  12. package/dist/BaseChordDisplay/{models/model.js → model.js} +31 -94
  13. package/dist/BaseChordDisplay/renderReaction.d.ts +27 -0
  14. package/dist/BaseChordDisplay/{models/renderReaction.js → renderReaction.js} +5 -13
  15. package/dist/CircularView/components/CircularView.d.ts +2 -3
  16. package/dist/CircularView/components/CircularView.js +22 -31
  17. package/dist/CircularView/components/Controls.d.ts +2 -3
  18. package/dist/CircularView/components/Controls.js +33 -70
  19. package/dist/CircularView/components/ExportSvgDialog.d.ts +2 -3
  20. package/dist/CircularView/components/ExportSvgDialog.js +32 -67
  21. package/dist/CircularView/components/ImportForm.d.ts +2 -3
  22. package/dist/CircularView/components/ImportForm.js +12 -42
  23. package/dist/CircularView/components/Ruler.d.ts +3 -4
  24. package/dist/CircularView/components/Ruler.js +18 -37
  25. package/dist/CircularView/index.d.ts +1 -1
  26. package/dist/CircularView/index.js +18 -8
  27. package/dist/CircularView/{models/model.d.ts → model.d.ts} +9 -158
  28. package/dist/CircularView/{models/model.js → model.js} +25 -224
  29. package/dist/CircularView/{models/slices.d.ts → slices.d.ts} +1 -1
  30. package/dist/CircularView/svgcomponents/SVGBackground.d.ts +1 -2
  31. package/dist/CircularView/svgcomponents/SVGBackground.js +3 -6
  32. package/dist/CircularView/svgcomponents/SVGCircularView.d.ts +1 -1
  33. package/dist/CircularView/svgcomponents/SVGCircularView.js +5 -17
  34. package/dist/CircularView/{models/viewportVisibleRegion.js → viewportVisibleRegion.js} +0 -70
  35. package/dist/LaunchCircularView/index.d.ts +1 -1
  36. package/dist/LaunchCircularView/index.js +1 -3
  37. package/dist/index.d.ts +3 -3
  38. package/dist/index.js +5 -7
  39. package/esm/BaseChordDisplay/components/BaseChordDisplay.d.ts +1 -2
  40. package/esm/BaseChordDisplay/components/BaseChordDisplay.js +8 -7
  41. package/esm/BaseChordDisplay/components/DisplayError.d.ts +1 -2
  42. package/esm/BaseChordDisplay/components/DisplayError.js +2 -8
  43. package/esm/BaseChordDisplay/components/Loading.d.ts +1 -2
  44. package/esm/BaseChordDisplay/components/Loading.js +4 -11
  45. package/esm/BaseChordDisplay/{models/configSchema.d.ts → configSchema.d.ts} +0 -3
  46. package/esm/BaseChordDisplay/{models/configSchema.js → configSchema.js} +1 -10
  47. package/esm/BaseChordDisplay/index.d.ts +2 -2
  48. package/esm/BaseChordDisplay/index.js +2 -2
  49. package/{dist/BaseChordDisplay/models → esm/BaseChordDisplay}/model.d.ts +12 -54
  50. package/esm/BaseChordDisplay/{models/model.js → model.js} +32 -92
  51. package/esm/BaseChordDisplay/renderReaction.d.ts +27 -0
  52. package/esm/BaseChordDisplay/{models/renderReaction.js → renderReaction.js} +5 -10
  53. package/esm/CircularView/components/CircularView.d.ts +2 -3
  54. package/esm/CircularView/components/CircularView.js +22 -31
  55. package/esm/CircularView/components/Controls.d.ts +2 -3
  56. package/esm/CircularView/components/Controls.js +33 -47
  57. package/esm/CircularView/components/ExportSvgDialog.d.ts +2 -3
  58. package/esm/CircularView/components/ExportSvgDialog.js +32 -44
  59. package/esm/CircularView/components/ImportForm.d.ts +2 -3
  60. package/esm/CircularView/components/ImportForm.js +12 -19
  61. package/esm/CircularView/components/Ruler.d.ts +3 -4
  62. package/esm/CircularView/components/Ruler.js +19 -35
  63. package/esm/CircularView/index.d.ts +1 -1
  64. package/esm/CircularView/index.js +1 -1
  65. package/esm/CircularView/{models/model.d.ts → model.d.ts} +9 -158
  66. package/esm/CircularView/{models/model.js → model.js} +9 -218
  67. package/esm/CircularView/{models/slices.d.ts → slices.d.ts} +1 -1
  68. package/esm/CircularView/{models/slices.js → slices.js} +1 -1
  69. package/esm/CircularView/svgcomponents/SVGBackground.d.ts +1 -2
  70. package/esm/CircularView/svgcomponents/SVGBackground.js +3 -3
  71. package/esm/CircularView/svgcomponents/SVGCircularView.d.ts +1 -1
  72. package/esm/CircularView/svgcomponents/SVGCircularView.js +5 -17
  73. package/esm/CircularView/{models/viewportVisibleRegion.js → viewportVisibleRegion.js} +0 -70
  74. package/esm/LaunchCircularView/index.d.ts +1 -1
  75. package/esm/LaunchCircularView/index.js +1 -3
  76. package/esm/index.d.ts +3 -3
  77. package/esm/index.js +3 -5
  78. package/package.json +2 -3
  79. package/dist/BaseChordDisplay/models/renderReaction.d.ts +0 -45
  80. package/esm/BaseChordDisplay/models/renderReaction.d.ts +0 -45
  81. /package/dist/CircularView/{models/slices.js → slices.js} +0 -0
  82. /package/dist/CircularView/{models/viewportVisibleRegion.d.ts → viewportVisibleRegion.d.ts} +0 -0
  83. /package/esm/CircularView/{models/viewportVisibleRegion.d.ts → viewportVisibleRegion.d.ts} +0 -0
@@ -3,15 +3,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const react_1 = __importDefault(require("react"));
7
- const mobx_react_1 = require("mobx-react");
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
7
  const ui_1 = require("@jbrowse/core/ui");
9
8
  const util_1 = require("@jbrowse/core/util");
9
+ const mobx_react_1 = require("mobx-react");
10
10
  const mui_1 = require("tss-react/mui");
11
- // locals
12
- const Ruler_1 = __importDefault(require("./Ruler"));
13
11
  const Controls_1 = __importDefault(require("./Controls"));
14
12
  const ImportForm_1 = __importDefault(require("./ImportForm"));
13
+ const Ruler_1 = __importDefault(require("./Ruler"));
15
14
  const dragHandleHeight = 3;
16
15
  const useStyles = (0, mui_1.makeStyles)()(theme => ({
17
16
  root: {
@@ -24,12 +23,10 @@ const useStyles = (0, mui_1.makeStyles)()(theme => ({
24
23
  },
25
24
  }));
26
25
  const Slices = (0, mobx_react_1.observer)(({ model }) => {
27
- return (react_1.default.createElement(react_1.default.Fragment, null,
28
- model.staticSlices.map(slice => (react_1.default.createElement(Ruler_1.default, { key: (0, util_1.assembleLocString)(slice.region.elided ? slice.region.regions[0] : slice.region), model: model, slice: slice }))),
29
- model.tracks.map(track => {
30
- const display = track.displays[0];
31
- return (react_1.default.createElement(display.RenderingComponent, { key: display.id, display: display, view: model }));
32
- })));
26
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [model.staticSlices.map(slice => ((0, jsx_runtime_1.jsx)(Ruler_1.default, { model: model, slice: slice }, (0, util_1.assembleLocString)(slice.region.elided ? slice.region.regions[0] : slice.region)))), model.tracks.map(track => {
27
+ const display = track.displays[0];
28
+ return ((0, jsx_runtime_1.jsx)(display.RenderingComponent, { display: display, view: model }, display.id));
29
+ })] }));
33
30
  });
34
31
  const CircularView = (0, mobx_react_1.observer)(({ model }) => {
35
32
  const initialized = !!model.displayedRegions.length &&
@@ -38,32 +35,26 @@ const CircularView = (0, mobx_react_1.observer)(({ model }) => {
38
35
  model.initialized;
39
36
  const showImportForm = !initialized && !model.disableImportForm;
40
37
  const showFigure = initialized && !showImportForm;
41
- return showImportForm || model.error ? (react_1.default.createElement(ImportForm_1.default, { model: model })) : showFigure ? (react_1.default.createElement(CircularViewLoaded, { model: model })) : null;
38
+ return showImportForm || model.error ? ((0, jsx_runtime_1.jsx)(ImportForm_1.default, { model: model })) : showFigure ? ((0, jsx_runtime_1.jsx)(CircularViewLoaded, { model: model })) : null;
42
39
  });
43
40
  const CircularViewLoaded = (0, mobx_react_1.observer)(function ({ model, }) {
44
41
  const { width, height, id, offsetRadians, centerXY, figureWidth, figureHeight, hideVerticalResizeHandle, } = model;
45
42
  const { classes } = useStyles();
46
- return (react_1.default.createElement("div", { className: classes.root, style: { width, height }, "data-testid": id },
47
- react_1.default.createElement("div", { className: classes.scroller, style: { width, height } },
48
- react_1.default.createElement("svg", { style: {
49
- transform: `rotate(${offsetRadians}rad)`,
50
- transition: 'transform 0.5s',
51
- transformOrigin: centerXY.map(x => `${x}px`).join(' '),
43
+ return ((0, jsx_runtime_1.jsxs)("div", { className: classes.root, style: { width, height }, "data-testid": id, children: [(0, jsx_runtime_1.jsx)("div", { className: classes.scroller, style: { width, height }, children: (0, jsx_runtime_1.jsx)("svg", { style: {
44
+ transform: `rotate(${offsetRadians}rad)`,
45
+ transition: 'transform 0.5s',
46
+ transformOrigin: centerXY.map(x => `${x}px`).join(' '),
47
+ position: 'absolute',
48
+ left: 0,
49
+ top: 0,
50
+ }, width: figureWidth, height: figureHeight, children: (0, jsx_runtime_1.jsx)("g", { transform: `translate(${centerXY})`, children: (0, jsx_runtime_1.jsx)(Slices, { model: model }) }) }) }), (0, jsx_runtime_1.jsx)(Controls_1.default, { model: model }), hideVerticalResizeHandle ? null : ((0, jsx_runtime_1.jsx)(ui_1.ResizeHandle, { onDrag: model.resizeHeight, style: {
51
+ height: dragHandleHeight,
52
52
  position: 'absolute',
53
+ bottom: 0,
53
54
  left: 0,
54
- top: 0,
55
- }, width: figureWidth, height: figureHeight },
56
- react_1.default.createElement("g", { transform: `translate(${centerXY})` },
57
- react_1.default.createElement(Slices, { model: model })))),
58
- react_1.default.createElement(Controls_1.default, { model: model }),
59
- hideVerticalResizeHandle ? null : (react_1.default.createElement(ui_1.ResizeHandle, { onDrag: model.resizeHeight, style: {
60
- height: dragHandleHeight,
61
- position: 'absolute',
62
- bottom: 0,
63
- left: 0,
64
- background: '#ccc',
65
- boxSizing: 'border-box',
66
- borderTop: '1px solid #fafafa',
67
- } }))));
55
+ background: '#ccc',
56
+ boxSizing: 'border-box',
57
+ borderTop: '1px solid #fafafa',
58
+ } }))] }));
68
59
  });
69
60
  exports.default = CircularView;
@@ -1,6 +1,5 @@
1
- import React from 'react';
2
- import { CircularViewModel } from '../models/model';
1
+ import type { CircularViewModel } from '../model';
3
2
  declare const Controls: ({ model }: {
4
3
  model: CircularViewModel;
5
- }) => React.JSX.Element;
4
+ }) => import("react/jsx-runtime").JSX.Element;
6
5
  export default Controls;
@@ -1,47 +1,24 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
4
  };
28
5
  Object.defineProperty(exports, "__esModule", { value: true });
29
- const react_1 = __importStar(require("react"));
30
- const mobx_react_1 = require("mobx-react");
31
- const material_1 = require("@mui/material");
32
- const mui_1 = require("tss-react/mui");
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const react_1 = require("react");
8
+ const Icons_1 = require("@jbrowse/core/ui/Icons");
33
9
  const Menu_1 = __importDefault(require("@jbrowse/core/ui/Menu"));
34
- // icons
35
- const ZoomOut_1 = __importDefault(require("@mui/icons-material/ZoomOut"));
36
- const ZoomIn_1 = __importDefault(require("@mui/icons-material/ZoomIn"));
37
- const RotateLeft_1 = __importDefault(require("@mui/icons-material/RotateLeft"));
38
- const RotateRight_1 = __importDefault(require("@mui/icons-material/RotateRight"));
39
- const LockOpen_1 = __importDefault(require("@mui/icons-material/LockOpen"));
10
+ const util_1 = require("@jbrowse/core/util");
40
11
  const Lock_1 = __importDefault(require("@mui/icons-material/Lock"));
41
- const PhotoCamera_1 = __importDefault(require("@mui/icons-material/PhotoCamera"));
12
+ const LockOpen_1 = __importDefault(require("@mui/icons-material/LockOpen"));
42
13
  const MoreVert_1 = __importDefault(require("@mui/icons-material/MoreVert"));
43
- const Icons_1 = require("@jbrowse/core/ui/Icons");
44
- const util_1 = require("@jbrowse/core/util");
14
+ const PhotoCamera_1 = __importDefault(require("@mui/icons-material/PhotoCamera"));
15
+ const RotateLeft_1 = __importDefault(require("@mui/icons-material/RotateLeft"));
16
+ const RotateRight_1 = __importDefault(require("@mui/icons-material/RotateRight"));
17
+ const ZoomIn_1 = __importDefault(require("@mui/icons-material/ZoomIn"));
18
+ const ZoomOut_1 = __importDefault(require("@mui/icons-material/ZoomOut"));
19
+ const material_1 = require("@mui/material");
20
+ const mobx_react_1 = require("mobx-react");
21
+ const mui_1 = require("tss-react/mui");
45
22
  const ExportSvgDialog_1 = __importDefault(require("./ExportSvgDialog"));
46
23
  const useStyles = (0, mui_1.makeStyles)()(theme => ({
47
24
  controls: {
@@ -55,40 +32,26 @@ const useStyles = (0, mui_1.makeStyles)()(theme => ({
55
32
  const Controls = (0, mobx_react_1.observer)(function ({ model }) {
56
33
  const { classes } = useStyles();
57
34
  const [anchorEl, setAnchorEl] = (0, react_1.useState)(null);
58
- return (react_1.default.createElement("div", { className: classes.controls },
59
- react_1.default.createElement(material_1.IconButton, { onClick: model.zoomOutButton, title: model.lockedFitToWindow ? 'unlock to zoom out' : 'zoom out', disabled: model.atMaxBpPerPx || model.lockedFitToWindow },
60
- react_1.default.createElement(ZoomOut_1.default, null)),
61
- react_1.default.createElement(material_1.IconButton, { onClick: model.zoomInButton, disabled: model.atMinBpPerPx, title: "zoom in" },
62
- react_1.default.createElement(ZoomIn_1.default, null)),
63
- react_1.default.createElement(material_1.IconButton, { onClick: model.rotateCounterClockwiseButton, title: "rotate counter-clockwise" },
64
- react_1.default.createElement(RotateLeft_1.default, null)),
65
- react_1.default.createElement(material_1.IconButton, { onClick: model.rotateClockwiseButton, title: "rotate clockwise" },
66
- react_1.default.createElement(RotateRight_1.default, null)),
67
- react_1.default.createElement(material_1.IconButton, { onClick: model.toggleFitToWindowLock, title: model.lockedFitToWindow
68
- ? 'locked model to window size'
69
- : 'unlocked model to zoom further', disabled: model.tooSmallToLock }, model.lockedFitToWindow ? react_1.default.createElement(Lock_1.default, null) : react_1.default.createElement(LockOpen_1.default, null)),
70
- react_1.default.createElement(material_1.IconButton, { onClick: event => {
71
- setAnchorEl(event.currentTarget);
72
- } },
73
- react_1.default.createElement(MoreVert_1.default, null)),
74
- model.hideTrackSelectorButton ? null : (react_1.default.createElement(material_1.IconButton, { onClick: model.activateTrackSelector, title: "Open track selector", "data-testid": "circular_track_select" },
75
- react_1.default.createElement(Icons_1.TrackSelector, null))),
76
- anchorEl ? (react_1.default.createElement(Menu_1.default, { anchorEl: anchorEl, menuItems: [
77
- {
78
- label: 'Export SVG',
79
- icon: PhotoCamera_1.default,
80
- onClick: () => {
81
- (0, util_1.getSession)(model).queueDialog(handleClose => [
82
- ExportSvgDialog_1.default,
83
- { model, handleClose },
84
- ]);
35
+ return ((0, jsx_runtime_1.jsxs)("div", { className: classes.controls, children: [(0, jsx_runtime_1.jsx)(material_1.IconButton, { onClick: model.zoomOutButton, title: model.lockedFitToWindow ? 'unlock to zoom out' : 'zoom out', disabled: model.atMaxBpPerPx || model.lockedFitToWindow, children: (0, jsx_runtime_1.jsx)(ZoomOut_1.default, {}) }), (0, jsx_runtime_1.jsx)(material_1.IconButton, { onClick: model.zoomInButton, disabled: model.atMinBpPerPx, title: "zoom in", children: (0, jsx_runtime_1.jsx)(ZoomIn_1.default, {}) }), (0, jsx_runtime_1.jsx)(material_1.IconButton, { onClick: model.rotateCounterClockwiseButton, title: "rotate counter-clockwise", children: (0, jsx_runtime_1.jsx)(RotateLeft_1.default, {}) }), (0, jsx_runtime_1.jsx)(material_1.IconButton, { onClick: model.rotateClockwiseButton, title: "rotate clockwise", children: (0, jsx_runtime_1.jsx)(RotateRight_1.default, {}) }), (0, jsx_runtime_1.jsx)(material_1.IconButton, { onClick: model.toggleFitToWindowLock, title: model.lockedFitToWindow
36
+ ? 'locked model to window size'
37
+ : 'unlocked model to zoom further', disabled: model.tooSmallToLock, children: model.lockedFitToWindow ? (0, jsx_runtime_1.jsx)(Lock_1.default, {}) : (0, jsx_runtime_1.jsx)(LockOpen_1.default, {}) }), (0, jsx_runtime_1.jsx)(material_1.IconButton, { onClick: event => {
38
+ setAnchorEl(event.currentTarget);
39
+ }, children: (0, jsx_runtime_1.jsx)(MoreVert_1.default, {}) }), model.hideTrackSelectorButton ? null : ((0, jsx_runtime_1.jsx)(material_1.IconButton, { onClick: model.activateTrackSelector, title: "Open track selector", "data-testid": "circular_track_select", children: (0, jsx_runtime_1.jsx)(Icons_1.TrackSelector, {}) })), anchorEl ? ((0, jsx_runtime_1.jsx)(Menu_1.default, { anchorEl: anchorEl, menuItems: [
40
+ {
41
+ label: 'Export SVG',
42
+ icon: PhotoCamera_1.default,
43
+ onClick: () => {
44
+ (0, util_1.getSession)(model).queueDialog(handleClose => [
45
+ ExportSvgDialog_1.default,
46
+ { model, handleClose },
47
+ ]);
48
+ },
85
49
  },
86
- },
87
- ], onMenuItemClick: (_event, callback) => {
88
- callback();
89
- setAnchorEl(null);
90
- }, open: Boolean(anchorEl), onClose: () => {
91
- setAnchorEl(null);
92
- } })) : null));
50
+ ], onMenuItemClick: (_event, callback) => {
51
+ callback();
52
+ setAnchorEl(null);
53
+ }, open: Boolean(anchorEl), onClose: () => {
54
+ setAnchorEl(null);
55
+ } })) : null] }));
93
56
  });
94
57
  exports.default = Controls;
@@ -1,8 +1,7 @@
1
- import React from 'react';
2
- import { ExportSvgOptions } from '../models/model';
1
+ import type { ExportSvgOptions } from '../model';
3
2
  export default function ExportSvgDialog({ model, handleClose, }: {
4
3
  model: {
5
4
  exportSvg(opts: ExportSvgOptions): Promise<void>;
6
5
  };
7
6
  handleClose: () => void;
8
- }): React.JSX.Element;
7
+ }): import("react/jsx-runtime").JSX.Element;
@@ -1,41 +1,16 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
3
  exports.default = ExportSvgDialog;
27
- const react_1 = __importStar(require("react"));
28
- const material_1 = require("@mui/material");
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
29
6
  const ui_1 = require("@jbrowse/core/ui");
30
7
  const util_1 = require("@jbrowse/core/util");
8
+ const material_1 = require("@mui/material");
31
9
  function LoadingMessage() {
32
- return (react_1.default.createElement("div", null,
33
- react_1.default.createElement(material_1.CircularProgress, { size: 20, style: { marginRight: 20 } }),
34
- react_1.default.createElement(material_1.Typography, { display: "inline" }, "Creating SVG")));
10
+ return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(material_1.CircularProgress, { size: 20, style: { marginRight: 20 } }), (0, jsx_runtime_1.jsx)(material_1.Typography, { display: "inline", children: "Creating SVG" })] }));
35
11
  }
36
12
  function TextField2({ children, ...rest }) {
37
- return (react_1.default.createElement("div", null,
38
- react_1.default.createElement(material_1.TextField, { ...rest }, children)));
13
+ return ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(material_1.TextField, { ...rest, children: children }) }));
39
14
  }
40
15
  function useSvgLocal(key, val) {
41
16
  return (0, util_1.useLocalStorage)(`svg-${key}`, val);
@@ -48,41 +23,31 @@ function ExportSvgDialog({ model, handleClose, }) {
48
23
  const [error, setError] = (0, react_1.useState)();
49
24
  const [filename, setFilename] = useSvgLocal('file', 'jbrowse.svg');
50
25
  const [themeName, setThemeName] = useSvgLocal('theme', session.themeName || 'default');
51
- return (react_1.default.createElement(ui_1.Dialog, { open: true, onClose: handleClose, title: "Export SVG" },
52
- react_1.default.createElement(material_1.DialogContent, null,
53
- error ? (react_1.default.createElement(ui_1.ErrorMessage, { error: error })) : loading ? (react_1.default.createElement(LoadingMessage, null)) : null,
54
- react_1.default.createElement(TextField2, { helperText: "filename", value: filename, onChange: event => {
55
- setFilename(event.target.value);
56
- } }),
57
- session.allThemes ? (react_1.default.createElement(TextField2, { select: true, label: "Theme", value: themeName, onChange: event => {
58
- setThemeName(event.target.value);
59
- } }, Object.entries(session.allThemes()).map(([key, val]) => (react_1.default.createElement(material_1.MenuItem, { key: key, value: key },
60
- // @ts-expect-error
61
- val.name || '(Unknown name)'))))) : null,
62
- offscreenCanvas ? (react_1.default.createElement(material_1.FormControlLabel, { control: react_1.default.createElement(material_1.Checkbox, { checked: rasterizeLayers, onChange: () => {
63
- setRasterizeLayers(val => !val);
64
- } }), 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"))),
65
- react_1.default.createElement(material_1.DialogActions, null,
66
- react_1.default.createElement(material_1.Button, { variant: "contained", color: "secondary", onClick: () => {
67
- handleClose();
68
- } }, "Cancel"),
69
- react_1.default.createElement(material_1.Button, { variant: "contained", color: "primary", type: "submit", onClick: async () => {
70
- setLoading(true);
71
- setError(undefined);
72
- try {
73
- await model.exportSvg({
74
- rasterizeLayers,
75
- filename,
76
- themeName,
77
- });
78
- handleClose();
79
- }
80
- catch (e) {
81
- console.error(e);
82
- setError(e);
83
- }
84
- finally {
85
- setLoading(false);
86
- }
87
- } }, "Submit"))));
26
+ return ((0, jsx_runtime_1.jsxs)(ui_1.Dialog, { open: true, onClose: handleClose, title: "Export SVG", children: [(0, jsx_runtime_1.jsxs)(material_1.DialogContent, { children: [error ? ((0, jsx_runtime_1.jsx)(ui_1.ErrorMessage, { error: error })) : loading ? ((0, jsx_runtime_1.jsx)(LoadingMessage, {})) : null, (0, jsx_runtime_1.jsx)(TextField2, { helperText: "filename", value: filename, onChange: event => {
27
+ setFilename(event.target.value);
28
+ } }), session.allThemes ? ((0, jsx_runtime_1.jsx)(TextField2, { select: true, label: "Theme", value: themeName, onChange: event => {
29
+ setThemeName(event.target.value);
30
+ }, children: Object.entries(session.allThemes()).map(([key, val]) => ((0, jsx_runtime_1.jsx)(material_1.MenuItem, { value: key, children: val.name || '(Unknown name)' }, key))) })) : null, offscreenCanvas ? ((0, jsx_runtime_1.jsx)(material_1.FormControlLabel, { control: (0, jsx_runtime_1.jsx)(material_1.Checkbox, { checked: rasterizeLayers, onChange: () => {
31
+ setRasterizeLayers(val => !val);
32
+ } }), label: "Rasterize canvas based tracks? File may be much larger if this is turned off" })) : ((0, jsx_runtime_1.jsx)(material_1.Typography, { children: "Note: rasterizing layers not yet supported in this browser, so SVG size may be large" }))] }), (0, jsx_runtime_1.jsxs)(material_1.DialogActions, { children: [(0, jsx_runtime_1.jsx)(material_1.Button, { variant: "contained", color: "secondary", onClick: () => {
33
+ handleClose();
34
+ }, children: "Cancel" }), (0, jsx_runtime_1.jsx)(material_1.Button, { variant: "contained", color: "primary", type: "submit", onClick: async () => {
35
+ setLoading(true);
36
+ setError(undefined);
37
+ try {
38
+ await model.exportSvg({
39
+ rasterizeLayers,
40
+ filename,
41
+ themeName,
42
+ });
43
+ handleClose();
44
+ }
45
+ catch (e) {
46
+ console.error(e);
47
+ setError(e);
48
+ }
49
+ finally {
50
+ setLoading(false);
51
+ }
52
+ }, children: "Submit" })] })] }));
88
53
  }
@@ -1,6 +1,5 @@
1
- import React from 'react';
2
- import { CircularViewModel } from '../models/model';
1
+ import type { CircularViewModel } from '../model';
3
2
  declare const ImportForm: ({ model }: {
4
3
  model: CircularViewModel;
5
- }) => React.JSX.Element;
4
+ }) => import("react/jsx-runtime").JSX.Element;
6
5
  export default ImportForm;
@@ -1,34 +1,12 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
- const react_1 = __importStar(require("react"));
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ const react_1 = require("react");
5
+ const ui_1 = require("@jbrowse/core/ui");
6
+ const util_1 = require("@jbrowse/core/util");
27
7
  const material_1 = require("@mui/material");
28
- const mui_1 = require("tss-react/mui");
29
8
  const mobx_react_1 = require("mobx-react");
30
- const util_1 = require("@jbrowse/core/util");
31
- const ui_1 = require("@jbrowse/core/ui");
9
+ const mui_1 = require("tss-react/mui");
32
10
  const useStyles = (0, mui_1.makeStyles)()(theme => ({
33
11
  importFormContainer: {
34
12
  padding: theme.spacing(6),
@@ -46,20 +24,12 @@ const ImportForm = (0, mobx_react_1.observer)(function ({ model }) {
46
24
  : 'No configured assemblies';
47
25
  const regions = (assembly === null || assembly === void 0 ? void 0 : assembly.regions) || [];
48
26
  const err = assemblyError || error;
49
- return (react_1.default.createElement(material_1.Container, { className: classes.importFormContainer },
50
- err ? (react_1.default.createElement(material_1.Grid, { container: true, spacing: 1, justifyContent: "center", alignItems: "center" },
51
- react_1.default.createElement(material_1.Grid, { item: true },
52
- react_1.default.createElement(ui_1.ErrorMessage, { error: err })))) : null,
53
- react_1.default.createElement(material_1.Grid, { container: true, spacing: 1, justifyContent: "center", alignItems: "center" },
54
- react_1.default.createElement(material_1.Grid, { item: true },
55
- react_1.default.createElement(ui_1.AssemblySelector, { onChange: val => {
56
- model.setError(undefined);
57
- setSelectedAsm(val);
58
- }, session: session, selected: selectedAsm })),
59
- react_1.default.createElement(material_1.Grid, { item: true },
60
- react_1.default.createElement(material_1.Button, { disabled: !regions.length, onClick: () => {
61
- model.setError(undefined);
62
- model.setDisplayedRegions(regions);
63
- }, variant: "contained", color: "primary" }, regions.length || err ? 'Open' : 'Loading...')))));
27
+ return ((0, jsx_runtime_1.jsxs)(material_1.Container, { className: classes.importFormContainer, children: [err ? ((0, jsx_runtime_1.jsx)(material_1.Grid, { container: true, spacing: 1, justifyContent: "center", alignItems: "center", children: (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, children: (0, jsx_runtime_1.jsx)(ui_1.ErrorMessage, { error: err }) }) })) : null, (0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, spacing: 1, justifyContent: "center", alignItems: "center", children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, children: (0, jsx_runtime_1.jsx)(ui_1.AssemblySelector, { onChange: val => {
28
+ model.setError(undefined);
29
+ setSelectedAsm(val);
30
+ }, session: session, selected: selectedAsm }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, children: (0, jsx_runtime_1.jsx)(material_1.Button, { disabled: !regions.length, onClick: () => {
31
+ model.setError(undefined);
32
+ model.setDisplayedRegions(regions);
33
+ }, variant: "contained", color: "primary", children: regions.length || err ? 'Open' : 'Loading...' }) })] })] }));
64
34
  });
65
35
  exports.default = ImportForm;
@@ -1,8 +1,7 @@
1
- import React from 'react';
2
- import { Slice } from '../models/slices';
3
- import { CircularViewModel } from '../models/model';
1
+ import type { CircularViewModel } from '../model';
2
+ import type { Slice } from '../slices';
4
3
  declare const Ruler: ({ model, slice, }: {
5
4
  model: CircularViewModel;
6
5
  slice: Slice;
7
- }) => React.JSX.Element;
6
+ }) => import("react/jsx-runtime").JSX.Element;
8
7
  export default Ruler;
@@ -1,13 +1,10 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const react_1 = __importDefault(require("react"));
7
- const mobx_react_1 = require("mobx-react");
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
4
  const util_1 = require("@jbrowse/core/util");
9
5
  const color_1 = require("@jbrowse/core/util/color");
10
6
  const styles_1 = require("@mui/material/styles");
7
+ const mobx_react_1 = require("mobx-react");
11
8
  const mui_1 = require("tss-react/mui");
12
9
  const useStyles = (0, mui_1.makeStyles)()({
13
10
  rulerLabel: {
@@ -18,7 +15,6 @@ const useStyles = (0, mui_1.makeStyles)()({
18
15
  },
19
16
  });
20
17
  function sliceArcPath(slice, radiusPx, startBase, endBase) {
21
- // A rx ry x-axis-rotation large-arc-flag sweep-flag x y
22
18
  if (slice.flipped) {
23
19
  ;
24
20
  [startBase, endBase] = [endBase, startBase];
@@ -48,22 +44,19 @@ const ElisionRulerArc = (0, mobx_react_1.observer)(function ({ model, slice, reg
48
44
  const endXY = (0, util_1.polarToCartesian)(radiusPx, endRadians);
49
45
  const widthPx = (endRadians - startRadians) * radiusPx;
50
46
  const largeArc = endRadians - startRadians > Math.PI ? '1' : '0';
51
- // TODO: draw the elision
52
47
  const centerRadians = (endRadians + startRadians) / 2;
53
48
  const regionCount = `[${Number(region.regions.length).toLocaleString()}]`;
54
- return (react_1.default.createElement(react_1.default.Fragment, null,
55
- react_1.default.createElement(RulerLabel, { text: regionCount, view: model, maxWidthPx: widthPx, radians: centerRadians, radiusPx: radiusPx, title: `${regionCount} more regions`, color: theme.palette.text.primary }),
56
- react_1.default.createElement("path", { d: [
57
- 'M',
58
- ...startXY,
59
- 'A',
60
- radiusPx,
61
- radiusPx,
62
- '0',
63
- largeArc,
64
- '1',
65
- ...endXY,
66
- ].join(' '), ...(0, util_1.getStrokeProps)(theme.palette.text.secondary), strokeWidth: 2, strokeDasharray: "2,2", fill: "none" })));
49
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(RulerLabel, { text: regionCount, view: model, maxWidthPx: widthPx, radians: centerRadians, radiusPx: radiusPx, title: `${regionCount} more regions`, color: theme.palette.text.primary }), (0, jsx_runtime_1.jsx)("path", { d: [
50
+ 'M',
51
+ ...startXY,
52
+ 'A',
53
+ radiusPx,
54
+ radiusPx,
55
+ '0',
56
+ largeArc,
57
+ '1',
58
+ ...endXY,
59
+ ].join(' '), ...(0, util_1.getStrokeProps)(theme.palette.text.secondary), strokeWidth: 2, strokeDasharray: "2,2", fill: "none" })] }));
67
60
  });
68
61
  const RulerLabel = (0, mobx_react_1.observer)(function ({ view, text, maxWidthPx, radians, radiusPx, title, color, }) {
69
62
  const { classes } = useStyles();
@@ -72,24 +65,15 @@ const RulerLabel = (0, mobx_react_1.observer)(function ({ view, text, maxWidthPx
72
65
  return null;
73
66
  }
74
67
  if (text.length * 6.5 < maxWidthPx) {
75
- // text is rotated parallel to the ruler arc
76
- return (react_1.default.createElement("text", { x: 0, y: 0, className: classes.rulerLabel, textAnchor: "middle", dominantBaseline: "baseline", transform: `translate(${textXY}) rotate(${(0, util_1.radToDeg)(radians) + 90})`, ...(0, util_1.getFillProps)(color) },
77
- text,
78
- react_1.default.createElement("title", null, title || text)));
68
+ return ((0, jsx_runtime_1.jsxs)("text", { x: 0, y: 0, className: classes.rulerLabel, textAnchor: "middle", dominantBaseline: "baseline", transform: `translate(${textXY}) rotate(${(0, util_1.radToDeg)(radians) + 90})`, ...(0, util_1.getFillProps)(color), children: [text, (0, jsx_runtime_1.jsx)("title", { children: title || text })] }));
79
69
  }
80
70
  if (maxWidthPx > 4) {
81
- // text is rotated perpendicular to the ruler arc
82
71
  const overallRotation = (0, util_1.radToDeg)(radians + view.offsetRadians - Math.PI / 2);
83
72
  if (overallRotation >= 180) {
84
- return (react_1.default.createElement("text", { x: 0, y: 0, className: classes.rulerLabel, textAnchor: "start", dominantBaseline: "middle", transform: `translate(${textXY}) rotate(${(0, util_1.radToDeg)(radians)})`, fill: color },
85
- text,
86
- react_1.default.createElement("title", null, title || text)));
73
+ return ((0, jsx_runtime_1.jsxs)("text", { x: 0, y: 0, className: classes.rulerLabel, textAnchor: "start", dominantBaseline: "middle", transform: `translate(${textXY}) rotate(${(0, util_1.radToDeg)(radians)})`, fill: color, children: [text, (0, jsx_runtime_1.jsx)("title", { children: title || text })] }));
87
74
  }
88
- return (react_1.default.createElement("text", { x: 0, y: 0, className: classes.rulerLabel, textAnchor: "end", dominantBaseline: "middle", transform: `translate(${textXY}) rotate(${(0, util_1.radToDeg)(radians) + 180})`, fill: color },
89
- text,
90
- react_1.default.createElement("title", null, title || text)));
75
+ return ((0, jsx_runtime_1.jsxs)("text", { x: 0, y: 0, className: classes.rulerLabel, textAnchor: "end", dominantBaseline: "middle", transform: `translate(${textXY}) rotate(${(0, util_1.radToDeg)(radians) + 180})`, fill: color, children: [text, (0, jsx_runtime_1.jsx)("title", { children: title || text })] }));
91
76
  }
92
- // if you get here there is no room for the text at all
93
77
  return null;
94
78
  });
95
79
  const RegionRulerArc = (0, mobx_react_1.observer)(function ({ model, slice, region, }) {
@@ -112,12 +96,9 @@ const RegionRulerArc = (0, mobx_react_1.observer)(function ({ model, slice, regi
112
96
  else {
113
97
  color = theme.palette.text.primary;
114
98
  }
115
- // TODO: slice flipping
116
- return (react_1.default.createElement(react_1.default.Fragment, null,
117
- react_1.default.createElement(RulerLabel, { text: region.refName, view: model, maxWidthPx: widthPx, radians: centerRadians, radiusPx: radiusPx, color: color }),
118
- react_1.default.createElement("path", { d: sliceArcPath(slice, radiusPx + 1, region.start, region.end), stroke: color, strokeWidth: 2, fill: "none" })));
99
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(RulerLabel, { text: region.refName, view: model, maxWidthPx: widthPx, radians: centerRadians, radiusPx: radiusPx, color: color }), (0, jsx_runtime_1.jsx)("path", { d: sliceArcPath(slice, radiusPx + 1, region.start, region.end), stroke: color, strokeWidth: 2, fill: "none" })] }));
119
100
  });
120
101
  const Ruler = (0, mobx_react_1.observer)(function ({ model, slice, }) {
121
- return slice.region.elided ? (react_1.default.createElement(ElisionRulerArc, { key: (0, util_1.assembleLocString)(slice.region.regions[0]), model: model, region: slice.region, slice: slice })) : (react_1.default.createElement(RegionRulerArc, { key: (0, util_1.assembleLocString)(slice.region), region: slice.region, model: model, slice: slice }));
102
+ return slice.region.elided ? ((0, jsx_runtime_1.jsx)(ElisionRulerArc, { model: model, region: slice.region, slice: slice }, (0, util_1.assembleLocString)(slice.region.regions[0]))) : ((0, jsx_runtime_1.jsx)(RegionRulerArc, { region: slice.region, model: model, slice: slice }, (0, util_1.assembleLocString)(slice.region)));
122
103
  });
123
104
  exports.default = Ruler;
@@ -1,2 +1,2 @@
1
- import PluginManager from '@jbrowse/core/PluginManager';
1
+ import type PluginManager from '@jbrowse/core/PluginManager';
2
2
  export default function CircularViewF(pluginManager: PluginManager): void;
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
37
  };
@@ -29,7 +39,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
39
  exports.default = CircularViewF;
30
40
  const react_1 = require("react");
31
41
  const ViewType_1 = __importDefault(require("@jbrowse/core/pluggableElementTypes/ViewType"));
32
- const model_1 = __importDefault(require("./models/model"));
42
+ const model_1 = __importDefault(require("./model"));
33
43
  function CircularViewF(pluginManager) {
34
44
  pluginManager.addViewType(() => new ViewType_1.default({
35
45
  ReactComponent: (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./components/CircularView')))),