@jbrowse/plugin-circular-view 1.6.9 → 1.7.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.
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _Loading = _interopRequireDefault(require("./Loading"));
11
+
12
+ var _DisplayError = _interopRequireDefault(require("./DisplayError"));
13
+
14
+ var _RpcRenderedSvgGroup = _interopRequireDefault(require("./RpcRenderedSvgGroup"));
15
+
16
+ var _default = function _default(_ref) {
17
+ var lib = _ref.lib,
18
+ load = _ref.load;
19
+ var React = lib.react;
20
+ var _lib$mobxReact = lib['mobx-react'],
21
+ observer = _lib$mobxReact.observer,
22
+ MobxPropTypes = _lib$mobxReact.PropTypes;
23
+ var Loading = load(_Loading["default"]);
24
+ var DisplayError = load(_DisplayError["default"]);
25
+ var RpcRenderedSvgGroup = load(_RpcRenderedSvgGroup["default"]); // eslint-disable-next-line @typescript-eslint/no-explicit-any
26
+
27
+ function BaseChordDisplay(_ref2) {
28
+ var display = _ref2.display;
29
+
30
+ if (display.error) {
31
+ return /*#__PURE__*/React.createElement(DisplayError, {
32
+ model: display
33
+ });
34
+ }
35
+
36
+ if (!display.filled) {
37
+ return /*#__PURE__*/React.createElement(Loading, {
38
+ model: display
39
+ });
40
+ }
41
+
42
+ return /*#__PURE__*/React.createElement(RpcRenderedSvgGroup, {
43
+ model: display
44
+ });
45
+ }
46
+
47
+ BaseChordDisplay.propTypes = {
48
+ display: MobxPropTypes.observableObject.isRequired
49
+ };
50
+ return observer(BaseChordDisplay);
51
+ };
52
+
53
+ exports["default"] = _default;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _default = function _default(_ref) {
9
+ var jbrequire = _ref.jbrequire;
10
+ var React = jbrequire('react');
11
+
12
+ var _jbrequire = jbrequire('@material-ui/core/styles'),
13
+ makeStyles = _jbrequire.makeStyles;
14
+
15
+ var _jbrequire2 = jbrequire('mobx-react'),
16
+ observer = _jbrequire2.observer;
17
+
18
+ var useStyles = makeStyles({
19
+ errorMessage: {},
20
+ errorBackground: {},
21
+ errorText: {}
22
+ }); // 'repeating-linear-gradient(45deg, transparent, transparent 5px, rgba(255,255,255,.5) 5px, rgba(255,255,255,.5) 10px)',
23
+
24
+ var DisplayError = observer(function (_ref2) {
25
+ var _ref2$model = _ref2.model,
26
+ radius = _ref2$model.renderProps.radius,
27
+ error = _ref2$model.error;
28
+ var classes = useStyles();
29
+ return /*#__PURE__*/React.createElement("g", {
30
+ className: classes.errorMessage
31
+ }, /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("pattern", {
32
+ id: "diagonalHatch",
33
+ width: "10",
34
+ height: "10",
35
+ patternTransform: "rotate(45 0 0)",
36
+ patternUnits: "userSpaceOnUse"
37
+ }, /*#__PURE__*/React.createElement("line", {
38
+ x1: "0",
39
+ y1: "0",
40
+ x2: "0",
41
+ y2: "10",
42
+ style: {
43
+ stroke: 'rgba(255,0,0,0.5)',
44
+ strokeWidth: 10
45
+ }
46
+ }))), /*#__PURE__*/React.createElement("circle", {
47
+ className: classes.errorBackground,
48
+ cx: "0",
49
+ cy: "0",
50
+ r: radius,
51
+ fill: "#ffb4b4"
52
+ }), /*#__PURE__*/React.createElement("circle", {
53
+ className: classes.errorPattern,
54
+ cx: "0",
55
+ cy: "0",
56
+ r: radius,
57
+ fill: "url(#diagonalHatch)"
58
+ }), /*#__PURE__*/React.createElement("text", {
59
+ className: classes.errorText,
60
+ x: "0",
61
+ y: "0",
62
+ transform: "rotate(90 0 0)",
63
+ dominantBaseline: "middle",
64
+ textAnchor: "middle"
65
+ }, String(error)));
66
+ });
67
+ return DisplayError;
68
+ };
69
+
70
+ exports["default"] = _default;
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+
12
+ var _default = function _default(pluginManager) {
13
+ var lib = pluginManager.lib;
14
+ var React = lib.react;
15
+ var useState = React.useState,
16
+ useEffect = React.useEffect;
17
+ var makeStyles = lib['@material-ui/core/styles'].makeStyles;
18
+ var observer = lib['mobx-react'].observer;
19
+ var useStyles = makeStyles(function (theme) {
20
+ var offset = 2;
21
+ var duration = 1.4;
22
+ return {
23
+ path: {
24
+ strokeDasharray: 187,
25
+ strokeDashoffset: 50,
26
+ animation: "$dash ".concat(duration, "s ease-in-out infinite, $colors ").concat(duration * 4, "s ease-in-out infinite")
27
+ },
28
+ '@keyframes colors': {
29
+ '0%': {
30
+ stroke: theme.palette.primary.light
31
+ },
32
+ '25%': {
33
+ stroke: theme.palette.secondary.light
34
+ },
35
+ '50%': {
36
+ stroke: theme.palette.tertiary.light
37
+ },
38
+ '75%': {
39
+ stroke: theme.palette.quaternary.light
40
+ },
41
+ '100%': {
42
+ stroke: theme.palette.primary.light
43
+ }
44
+ },
45
+ '@keyframes dash': {
46
+ '0%': {
47
+ strokeDashoffset: offset
48
+ },
49
+ '50%': {
50
+ strokeDashoffset: offset / 4,
51
+ transform: 'rotate(135deg)'
52
+ },
53
+ '100%': {
54
+ strokeDashoffset: offset,
55
+ transform: 'rotate(720deg)'
56
+ }
57
+ }
58
+ };
59
+ }); // 'repeating-linear-gradient(45deg, transparent, transparent 5px, rgba(255,255,255,.5) 5px, rgba(255,255,255,.5) 10px)',
60
+
61
+ var Loading = observer(function (_ref) {
62
+ var radius = _ref.model.renderProps.radius;
63
+ var classes = useStyles(); // only show the loading message after 400ms to prevent excessive flickering
64
+
65
+ var _useState = useState(false),
66
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
67
+ shown = _useState2[0],
68
+ setShown = _useState2[1];
69
+
70
+ useEffect(function () {
71
+ var timeout = setTimeout(function () {
72
+ return setShown(true);
73
+ }, 400);
74
+ return function () {
75
+ return clearTimeout(timeout);
76
+ };
77
+ });
78
+ return !shown ? null : /*#__PURE__*/React.createElement("g", null, /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("pattern", {
79
+ id: "diagonalHatch",
80
+ width: "10",
81
+ height: "10",
82
+ patternTransform: "rotate(45 0 0)",
83
+ patternUnits: "userSpaceOnUse"
84
+ }, /*#__PURE__*/React.createElement("line", {
85
+ x1: "0",
86
+ y1: "0",
87
+ x2: "0",
88
+ y2: "10",
89
+ style: {
90
+ stroke: 'rgba(255,255,255,0.5)',
91
+ strokeWidth: 10
92
+ }
93
+ }))), /*#__PURE__*/React.createElement("circle", {
94
+ cx: "0",
95
+ cy: "0",
96
+ r: radius,
97
+ fill: "#f1f1f1"
98
+ }), /*#__PURE__*/React.createElement("circle", {
99
+ cx: "0",
100
+ cy: "0",
101
+ r: radius,
102
+ fill: "url(#diagonalHatch)"
103
+ }), /*#__PURE__*/React.createElement("text", {
104
+ x: "0",
105
+ y: "0",
106
+ transform: "rotate(90 0 0)",
107
+ dominantBaseline: "middle",
108
+ textAnchor: "middle"
109
+ }, "Loading\u2026"), /*#__PURE__*/React.createElement("circle", {
110
+ className: classes.path,
111
+ fill: "none",
112
+ strokeWidth: "4",
113
+ strokeLinecap: "round",
114
+ cx: "0",
115
+ cy: "0",
116
+ r: "60"
117
+ }));
118
+ });
119
+ return Loading;
120
+ };
121
+
122
+ exports["default"] = _default;
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
+
14
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15
+
16
+ var _default = function _default(_ref) {
17
+ var jbrequire = _ref.jbrequire;
18
+ var React = jbrequire('react');
19
+
20
+ var _jbrequire = jbrequire('mobx-state-tree'),
21
+ isAlive = _jbrequire.isAlive;
22
+
23
+ var useEffect = React.useEffect,
24
+ useRef = React.useRef;
25
+
26
+ var _jbrequire2 = jbrequire('mobx-react'),
27
+ observer = _jbrequire2.observer,
28
+ MobxPropTypes = _jbrequire2.PropTypes;
29
+
30
+ var _jbrequire3 = jbrequire('react-dom'),
31
+ unmountComponentAtNode = _jbrequire3.unmountComponentAtNode,
32
+ hydrate = _jbrequire3.hydrate;
33
+
34
+ var _jbrequire4 = jbrequire('@jbrowse/core/util'),
35
+ rIC = _jbrequire4.rIC;
36
+
37
+ function RpcRenderedSvgGroup(_ref2) {
38
+ var model = _ref2.model;
39
+ var data = model.data,
40
+ html = model.html,
41
+ filled = model.filled,
42
+ renderingComponent = model.renderingComponent;
43
+ var ssrContainerNode = useRef(null);
44
+ useEffect(function () {
45
+ var domNode = ssrContainerNode.current;
46
+
47
+ function doHydrate() {
48
+ if (domNode && filled) {
49
+ if (domNode && domNode.innerHTML) {
50
+ domNode.style.display = 'none';
51
+ unmountComponentAtNode(domNode);
52
+ } // setting outline:none fixes react "focusable" element issue. see
53
+ // https://github.com/GMOD/jbrowse-components/issues/2160
54
+
55
+
56
+ domNode.style.outline = 'none';
57
+ domNode.innerHTML = html; // use requestIdleCallback to defer main-thread rendering
58
+ // and hydration for when we have some free time. helps
59
+ // keep the framerate up.
60
+
61
+ rIC(function () {
62
+ if (!isAlive(model)) {
63
+ return;
64
+ }
65
+
66
+ var mainThreadRendering = React.createElement(renderingComponent, _objectSpread(_objectSpread({}, data), model.renderProps()), null);
67
+ rIC(function () {
68
+ if (!isAlive(model)) {
69
+ return;
70
+ }
71
+
72
+ hydrate(mainThreadRendering, domNode);
73
+ });
74
+ });
75
+ }
76
+ }
77
+
78
+ doHydrate();
79
+ return function () {
80
+ if (domNode) {
81
+ unmountComponentAtNode(domNode);
82
+ }
83
+ };
84
+ });
85
+ return /*#__PURE__*/React.createElement("g", {
86
+ ref: ssrContainerNode
87
+ });
88
+ }
89
+
90
+ RpcRenderedSvgGroup.propTypes = {
91
+ model: MobxPropTypes.observableObject.isRequired
92
+ };
93
+ return observer(RpcRenderedSvgGroup);
94
+ };
95
+
96
+ exports["default"] = _default;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "BaseChordDisplayComponentFactory", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _BaseChordDisplay["default"];
12
+ }
13
+ });
14
+ Object.defineProperty(exports, "BaseChordDisplayModel", {
15
+ enumerable: true,
16
+ get: function get() {
17
+ return _BaseChordDisplayModel.BaseChordDisplayModel;
18
+ }
19
+ });
20
+ Object.defineProperty(exports, "baseChordDisplayConfig", {
21
+ enumerable: true,
22
+ get: function get() {
23
+ return _baseChordDisplayConfig.baseChordDisplayConfig;
24
+ }
25
+ });
26
+
27
+ var _BaseChordDisplay = _interopRequireDefault(require("./components/BaseChordDisplay"));
28
+
29
+ var _BaseChordDisplayModel = require("./models/BaseChordDisplayModel");
30
+
31
+ var _baseChordDisplayConfig = require("./models/baseChordDisplayConfig");
@@ -0,0 +1,261 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.BaseChordDisplayModel = void 0;
9
+
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
+ var _configuration = require("@jbrowse/core/configuration");
17
+
18
+ var _models = require("@jbrowse/core/pluggableElementTypes/models");
19
+
20
+ var _CircularChordRendererType = _interopRequireDefault(require("@jbrowse/core/pluggableElementTypes/renderers/CircularChordRendererType"));
21
+
22
+ var _util = require("@jbrowse/core/util");
23
+
24
+ var _simpleFeature = require("@jbrowse/core/util/simpleFeature");
25
+
26
+ var _tracks = require("@jbrowse/core/util/tracks");
27
+
28
+ var _mobxStateTree = require("mobx-state-tree");
29
+
30
+ var _renderReaction = _interopRequireDefault(require("./renderReaction"));
31
+
32
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
33
+
34
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
35
+
36
+ var BaseChordDisplayModel = _mobxStateTree.types.compose('BaseChordDisplay', _models.BaseDisplay, _mobxStateTree.types.model({
37
+ bezierRadiusRatio: 0.1,
38
+ assemblyName: _mobxStateTree.types.maybe(_mobxStateTree.types.string)
39
+ }))["volatile"](function () {
40
+ return {
41
+ // NOTE: all this volatile stuff has to be filled in at once
42
+ // so that it stays consistent
43
+ filled: false,
44
+ reactElement: undefined,
45
+ data: undefined,
46
+ message: '',
47
+ renderingComponent: undefined,
48
+ refNameMap: undefined
49
+ };
50
+ }).actions(function (self) {
51
+ var _getEnv = (0, _mobxStateTree.getEnv)(self),
52
+ pluginManager = _getEnv.pluginManager;
53
+
54
+ var track = self;
55
+ return {
56
+ onChordClick: function onChordClick(feature) {
57
+ (0, _configuration.getConf)(self, 'onChordClick', {
58
+ feature: feature,
59
+ track: track,
60
+ pluginManager: pluginManager
61
+ });
62
+ }
63
+ };
64
+ }).views(function (self) {
65
+ return {
66
+ get blockDefinitions() {
67
+ var origSlices = (0, _util.getContainingView)(self).staticSlices;
68
+
69
+ if (!self.refNameMap) {
70
+ return origSlices;
71
+ }
72
+
73
+ var slices = JSON.parse(JSON.stringify(origSlices)); // eslint-disable-next-line @typescript-eslint/no-explicit-any
74
+
75
+ slices.forEach(function (slice) {
76
+ var regions = slice.region.elided ? slice.region.regions : [slice.region];
77
+ regions.forEach(function (region) {
78
+ var _self$refNameMap;
79
+
80
+ var renamed = (_self$refNameMap = self.refNameMap) === null || _self$refNameMap === void 0 ? void 0 : _self$refNameMap[region.refName];
81
+
82
+ if (renamed && region.refName !== renamed) {
83
+ region.refName = renamed;
84
+ }
85
+ });
86
+ });
87
+ return slices;
88
+ },
89
+
90
+ renderProps: function renderProps() {
91
+ var view = (0, _util.getContainingView)(self);
92
+ return _objectSpread(_objectSpread({}, (0, _tracks.getParentRenderProps)(self)), {}, {
93
+ rpcDriverName: self.rpcDriverName,
94
+ displayModel: self,
95
+ bezierRadius: view.radiusPx * self.bezierRadiusRatio,
96
+ radius: view.radiusPx,
97
+ blockDefinitions: this.blockDefinitions,
98
+ onChordClick: self.onChordClick
99
+ });
100
+ },
101
+
102
+ /**
103
+ * the pluggable element type object for this diplay's
104
+ * renderer
105
+ */
106
+ get rendererType() {
107
+ var display = self;
108
+
109
+ var _getEnv2 = (0, _mobxStateTree.getEnv)(self),
110
+ pluginManager = _getEnv2.pluginManager;
111
+
112
+ var ThisRendererType = pluginManager.getRendererType(self.rendererTypeName);
113
+
114
+ if (!ThisRendererType) {
115
+ throw new Error("renderer \"".concat(display.rendererTypeName, "\" not found"));
116
+ }
117
+
118
+ if (!ThisRendererType.ReactComponent) {
119
+ throw new Error("renderer ".concat(display.rendererTypeName, " has no ReactComponent, it may not be completely implemented yet"));
120
+ }
121
+
122
+ return ThisRendererType;
123
+ },
124
+
125
+ isCompatibleWithRenderer: function isCompatibleWithRenderer(renderer) {
126
+ return !!(renderer instanceof _CircularChordRendererType["default"]);
127
+ },
128
+
129
+ /**
130
+ * returns a string feature ID if the globally-selected object
131
+ * is probably a feature
132
+ */
133
+ get selectedFeatureId() {
134
+ if (!(0, _mobxStateTree.isAlive)(self)) {
135
+ return undefined;
136
+ }
137
+
138
+ var session = (0, _util.getSession)(self);
139
+
140
+ if (!session) {
141
+ return undefined;
142
+ }
143
+
144
+ var selection = session.selection; // does it quack like a feature?
145
+
146
+ if ((0, _simpleFeature.isFeature)(selection)) {
147
+ return selection.id();
148
+ }
149
+
150
+ return undefined;
151
+ }
152
+
153
+ };
154
+ }).actions(function (self) {
155
+ return {
156
+ renderStarted: function renderStarted() {
157
+ self.filled = false;
158
+ self.message = '';
159
+ self.reactElement = undefined;
160
+ self.data = undefined;
161
+ self.error = undefined;
162
+ self.renderingComponent = undefined;
163
+ },
164
+ renderSuccess: function renderSuccess(_ref) {
165
+ var message = _ref.message,
166
+ data = _ref.data,
167
+ reactElement = _ref.reactElement,
168
+ renderingComponent = _ref.renderingComponent;
169
+
170
+ if (message) {
171
+ self.filled = false;
172
+ self.message = message;
173
+ self.reactElement = undefined;
174
+ self.data = undefined;
175
+ self.error = undefined;
176
+ self.renderingComponent = undefined;
177
+ } else {
178
+ self.filled = true;
179
+ self.message = '';
180
+ self.reactElement = reactElement;
181
+ self.data = data;
182
+ self.error = undefined;
183
+ self.renderingComponent = renderingComponent;
184
+ }
185
+ },
186
+ renderError: function renderError(error) {
187
+ console.error(error); // the rendering failed for some reason
188
+
189
+ self.filled = false;
190
+ self.message = '';
191
+ self.reactElement = undefined;
192
+ self.data = undefined;
193
+ self.error = error;
194
+ self.renderingComponent = undefined;
195
+ },
196
+ setRefNameMap: function setRefNameMap(refNameMap) {
197
+ self.refNameMap = refNameMap;
198
+ }
199
+ };
200
+ }).actions(function (self) {
201
+ var _getEnv3 = (0, _mobxStateTree.getEnv)(self),
202
+ pluginManager = _getEnv3.pluginManager;
203
+
204
+ var _pluginManager$jbrequ = pluginManager.jbrequire(_renderReaction["default"]),
205
+ renderReactionData = _pluginManager$jbrequ.renderReactionData,
206
+ renderReactionEffect = _pluginManager$jbrequ.renderReactionEffect;
207
+
208
+ return {
209
+ afterAttach: function afterAttach() {
210
+ (0, _util.makeAbortableReaction)(self, renderReactionData, renderReactionEffect, {
211
+ name: "".concat(self.type, " ").concat(self.id, " rendering"),
212
+ // delay: self.renderDelay || 300,
213
+ fireImmediately: true
214
+ }, self.renderStarted, self.renderSuccess, self.renderError);
215
+ (0, _util.makeAbortableReaction)(self, function () {
216
+ return {
217
+ assemblyNames: (0, _tracks.getTrackAssemblyNames)(self.parentTrack),
218
+ adapter: (0, _configuration.getConf)((0, _mobxStateTree.getParent)(self, 2), 'adapter'),
219
+ assemblyManager: (0, _util.getSession)(self).assemblyManager
220
+ };
221
+ },
222
+ /*#__PURE__*/
223
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
224
+ function () {
225
+ var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(_ref2, signal) {
226
+ var assemblyNames, adapter, assemblyManager;
227
+ return _regenerator["default"].wrap(function _callee$(_context) {
228
+ while (1) {
229
+ switch (_context.prev = _context.next) {
230
+ case 0:
231
+ assemblyNames = _ref2.assemblyNames, adapter = _ref2.adapter, assemblyManager = _ref2.assemblyManager;
232
+ return _context.abrupt("return", assemblyManager.getRefNameMapForAdapter(adapter, assemblyNames[0], {
233
+ signal: signal,
234
+ sessionId: (0, _tracks.getRpcSessionId)(self)
235
+ }));
236
+
237
+ case 2:
238
+ case "end":
239
+ return _context.stop();
240
+ }
241
+ }
242
+ }, _callee);
243
+ }));
244
+
245
+ return function (_x, _x2) {
246
+ return _ref3.apply(this, arguments);
247
+ };
248
+ }(), {
249
+ name: "".concat(self.type, " ").concat(self.id, " getting refNames"),
250
+ fireImmediately: true
251
+ }, function () {}, function (refNameMap) {
252
+ self.setRefNameMap(refNameMap);
253
+ }, function (error) {
254
+ console.error(error);
255
+ self.setError(error);
256
+ });
257
+ }
258
+ };
259
+ });
260
+
261
+ exports.BaseChordDisplayModel = BaseChordDisplayModel;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.baseChordDisplayConfig = void 0;
7
+
8
+ var _configuration = require("@jbrowse/core/configuration");
9
+
10
+ var baseChordDisplayConfig = (0, _configuration.ConfigurationSchema)('BaseChordDisplay', {
11
+ onChordClick: {
12
+ type: 'boolean',
13
+ description: 'callback that should be run when a chord in the track is clicked',
14
+ defaultValue: false,
15
+ contextVariable: ['feature', 'track', 'pluginManager']
16
+ }
17
+ }, {
18
+ explicitIdentifier: 'displayId'
19
+ });
20
+ exports.baseChordDisplayConfig = baseChordDisplayConfig;