@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
@@ -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
- }) => React.JSX.Element;
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 react_1 = __importDefault(require("react"));
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 react_1.default.createElement(DisplayError_1.default, { model: display });
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
- if (!display.filled) {
16
- return react_1.default.createElement(Loading_1.default, { model: display });
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
- }) => React.JSX.Element;
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 react_1 = __importDefault(require("react"));
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 (react_1.default.createElement("g", null,
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
- }) => React.JSX.Element | null;
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 react_1 = __importStar(require("react"));
27
- const mui_1 = require("tss-react/mui");
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 : (react_1.default.createElement("g", 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;
@@ -1,7 +1,4 @@
1
1
  declare const baseChordDisplayConfig: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
2
- /**
3
- * #slot
4
- */
5
2
  onChordClick: {
6
3
  type: string;
7
4
  description: string;
@@ -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 './models/model';
3
- export { baseChordDisplayConfig } from './models/configSchema';
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("./models/model");
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("./models/configSchema");
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 React from 'react';
2
- import CircularChordRendererType from '@jbrowse/core/pluggableElementTypes/renderers/CircularChordRendererType';
3
- import RendererType from '@jbrowse/core/pluggableElementTypes/renderers/RendererType';
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: string;
129
- data: any;
130
- html: string;
131
- reactElement: React.ReactElement;
132
- renderingComponent: AnyReactComponentType;
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<React.JSX.Element>;
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 react_1 = __importDefault(require("react"));
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
- // locals
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
- * #stateModel BaseChordDisplay
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 = (0, clone_1.default)(origSlices);
74
- slices.forEach(slice => {
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
- regions.forEach(region => {
79
- var _a;
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 session = (0, util_1.getSession)(self);
125
- const { selection } = session;
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
- assemblyNames: (0, tracks_1.getTrackAssemblyNames)(self.parentTrack),
201
- adapter: (0, configuration_1.getConf)((0, mobx_state_tree_1.getParent)(self, 2), 'adapter'),
202
- assemblyManager: (0, util_1.getSession)(self).assemblyManager,
203
- }), async ({ assemblyNames, adapter, assemblyManager }, signal) => {
204
- return assemblyManager.getRefNameMapForAdapter(adapter, assemblyNames[0], { signal, sessionId: (0, tracks_1.getRpcSessionId)(self) });
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
- self.setRefNameMap(refNameMap);
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
- }, undefined, self);
227
- return react_1.default.createElement(util_1.ReactRendering, { rendering: rendering });
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: (0, clone_1.default)(self.adapterConfig),
17
+ adapterConfig: structuredClone(self.adapterConfig),
22
18
  rendererType: rendererType.name,
23
- regions: (0, clone_1.default)(view.displayedRegions),
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, signal, self) {
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 React from 'react';
2
- import { CircularViewModel } from '../models/model';
1
+ import type { CircularViewModel } from '../model';
3
2
  declare const CircularView: ({ model }: {
4
3
  model: CircularViewModel;
5
- }) => React.JSX.Element | null;
4
+ }) => import("react/jsx-runtime").JSX.Element | null;
6
5
  export default CircularView;