@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.
- package/dist/BaseChordDisplay/components/BaseChordDisplay.d.ts +1 -2
- package/dist/BaseChordDisplay/components/BaseChordDisplay.js +8 -7
- package/dist/BaseChordDisplay/components/DisplayError.d.ts +1 -2
- package/dist/BaseChordDisplay/components/DisplayError.js +2 -11
- package/dist/BaseChordDisplay/components/Loading.d.ts +1 -2
- package/dist/BaseChordDisplay/components/Loading.js +4 -34
- package/dist/BaseChordDisplay/{models/configSchema.d.ts → configSchema.d.ts} +0 -3
- package/dist/BaseChordDisplay/{models/configSchema.js → configSchema.js} +1 -10
- package/dist/BaseChordDisplay/index.d.ts +2 -2
- package/dist/BaseChordDisplay/index.js +2 -2
- package/{esm/BaseChordDisplay/models → dist/BaseChordDisplay}/model.d.ts +12 -54
- package/dist/BaseChordDisplay/{models/model.js → model.js} +31 -94
- package/dist/BaseChordDisplay/renderReaction.d.ts +27 -0
- package/dist/BaseChordDisplay/{models/renderReaction.js → renderReaction.js} +5 -13
- package/dist/CircularView/components/CircularView.d.ts +2 -3
- package/dist/CircularView/components/CircularView.js +22 -31
- package/dist/CircularView/components/Controls.d.ts +2 -3
- package/dist/CircularView/components/Controls.js +33 -70
- package/dist/CircularView/components/ExportSvgDialog.d.ts +2 -3
- package/dist/CircularView/components/ExportSvgDialog.js +32 -67
- package/dist/CircularView/components/ImportForm.d.ts +2 -3
- package/dist/CircularView/components/ImportForm.js +12 -42
- package/dist/CircularView/components/Ruler.d.ts +3 -4
- package/dist/CircularView/components/Ruler.js +18 -37
- package/dist/CircularView/index.d.ts +1 -1
- package/dist/CircularView/index.js +18 -8
- package/dist/CircularView/{models/model.d.ts → model.d.ts} +9 -158
- package/dist/CircularView/{models/model.js → model.js} +25 -224
- package/dist/CircularView/{models/slices.d.ts → slices.d.ts} +1 -1
- package/dist/CircularView/svgcomponents/SVGBackground.d.ts +1 -2
- package/dist/CircularView/svgcomponents/SVGBackground.js +3 -6
- package/dist/CircularView/svgcomponents/SVGCircularView.d.ts +1 -1
- package/dist/CircularView/svgcomponents/SVGCircularView.js +5 -17
- package/dist/CircularView/{models/viewportVisibleRegion.js → viewportVisibleRegion.js} +0 -70
- package/dist/LaunchCircularView/index.d.ts +1 -1
- package/dist/LaunchCircularView/index.js +1 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +5 -7
- package/esm/BaseChordDisplay/components/BaseChordDisplay.d.ts +1 -2
- package/esm/BaseChordDisplay/components/BaseChordDisplay.js +8 -7
- package/esm/BaseChordDisplay/components/DisplayError.d.ts +1 -2
- package/esm/BaseChordDisplay/components/DisplayError.js +2 -8
- package/esm/BaseChordDisplay/components/Loading.d.ts +1 -2
- package/esm/BaseChordDisplay/components/Loading.js +4 -11
- package/esm/BaseChordDisplay/{models/configSchema.d.ts → configSchema.d.ts} +0 -3
- package/esm/BaseChordDisplay/{models/configSchema.js → configSchema.js} +1 -10
- package/esm/BaseChordDisplay/index.d.ts +2 -2
- package/esm/BaseChordDisplay/index.js +2 -2
- package/{dist/BaseChordDisplay/models → esm/BaseChordDisplay}/model.d.ts +12 -54
- package/esm/BaseChordDisplay/{models/model.js → model.js} +32 -92
- package/esm/BaseChordDisplay/renderReaction.d.ts +27 -0
- package/esm/BaseChordDisplay/{models/renderReaction.js → renderReaction.js} +5 -10
- package/esm/CircularView/components/CircularView.d.ts +2 -3
- package/esm/CircularView/components/CircularView.js +22 -31
- package/esm/CircularView/components/Controls.d.ts +2 -3
- package/esm/CircularView/components/Controls.js +33 -47
- package/esm/CircularView/components/ExportSvgDialog.d.ts +2 -3
- package/esm/CircularView/components/ExportSvgDialog.js +32 -44
- package/esm/CircularView/components/ImportForm.d.ts +2 -3
- package/esm/CircularView/components/ImportForm.js +12 -19
- package/esm/CircularView/components/Ruler.d.ts +3 -4
- package/esm/CircularView/components/Ruler.js +19 -35
- package/esm/CircularView/index.d.ts +1 -1
- package/esm/CircularView/index.js +1 -1
- package/esm/CircularView/{models/model.d.ts → model.d.ts} +9 -158
- package/esm/CircularView/{models/model.js → model.js} +9 -218
- package/esm/CircularView/{models/slices.d.ts → slices.d.ts} +1 -1
- package/esm/CircularView/{models/slices.js → slices.js} +1 -1
- package/esm/CircularView/svgcomponents/SVGBackground.d.ts +1 -2
- package/esm/CircularView/svgcomponents/SVGBackground.js +3 -3
- package/esm/CircularView/svgcomponents/SVGCircularView.d.ts +1 -1
- package/esm/CircularView/svgcomponents/SVGCircularView.js +5 -17
- package/esm/CircularView/{models/viewportVisibleRegion.js → viewportVisibleRegion.js} +0 -70
- package/esm/LaunchCircularView/index.d.ts +1 -1
- package/esm/LaunchCircularView/index.js +1 -3
- package/esm/index.d.ts +3 -3
- package/esm/index.js +3 -5
- package/package.json +2 -3
- package/dist/BaseChordDisplay/models/renderReaction.d.ts +0 -45
- package/esm/BaseChordDisplay/models/renderReaction.d.ts +0 -45
- /package/dist/CircularView/{models/slices.js → slices.js} +0 -0
- /package/dist/CircularView/{models/viewportVisibleRegion.d.ts → viewportVisibleRegion.d.ts} +0 -0
- /package/esm/CircularView/{models/viewportVisibleRegion.d.ts → viewportVisibleRegion.d.ts} +0 -0
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
declare const BaseChordDisplay: ({ display, }: {
|
|
3
2
|
display: {
|
|
4
3
|
filled: boolean;
|
|
@@ -8,5 +7,5 @@ declare const BaseChordDisplay: ({ display, }: {
|
|
|
8
7
|
radius: number;
|
|
9
8
|
};
|
|
10
9
|
};
|
|
11
|
-
}) =>
|
|
10
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
12
11
|
export default BaseChordDisplay;
|
|
@@ -3,18 +3,19 @@ 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
|
|
6
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
7
|
const mobx_react_1 = require("mobx-react");
|
|
8
|
-
// locals
|
|
9
|
-
const Loading_1 = __importDefault(require("./Loading"));
|
|
10
8
|
const DisplayError_1 = __importDefault(require("./DisplayError"));
|
|
9
|
+
const Loading_1 = __importDefault(require("./Loading"));
|
|
11
10
|
const BaseChordDisplay = (0, mobx_react_1.observer)(function ({ display, }) {
|
|
12
11
|
if (display.error) {
|
|
13
|
-
return
|
|
12
|
+
return (0, jsx_runtime_1.jsx)(DisplayError_1.default, { model: display });
|
|
13
|
+
}
|
|
14
|
+
else if (!display.filled) {
|
|
15
|
+
return (0, jsx_runtime_1.jsx)(Loading_1.default, { model: display });
|
|
14
16
|
}
|
|
15
|
-
|
|
16
|
-
return
|
|
17
|
+
else {
|
|
18
|
+
return display.reactElement;
|
|
17
19
|
}
|
|
18
|
-
return display.reactElement;
|
|
19
20
|
});
|
|
20
21
|
exports.default = BaseChordDisplay;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
declare const DisplayError: ({ model, }: {
|
|
3
2
|
model: {
|
|
4
3
|
renderProps: {
|
|
@@ -6,5 +5,5 @@ declare const DisplayError: ({ model, }: {
|
|
|
6
5
|
};
|
|
7
6
|
error: unknown;
|
|
8
7
|
};
|
|
9
|
-
}) =>
|
|
8
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
10
9
|
export default DisplayError;
|
|
@@ -1,18 +1,9 @@
|
|
|
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
|
|
3
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
4
|
const mobx_react_1 = require("mobx-react");
|
|
8
5
|
const DisplayError = (0, mobx_react_1.observer)(function ({ model, }) {
|
|
9
6
|
const { renderProps: { radius }, error, } = model;
|
|
10
|
-
return (
|
|
11
|
-
react_1.default.createElement("defs", null,
|
|
12
|
-
react_1.default.createElement("pattern", { id: "diagonalHatch", width: "10", height: "10", patternTransform: "rotate(45 0 0)", patternUnits: "userSpaceOnUse" },
|
|
13
|
-
react_1.default.createElement("line", { x1: "0", y1: "0", x2: "0", y2: "10", style: { stroke: 'rgba(255,0,0,0.5)', strokeWidth: 10 } }))),
|
|
14
|
-
react_1.default.createElement("circle", { cx: "0", cy: "0", r: radius, fill: "#ffb4b4" }),
|
|
15
|
-
react_1.default.createElement("circle", { cx: "0", cy: "0", r: radius, fill: "url(#diagonalHatch)" }),
|
|
16
|
-
react_1.default.createElement("text", { x: "0", y: "0", transform: "rotate(90 0 0)", dominantBaseline: "middle", textAnchor: "middle" }, String(error))));
|
|
7
|
+
return ((0, jsx_runtime_1.jsxs)("g", { children: [(0, jsx_runtime_1.jsx)("defs", { children: (0, jsx_runtime_1.jsx)("pattern", { id: "diagonalHatch", width: "10", height: "10", patternTransform: "rotate(45 0 0)", patternUnits: "userSpaceOnUse", children: (0, jsx_runtime_1.jsx)("line", { x1: "0", y1: "0", x2: "0", y2: "10", style: { stroke: 'rgba(255,0,0,0.5)', strokeWidth: 10 } }) }) }), (0, jsx_runtime_1.jsx)("circle", { cx: "0", cy: "0", r: radius, fill: "#ffb4b4" }), (0, jsx_runtime_1.jsx)("circle", { cx: "0", cy: "0", r: radius, fill: "url(#diagonalHatch)" }), (0, jsx_runtime_1.jsx)("text", { x: "0", y: "0", transform: "rotate(90 0 0)", dominantBaseline: "middle", textAnchor: "middle", children: String(error) })] }));
|
|
17
8
|
});
|
|
18
9
|
exports.default = DisplayError;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
declare const Loading: ({ model: { renderProps: { radius }, }, }: {
|
|
3
2
|
model: {
|
|
4
3
|
renderProps: {
|
|
5
4
|
radius: number;
|
|
6
5
|
};
|
|
7
6
|
};
|
|
8
|
-
}) =>
|
|
7
|
+
}) => import("react/jsx-runtime").JSX.Element | null;
|
|
9
8
|
export default Loading;
|
|
@@ -1,31 +1,9 @@
|
|
|
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
|
|
27
|
-
const
|
|
3
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
|
+
const react_1 = require("react");
|
|
28
5
|
const mobx_react_1 = require("mobx-react");
|
|
6
|
+
const mui_1 = require("tss-react/mui");
|
|
29
7
|
const useStyles = (0, mui_1.makeStyles)()(theme => {
|
|
30
8
|
const offset = 2;
|
|
31
9
|
const duration = 1.4;
|
|
@@ -70,7 +48,6 @@ const useStyles = (0, mui_1.makeStyles)()(theme => {
|
|
|
70
48
|
});
|
|
71
49
|
const Loading = (0, mobx_react_1.observer)(function ({ model: { renderProps: { radius }, }, }) {
|
|
72
50
|
const { classes } = useStyles();
|
|
73
|
-
// only show the loading message after 400ms to prevent excessive flickering
|
|
74
51
|
const [shown, setShown] = (0, react_1.useState)(false);
|
|
75
52
|
(0, react_1.useEffect)(() => {
|
|
76
53
|
const timeout = setTimeout(() => {
|
|
@@ -80,13 +57,6 @@ const Loading = (0, mobx_react_1.observer)(function ({ model: { renderProps: { r
|
|
|
80
57
|
clearTimeout(timeout);
|
|
81
58
|
};
|
|
82
59
|
});
|
|
83
|
-
return !shown ? null : (
|
|
84
|
-
react_1.default.createElement("defs", null,
|
|
85
|
-
react_1.default.createElement("pattern", { id: "diagonalHatch", width: "10", height: "10", patternTransform: "rotate(45 0 0)", patternUnits: "userSpaceOnUse" },
|
|
86
|
-
react_1.default.createElement("line", { x1: "0", y1: "0", x2: "0", y2: "10", style: { stroke: 'rgba(255,255,255,0.5)', strokeWidth: 10 } }))),
|
|
87
|
-
react_1.default.createElement("circle", { cx: "0", cy: "0", r: radius, fill: "#f1f1f1" }),
|
|
88
|
-
react_1.default.createElement("circle", { cx: "0", cy: "0", r: radius, fill: "url(#diagonalHatch)" }),
|
|
89
|
-
react_1.default.createElement("text", { x: "0", y: "0", transform: "rotate(90 0 0)", dominantBaseline: "middle", textAnchor: "middle" }, "Loading\u2026"),
|
|
90
|
-
react_1.default.createElement("circle", { className: classes.path, fill: "none", strokeWidth: "4", strokeLinecap: "round", cx: "0", cy: "0", r: "60" })));
|
|
60
|
+
return !shown ? null : ((0, jsx_runtime_1.jsxs)("g", { children: [(0, jsx_runtime_1.jsx)("defs", { children: (0, jsx_runtime_1.jsx)("pattern", { id: "diagonalHatch", width: "10", height: "10", patternTransform: "rotate(45 0 0)", patternUnits: "userSpaceOnUse", children: (0, jsx_runtime_1.jsx)("line", { x1: "0", y1: "0", x2: "0", y2: "10", style: { stroke: 'rgba(255,255,255,0.5)', strokeWidth: 10 } }) }) }), (0, jsx_runtime_1.jsx)("circle", { cx: "0", cy: "0", r: radius, fill: "#f1f1f1" }), (0, jsx_runtime_1.jsx)("circle", { cx: "0", cy: "0", r: radius, fill: "url(#diagonalHatch)" }), (0, jsx_runtime_1.jsx)("text", { x: "0", y: "0", transform: "rotate(90 0 0)", dominantBaseline: "middle", textAnchor: "middle", children: "Loading\u2026" }), (0, jsx_runtime_1.jsx)("circle", { className: classes.path, fill: "none", strokeWidth: "4", strokeLinecap: "round", cx: "0", cy: "0", r: "60" })] }));
|
|
91
61
|
});
|
|
92
62
|
exports.default = Loading;
|
|
@@ -2,14 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.baseChordDisplayConfig = void 0;
|
|
4
4
|
const configuration_1 = require("@jbrowse/core/configuration");
|
|
5
|
-
|
|
6
|
-
* #config BaseChordDisplay
|
|
7
|
-
*/
|
|
8
|
-
function x() { } // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
5
|
+
function x() { }
|
|
9
6
|
const baseChordDisplayConfig = (0, configuration_1.ConfigurationSchema)('BaseChordDisplay', {
|
|
10
|
-
/**
|
|
11
|
-
* #slot
|
|
12
|
-
*/
|
|
13
7
|
onChordClick: {
|
|
14
8
|
type: 'boolean',
|
|
15
9
|
description: 'callback that should be run when a chord in the track is clicked',
|
|
@@ -17,9 +11,6 @@ const baseChordDisplayConfig = (0, configuration_1.ConfigurationSchema)('BaseCho
|
|
|
17
11
|
contextVariable: ['feature', 'track', 'pluginManager'],
|
|
18
12
|
},
|
|
19
13
|
}, {
|
|
20
|
-
/**
|
|
21
|
-
* #identifier
|
|
22
|
-
*/
|
|
23
14
|
explicitIdentifier: 'displayId',
|
|
24
15
|
});
|
|
25
16
|
exports.baseChordDisplayConfig = baseChordDisplayConfig;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { default as BaseChordDisplayComponent } from './components/BaseChordDisplay';
|
|
2
|
-
export { BaseChordDisplayModel } from './
|
|
3
|
-
export { baseChordDisplayConfig } from './
|
|
2
|
+
export { BaseChordDisplayModel } from './model';
|
|
3
|
+
export { baseChordDisplayConfig } from './configSchema';
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.baseChordDisplayConfig = exports.BaseChordDisplayModel = exports.BaseChordDisplayComponent = void 0;
|
|
7
7
|
var BaseChordDisplay_1 = require("./components/BaseChordDisplay");
|
|
8
8
|
Object.defineProperty(exports, "BaseChordDisplayComponent", { enumerable: true, get: function () { return __importDefault(BaseChordDisplay_1).default; } });
|
|
9
|
-
var model_1 = require("./
|
|
9
|
+
var model_1 = require("./model");
|
|
10
10
|
Object.defineProperty(exports, "BaseChordDisplayModel", { enumerable: true, get: function () { return model_1.BaseChordDisplayModel; } });
|
|
11
|
-
var configSchema_1 = require("./
|
|
11
|
+
var configSchema_1 = require("./configSchema");
|
|
12
12
|
Object.defineProperty(exports, "baseChordDisplayConfig", { enumerable: true, get: function () { return configSchema_1.baseChordDisplayConfig; } });
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import { AnyReactComponentType, Feature } from '@jbrowse/core/util';
|
|
5
|
-
import { ExportSvgOptions } from '../../CircularView/models/model';
|
|
6
|
-
import { ThemeOptions } from '@mui/material';
|
|
1
|
+
import type { ExportSvgOptions } from '../CircularView/model';
|
|
2
|
+
import type { AnyReactComponentType, Feature } from '@jbrowse/core/util';
|
|
3
|
+
import type { ThemeOptions } from '@mui/material';
|
|
7
4
|
export declare const BaseChordDisplayModel: import("mobx-state-tree").IModelType<{
|
|
8
5
|
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
9
6
|
type: import("mobx-state-tree").ISimpleType<string>;
|
|
@@ -54,9 +51,7 @@ export declare const BaseChordDisplayModel: import("mobx-state-tree").IModelType
|
|
|
54
51
|
rendererTypeName: string;
|
|
55
52
|
error: unknown;
|
|
56
53
|
message: string | undefined;
|
|
57
|
-
} & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree"
|
|
58
|
-
* #getter
|
|
59
|
-
*/).IModelType<{
|
|
54
|
+
} & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
|
|
60
55
|
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
61
56
|
type: import("mobx-state-tree").ISimpleType<string>;
|
|
62
57
|
rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
@@ -88,64 +83,27 @@ export declare const BaseChordDisplayModel: import("mobx-state-tree").IModelType
|
|
|
88
83
|
renderingComponent: undefined | AnyReactComponentType;
|
|
89
84
|
refNameMap: Record<string, string> | undefined;
|
|
90
85
|
} & {
|
|
91
|
-
/**
|
|
92
|
-
* #action
|
|
93
|
-
*/
|
|
94
86
|
onChordClick(feature: Feature): void;
|
|
95
87
|
} & {
|
|
96
|
-
|
|
97
|
-
* #getter
|
|
98
|
-
*/
|
|
99
|
-
readonly blockDefinitions: import("../../CircularView/models/slices").Slice[];
|
|
100
|
-
/**
|
|
101
|
-
* #method
|
|
102
|
-
*/
|
|
88
|
+
readonly blockDefinitions: import("../CircularView/slices").Slice[];
|
|
103
89
|
renderProps(): any;
|
|
104
|
-
|
|
105
|
-
* #getter
|
|
106
|
-
* the pluggable element type object for this display's renderer
|
|
107
|
-
*/
|
|
108
|
-
readonly rendererType: RendererType | undefined;
|
|
109
|
-
/**
|
|
110
|
-
* #method
|
|
111
|
-
*/
|
|
112
|
-
isCompatibleWithRenderer(renderer: RendererType): renderer is CircularChordRendererType;
|
|
113
|
-
/**
|
|
114
|
-
* #getter
|
|
115
|
-
* returns a string feature ID if the globally-selected object
|
|
116
|
-
* is probably a feature
|
|
117
|
-
*/
|
|
90
|
+
readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType | undefined;
|
|
118
91
|
readonly selectedFeatureId: string | undefined;
|
|
119
92
|
} & {
|
|
120
|
-
/**
|
|
121
|
-
* #action
|
|
122
|
-
*/
|
|
123
93
|
renderStarted(): void;
|
|
124
|
-
/**
|
|
125
|
-
* #action
|
|
126
|
-
*/
|
|
127
94
|
renderSuccess({ message, data, reactElement, html, renderingComponent, }: {
|
|
128
|
-
message
|
|
129
|
-
data
|
|
130
|
-
html
|
|
131
|
-
reactElement
|
|
132
|
-
renderingComponent
|
|
95
|
+
message?: string;
|
|
96
|
+
data?: any;
|
|
97
|
+
html?: string;
|
|
98
|
+
reactElement?: React.ReactElement;
|
|
99
|
+
renderingComponent?: AnyReactComponentType;
|
|
133
100
|
}): void;
|
|
134
|
-
/**
|
|
135
|
-
* #action
|
|
136
|
-
*/
|
|
137
101
|
renderError(error: unknown): void;
|
|
138
|
-
/**
|
|
139
|
-
* #action
|
|
140
|
-
*/
|
|
141
102
|
setRefNameMap(refNameMap: Record<string, string>): void;
|
|
142
103
|
} & {
|
|
143
104
|
afterAttach(): void;
|
|
144
105
|
} & {
|
|
145
|
-
/**
|
|
146
|
-
* #method
|
|
147
|
-
*/
|
|
148
106
|
renderSvg(opts: ExportSvgOptions & {
|
|
149
107
|
theme?: ThemeOptions;
|
|
150
|
-
}): Promise<
|
|
108
|
+
}): Promise<import("react/jsx-runtime").JSX.Element>;
|
|
151
109
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
@@ -1,45 +1,22 @@
|
|
|
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
3
|
exports.BaseChordDisplayModel = void 0;
|
|
7
|
-
const
|
|
8
|
-
const clone_1 = __importDefault(require("clone"));
|
|
9
|
-
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
10
|
-
// jbrowse
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
11
5
|
const configuration_1 = require("@jbrowse/core/configuration");
|
|
12
6
|
const models_1 = require("@jbrowse/core/pluggableElementTypes/models");
|
|
13
|
-
const CircularChordRendererType_1 = __importDefault(require("@jbrowse/core/pluggableElementTypes/renderers/CircularChordRendererType"));
|
|
14
7
|
const util_1 = require("@jbrowse/core/util");
|
|
15
8
|
const tracks_1 = require("@jbrowse/core/util/tracks");
|
|
16
|
-
|
|
17
|
-
const renderReaction_1 = require("./renderReaction");
|
|
9
|
+
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
18
10
|
const configSchema_1 = require("./configSchema");
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
* extends
|
|
22
|
-
* - [BaseDisplay](../basedisplay)
|
|
23
|
-
*/
|
|
24
|
-
function x() { } // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
11
|
+
const renderReaction_1 = require("./renderReaction");
|
|
12
|
+
function x() { }
|
|
25
13
|
exports.BaseChordDisplayModel = mobx_state_tree_1.types
|
|
26
14
|
.compose('BaseChordDisplay', models_1.BaseDisplay, mobx_state_tree_1.types.model({
|
|
27
|
-
/**
|
|
28
|
-
* #property
|
|
29
|
-
*/
|
|
30
15
|
bezierRadiusRatio: 0.1,
|
|
31
|
-
/**
|
|
32
|
-
* #property
|
|
33
|
-
*/
|
|
34
16
|
assemblyName: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
|
|
35
|
-
/**
|
|
36
|
-
* #property
|
|
37
|
-
*/
|
|
38
17
|
configuration: (0, configuration_1.ConfigurationReference)(configSchema_1.baseChordDisplayConfig),
|
|
39
18
|
}))
|
|
40
19
|
.volatile(() => ({
|
|
41
|
-
// NOTE: all this volatile stuff has to be filled in at once
|
|
42
|
-
// so that it stays consistent
|
|
43
20
|
filled: false,
|
|
44
21
|
reactElement: undefined,
|
|
45
22
|
data: undefined,
|
|
@@ -52,42 +29,32 @@ exports.BaseChordDisplayModel = mobx_state_tree_1.types
|
|
|
52
29
|
const { pluginManager } = (0, util_1.getEnv)(self);
|
|
53
30
|
const track = self;
|
|
54
31
|
return {
|
|
55
|
-
/**
|
|
56
|
-
* #action
|
|
57
|
-
*/
|
|
58
32
|
onChordClick(feature) {
|
|
59
33
|
(0, configuration_1.getConf)(self, 'onChordClick', { feature, track, pluginManager });
|
|
60
34
|
},
|
|
61
35
|
};
|
|
62
36
|
})
|
|
63
37
|
.views(self => ({
|
|
64
|
-
/**
|
|
65
|
-
* #getter
|
|
66
|
-
*/
|
|
67
38
|
get blockDefinitions() {
|
|
68
39
|
const view = (0, util_1.getContainingView)(self);
|
|
69
40
|
const origSlices = view.staticSlices;
|
|
70
41
|
if (!self.refNameMap) {
|
|
71
42
|
return origSlices;
|
|
72
43
|
}
|
|
73
|
-
const slices = (
|
|
74
|
-
|
|
44
|
+
const slices = structuredClone(origSlices);
|
|
45
|
+
for (const slice of slices) {
|
|
75
46
|
const regions = slice.region.elided
|
|
76
47
|
? slice.region.regions
|
|
77
48
|
: [slice.region];
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
const renamed = (_a = self.refNameMap) === null || _a === void 0 ? void 0 : _a[region.refName];
|
|
49
|
+
for (const region of regions) {
|
|
50
|
+
const renamed = self.refNameMap[region.refName];
|
|
81
51
|
if (renamed && region.refName !== renamed) {
|
|
82
52
|
region.refName = renamed;
|
|
83
53
|
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
86
56
|
return slices;
|
|
87
57
|
},
|
|
88
|
-
/**
|
|
89
|
-
* #method
|
|
90
|
-
*/
|
|
91
58
|
renderProps() {
|
|
92
59
|
const view = (0, util_1.getContainingView)(self);
|
|
93
60
|
return {
|
|
@@ -99,41 +66,18 @@ exports.BaseChordDisplayModel = mobx_state_tree_1.types
|
|
|
99
66
|
onChordClick: self.onChordClick,
|
|
100
67
|
};
|
|
101
68
|
},
|
|
102
|
-
/**
|
|
103
|
-
* #getter
|
|
104
|
-
* the pluggable element type object for this display's renderer
|
|
105
|
-
*/
|
|
106
69
|
get rendererType() {
|
|
107
70
|
return (0, util_1.getEnv)(self).pluginManager.getRendererType(self.rendererTypeName);
|
|
108
71
|
},
|
|
109
|
-
/**
|
|
110
|
-
* #method
|
|
111
|
-
*/
|
|
112
|
-
isCompatibleWithRenderer(renderer) {
|
|
113
|
-
return !!(renderer instanceof CircularChordRendererType_1.default);
|
|
114
|
-
},
|
|
115
|
-
/**
|
|
116
|
-
* #getter
|
|
117
|
-
* returns a string feature ID if the globally-selected object
|
|
118
|
-
* is probably a feature
|
|
119
|
-
*/
|
|
120
72
|
get selectedFeatureId() {
|
|
121
73
|
if (!(0, mobx_state_tree_1.isAlive)(self)) {
|
|
122
74
|
return undefined;
|
|
123
75
|
}
|
|
124
|
-
const
|
|
125
|
-
|
|
126
|
-
// does it quack like a feature?
|
|
127
|
-
if ((0, util_1.isFeature)(selection)) {
|
|
128
|
-
return selection.id();
|
|
129
|
-
}
|
|
130
|
-
return undefined;
|
|
76
|
+
const { selection } = (0, util_1.getSession)(self);
|
|
77
|
+
return (0, util_1.isFeature)(selection) ? selection.id() : undefined;
|
|
131
78
|
},
|
|
132
79
|
}))
|
|
133
80
|
.actions(self => ({
|
|
134
|
-
/**
|
|
135
|
-
* #action
|
|
136
|
-
*/
|
|
137
81
|
renderStarted() {
|
|
138
82
|
self.filled = false;
|
|
139
83
|
self.message = '';
|
|
@@ -143,9 +87,6 @@ exports.BaseChordDisplayModel = mobx_state_tree_1.types
|
|
|
143
87
|
self.error = undefined;
|
|
144
88
|
self.renderingComponent = undefined;
|
|
145
89
|
},
|
|
146
|
-
/**
|
|
147
|
-
* #action
|
|
148
|
-
*/
|
|
149
90
|
renderSuccess({ message, data, reactElement, html, renderingComponent, }) {
|
|
150
91
|
if (message) {
|
|
151
92
|
self.filled = false;
|
|
@@ -166,12 +107,8 @@ exports.BaseChordDisplayModel = mobx_state_tree_1.types
|
|
|
166
107
|
self.renderingComponent = renderingComponent;
|
|
167
108
|
}
|
|
168
109
|
},
|
|
169
|
-
/**
|
|
170
|
-
* #action
|
|
171
|
-
*/
|
|
172
110
|
renderError(error) {
|
|
173
111
|
console.error(error);
|
|
174
|
-
// the rendering failed for some reason
|
|
175
112
|
self.filled = false;
|
|
176
113
|
self.message = '';
|
|
177
114
|
self.reactElement = undefined;
|
|
@@ -180,33 +117,36 @@ exports.BaseChordDisplayModel = mobx_state_tree_1.types
|
|
|
180
117
|
self.error = error;
|
|
181
118
|
self.renderingComponent = undefined;
|
|
182
119
|
},
|
|
183
|
-
/**
|
|
184
|
-
* #action
|
|
185
|
-
*/
|
|
186
120
|
setRefNameMap(refNameMap) {
|
|
187
121
|
self.refNameMap = refNameMap;
|
|
188
122
|
},
|
|
189
123
|
}))
|
|
190
124
|
.actions(self => ({
|
|
191
125
|
afterAttach() {
|
|
192
|
-
(0, util_1.makeAbortableReaction)(self, renderReaction_1.renderReactionData,
|
|
193
|
-
// @ts-expect-error
|
|
194
|
-
renderReaction_1.renderReactionEffect, {
|
|
126
|
+
(0, util_1.makeAbortableReaction)(self, renderReaction_1.renderReactionData, renderReaction_1.renderReactionEffect, {
|
|
195
127
|
name: `${self.type} ${self.id} rendering`,
|
|
196
|
-
// delay: self.renderDelay || 300,
|
|
197
128
|
fireImmediately: true,
|
|
198
129
|
}, self.renderStarted, self.renderSuccess, self.renderError);
|
|
199
|
-
(0, util_1.makeAbortableReaction)(self, () =>
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
130
|
+
(0, util_1.makeAbortableReaction)(self, () => {
|
|
131
|
+
return {
|
|
132
|
+
assemblyNames: (0, tracks_1.getTrackAssemblyNames)(self.parentTrack),
|
|
133
|
+
adapter: (0, configuration_1.getConf)((0, mobx_state_tree_1.getParent)(self, 2), 'adapter'),
|
|
134
|
+
assemblyManager: (0, util_1.getSession)(self).assemblyManager,
|
|
135
|
+
};
|
|
136
|
+
}, async (args, stopToken) => {
|
|
137
|
+
return args
|
|
138
|
+
? args.assemblyManager.getRefNameMapForAdapter(args.adapter, args.assemblyNames[0], {
|
|
139
|
+
stopToken,
|
|
140
|
+
sessionId: (0, tracks_1.getRpcSessionId)(self),
|
|
141
|
+
})
|
|
142
|
+
: undefined;
|
|
205
143
|
}, {
|
|
206
144
|
name: `${self.type} ${self.id} getting refNames`,
|
|
207
145
|
fireImmediately: true,
|
|
208
146
|
}, () => { }, refNameMap => {
|
|
209
|
-
|
|
147
|
+
if (refNameMap) {
|
|
148
|
+
self.setRefNameMap(refNameMap);
|
|
149
|
+
}
|
|
210
150
|
}, error => {
|
|
211
151
|
console.error(error);
|
|
212
152
|
self.setError(error);
|
|
@@ -214,16 +154,13 @@ exports.BaseChordDisplayModel = mobx_state_tree_1.types
|
|
|
214
154
|
},
|
|
215
155
|
}))
|
|
216
156
|
.views(self => ({
|
|
217
|
-
/**
|
|
218
|
-
* #method
|
|
219
|
-
*/
|
|
220
157
|
async renderSvg(opts) {
|
|
221
158
|
const data = (0, renderReaction_1.renderReactionData)(self);
|
|
222
159
|
const rendering = await (0, renderReaction_1.renderReactionEffect)({
|
|
223
160
|
...data,
|
|
224
161
|
exportSVG: opts,
|
|
225
162
|
theme: opts.theme || data.renderProps.theme,
|
|
226
|
-
}
|
|
227
|
-
return
|
|
163
|
+
});
|
|
164
|
+
return (0, jsx_runtime_1.jsx)(util_1.ReactRendering, { rendering: rendering });
|
|
228
165
|
},
|
|
229
166
|
}));
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export declare function renderReactionData(self: any): {
|
|
2
|
+
rendererType: any;
|
|
3
|
+
rpcManager: import("@jbrowse/core/rpc/RpcManager").default;
|
|
4
|
+
renderProps: any;
|
|
5
|
+
renderArgs: {
|
|
6
|
+
assemblyName: string;
|
|
7
|
+
adapterConfig: any;
|
|
8
|
+
rendererType: any;
|
|
9
|
+
regions: import("@jbrowse/core/util").Region[] & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<import("@jbrowse/core/util").Region[], import("@jbrowse/core/util").Region[], import("@jbrowse/core/util").Region[]>, [undefined]>>;
|
|
10
|
+
blockDefinitions: any;
|
|
11
|
+
sessionId: string;
|
|
12
|
+
timeout: number;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
export declare function renderReactionEffect(props?: any, stopToken?: string): Promise<{
|
|
16
|
+
message: any;
|
|
17
|
+
html?: undefined;
|
|
18
|
+
data?: undefined;
|
|
19
|
+
reactElement?: undefined;
|
|
20
|
+
renderingComponent?: undefined;
|
|
21
|
+
} | {
|
|
22
|
+
html: any;
|
|
23
|
+
data: any;
|
|
24
|
+
reactElement: any;
|
|
25
|
+
renderingComponent: any;
|
|
26
|
+
message?: undefined;
|
|
27
|
+
}>;
|
|
@@ -1,13 +1,9 @@
|
|
|
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
3
|
exports.renderReactionData = renderReactionData;
|
|
7
4
|
exports.renderReactionEffect = renderReactionEffect;
|
|
8
|
-
const clone_1 = __importDefault(require("clone"));
|
|
9
|
-
const tracks_1 = require("@jbrowse/core/util/tracks");
|
|
10
5
|
const util_1 = require("@jbrowse/core/util");
|
|
6
|
+
const tracks_1 = require("@jbrowse/core/util/tracks");
|
|
11
7
|
function renderReactionData(self) {
|
|
12
8
|
const view = (0, util_1.getContainingView)(self);
|
|
13
9
|
const { rendererType } = self;
|
|
@@ -18,16 +14,16 @@ function renderReactionData(self) {
|
|
|
18
14
|
renderProps: self.renderProps(),
|
|
19
15
|
renderArgs: {
|
|
20
16
|
assemblyName: view.displayedRegions[0].assemblyName,
|
|
21
|
-
adapterConfig: (
|
|
17
|
+
adapterConfig: structuredClone(self.adapterConfig),
|
|
22
18
|
rendererType: rendererType.name,
|
|
23
|
-
regions: (
|
|
19
|
+
regions: structuredClone(view.displayedRegions),
|
|
24
20
|
blockDefinitions: self.blockDefinitions,
|
|
25
21
|
sessionId: (0, tracks_1.getRpcSessionId)(self),
|
|
26
22
|
timeout: 1000000,
|
|
27
23
|
},
|
|
28
24
|
};
|
|
29
25
|
}
|
|
30
|
-
async function renderReactionEffect(props,
|
|
26
|
+
async function renderReactionEffect(props, stopToken) {
|
|
31
27
|
var _a;
|
|
32
28
|
if (!props) {
|
|
33
29
|
throw new Error('cannot render with no props');
|
|
@@ -36,18 +32,14 @@ async function renderReactionEffect(props, signal, self) {
|
|
|
36
32
|
if (cannotBeRenderedReason) {
|
|
37
33
|
return { message: cannotBeRenderedReason };
|
|
38
34
|
}
|
|
39
|
-
// don't try to render 0 or NaN radius or no regions
|
|
40
35
|
if (!renderProps.radius || !((_a = renderArgs.regions) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
41
36
|
return { message: 'Skipping render' };
|
|
42
37
|
}
|
|
43
|
-
// check renderertype compatibility
|
|
44
|
-
if (!self.isCompatibleWithRenderer(rendererType)) {
|
|
45
|
-
throw new Error(`renderer ${rendererType.name} is not compatible with this display type`);
|
|
46
|
-
}
|
|
47
38
|
const { html, ...data } = await rendererType.renderInClient(rpcManager, {
|
|
48
39
|
...renderArgs,
|
|
49
40
|
...renderProps,
|
|
50
41
|
exportSVG,
|
|
42
|
+
stopToken,
|
|
51
43
|
});
|
|
52
44
|
return {
|
|
53
45
|
html,
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { CircularViewModel } from '../models/model';
|
|
1
|
+
import type { CircularViewModel } from '../model';
|
|
3
2
|
declare const CircularView: ({ model }: {
|
|
4
3
|
model: CircularViewModel;
|
|
5
|
-
}) =>
|
|
4
|
+
}) => import("react/jsx-runtime").JSX.Element | null;
|
|
6
5
|
export default CircularView;
|