@jbrowse/plugin-linear-genome-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.
Files changed (62) hide show
  1. package/dist/BaseLinearDisplay/components/BaseLinearDisplay.js +232 -0
  2. package/dist/BaseLinearDisplay/components/Block.js +86 -0
  3. package/dist/BaseLinearDisplay/components/LinearBlocks.js +110 -0
  4. package/dist/BaseLinearDisplay/components/ServerSideRenderedBlockContent.js +192 -0
  5. package/dist/BaseLinearDisplay/index.js +41 -0
  6. package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.js +763 -0
  7. package/dist/BaseLinearDisplay/models/baseLinearDisplayConfigSchema.js +24 -0
  8. package/dist/BaseLinearDisplay/models/serverSideRenderedBlock.js +328 -0
  9. package/dist/LinearBareDisplay/configSchema.js +19 -0
  10. package/dist/LinearBareDisplay/index.js +21 -0
  11. package/dist/LinearBareDisplay/index.test.js +33 -0
  12. package/dist/LinearBareDisplay/model.js +44 -0
  13. package/dist/LinearBasicDisplay/components/SetMaxHeight.js +94 -0
  14. package/dist/LinearBasicDisplay/configSchema.js +25 -0
  15. package/dist/LinearBasicDisplay/index.js +23 -0
  16. package/dist/LinearBasicDisplay/model.js +162 -0
  17. package/dist/LinearGenomeView/components/CenterLine.js +80 -0
  18. package/dist/LinearGenomeView/components/ExportSvgDialog.js +137 -0
  19. package/dist/LinearGenomeView/components/Header.js +144 -0
  20. package/dist/LinearGenomeView/components/HelpDialog.js +48 -0
  21. package/dist/LinearGenomeView/components/ImportForm.js +330 -0
  22. package/dist/LinearGenomeView/components/LinearGenomeView.js +129 -0
  23. package/dist/LinearGenomeView/components/LinearGenomeView.test.js +234 -0
  24. package/dist/LinearGenomeView/components/LinearGenomeViewSvg.js +349 -0
  25. package/dist/LinearGenomeView/components/MiniControls.js +83 -0
  26. package/dist/LinearGenomeView/components/OverviewRubberBand.js +310 -0
  27. package/dist/LinearGenomeView/components/OverviewScaleBar.js +403 -0
  28. package/dist/LinearGenomeView/components/RefNameAutocomplete.js +331 -0
  29. package/dist/LinearGenomeView/components/RubberBand.js +309 -0
  30. package/dist/LinearGenomeView/components/Ruler.js +101 -0
  31. package/dist/LinearGenomeView/components/ScaleBar.js +184 -0
  32. package/dist/LinearGenomeView/components/ScaleBar.test.js +180 -0
  33. package/dist/LinearGenomeView/components/SearchBox.js +201 -0
  34. package/dist/LinearGenomeView/components/SearchResultsDialog.js +159 -0
  35. package/dist/LinearGenomeView/components/SequenceDialog.js +304 -0
  36. package/dist/LinearGenomeView/components/TrackContainer.js +179 -0
  37. package/dist/LinearGenomeView/components/TrackLabel.js +165 -0
  38. package/dist/LinearGenomeView/components/TracksContainer.js +214 -0
  39. package/dist/LinearGenomeView/components/VerticalGuides.js +116 -0
  40. package/dist/LinearGenomeView/components/ZoomControls.js +92 -0
  41. package/dist/LinearGenomeView/components/util.js +16 -0
  42. package/dist/LinearGenomeView/index.js +1418 -0
  43. package/dist/LinearGenomeView/index.test.js +1170 -0
  44. package/dist/LinearGenomeView/util.js +93 -0
  45. package/dist/LinearGenomeView/util.test.js +78 -0
  46. package/dist/index.js +293 -6
  47. package/package.json +4 -8
  48. package/src/BaseLinearDisplay/models/BaseLinearDisplayModel.tsx +2 -0
  49. package/src/BaseLinearDisplay/models/serverSideRenderedBlock.ts +10 -8
  50. package/src/LinearBasicDisplay/components/SetMaxHeight.tsx +1 -1
  51. package/src/LinearBasicDisplay/model.ts +17 -18
  52. package/src/LinearGenomeView/components/Header.tsx +1 -1
  53. package/src/LinearGenomeView/components/ImportForm.tsx +10 -4
  54. package/src/LinearGenomeView/components/LinearGenomeView.test.js +1 -0
  55. package/src/LinearGenomeView/components/OverviewScaleBar.tsx +2 -2
  56. package/src/LinearGenomeView/components/RubberBand.tsx +14 -24
  57. package/src/LinearGenomeView/components/ScaleBar.test.tsx +1 -0
  58. package/src/LinearGenomeView/components/ScaleBar.tsx +3 -6
  59. package/src/LinearGenomeView/components/SequenceDialog.tsx +1 -1
  60. package/src/LinearGenomeView/components/TrackLabel.tsx +1 -1
  61. package/src/LinearGenomeView/components/__snapshots__/LinearGenomeView.test.js.snap +0 -4
  62. package/src/LinearGenomeView/index.tsx +2 -3
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.baseLinearDisplayConfigSchema = void 0;
7
+
8
+ var _configuration = require("@jbrowse/core/configuration");
9
+
10
+ var baseLinearDisplayConfigSchema = (0, _configuration.ConfigurationSchema)('BaseLinearDisplay', {
11
+ maxFeatureScreenDensity: {
12
+ type: 'number',
13
+ description: 'maximum features per pixel that is displayed in the view, used if byte size estimates not available',
14
+ defaultValue: 0.3
15
+ },
16
+ fetchSizeLimit: {
17
+ type: 'number',
18
+ defaultValue: 1000000,
19
+ description: "maximum data to attempt to download for a given track, used if adapter doesn't specify one"
20
+ }
21
+ }, {
22
+ explicitIdentifier: 'displayId'
23
+ });
24
+ exports.baseLinearDisplayConfigSchema = baseLinearDisplayConfigSchema;
@@ -0,0 +1,328 @@
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
+ exports.renderBlockData = renderBlockData;
10
+
11
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
+
13
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
+
15
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
16
+
17
+ var _mobxStateTree = require("mobx-state-tree");
18
+
19
+ var _configuration = require("@jbrowse/core/configuration");
20
+
21
+ var _util = require("@jbrowse/core/util");
22
+
23
+ var _mst = require("@jbrowse/core/util/types/mst");
24
+
25
+ var _types = require("@jbrowse/core/util/types");
26
+
27
+ var _tracks = require("@jbrowse/core/util/tracks");
28
+
29
+ var _ServerSideRenderedBlockContent = _interopRequireDefault(require("../components/ServerSideRenderedBlockContent"));
30
+
31
+ 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; }
32
+
33
+ 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; }
34
+
35
+ // the MST state of a single server-side-rendered block in a display
36
+ var blockState = _mobxStateTree.types.model('BlockState', {
37
+ key: _mobxStateTree.types.string,
38
+ region: _mst.Region,
39
+ reloadFlag: 0,
40
+ isLeftEndOfDisplayedRegion: false,
41
+ isRightEndOfDisplayedRegion: false
42
+ }) // NOTE: all this volatile stuff has to be filled in at once, so that it stays consistent
43
+ ["volatile"](function () {
44
+ return {
45
+ renderInProgress: undefined,
46
+ filled: false,
47
+ reactElement: undefined,
48
+ features: undefined,
49
+ layout: undefined,
50
+ status: '',
51
+ error: undefined,
52
+ message: undefined,
53
+ maxHeightReached: false,
54
+ ReactComponent: _ServerSideRenderedBlockContent["default"],
55
+ renderProps: undefined
56
+ };
57
+ }).actions(function (self) {
58
+ var renderInProgress;
59
+ return {
60
+ doReload: function doReload() {
61
+ self.reloadFlag = self.reloadFlag + 1;
62
+ },
63
+ afterAttach: function afterAttach() {
64
+ var display = (0, _util.getContainingDisplay)(self);
65
+ (0, _util.makeAbortableReaction)(self, renderBlockData, renderBlockEffect, // reaction doesn't expect async here
66
+ {
67
+ name: "".concat(display.id, "/").concat((0, _util.assembleLocString)(self.region), " rendering"),
68
+ delay: display.renderDelay,
69
+ fireImmediately: true
70
+ }, this.setLoading, this.setRendered, this.setError);
71
+ },
72
+ setStatus: function setStatus(message) {
73
+ self.status = message;
74
+ },
75
+ setLoading: function setLoading(abortController) {
76
+ if (renderInProgress !== undefined) {
77
+ if (!renderInProgress.signal.aborted) {
78
+ renderInProgress.abort();
79
+ }
80
+ }
81
+
82
+ self.filled = false;
83
+ self.message = undefined;
84
+ self.reactElement = undefined;
85
+ self.features = undefined;
86
+ self.layout = undefined;
87
+ self.error = undefined;
88
+ self.maxHeightReached = false;
89
+ self.renderProps = undefined;
90
+ renderInProgress = abortController;
91
+ },
92
+ setMessage: function setMessage(messageText) {
93
+ if (renderInProgress && !renderInProgress.signal.aborted) {
94
+ renderInProgress.abort();
95
+ }
96
+
97
+ self.filled = false;
98
+ self.message = messageText;
99
+ self.reactElement = undefined;
100
+ self.features = undefined;
101
+ self.layout = undefined;
102
+ self.error = undefined;
103
+ self.maxHeightReached = false;
104
+ self.renderProps = undefined;
105
+ renderInProgress = undefined;
106
+ },
107
+ setRendered: function setRendered(props) {
108
+ if (!props) {
109
+ return;
110
+ }
111
+
112
+ var reactElement = props.reactElement,
113
+ features = props.features,
114
+ layout = props.layout,
115
+ maxHeightReached = props.maxHeightReached,
116
+ renderProps = props.renderProps;
117
+ self.filled = true;
118
+ self.message = undefined;
119
+ self.reactElement = reactElement;
120
+ self.features = features;
121
+ self.layout = layout;
122
+ self.error = undefined;
123
+ self.maxHeightReached = maxHeightReached;
124
+ self.renderProps = renderProps;
125
+ renderInProgress = undefined;
126
+ },
127
+ setError: function setError(error) {
128
+ console.error(error);
129
+
130
+ if (renderInProgress && !renderInProgress.signal.aborted) {
131
+ renderInProgress.abort();
132
+ } // the rendering failed for some reason
133
+
134
+
135
+ self.filled = false;
136
+ self.message = undefined;
137
+ self.reactElement = undefined;
138
+ self.features = undefined;
139
+ self.layout = undefined;
140
+ self.maxHeightReached = false;
141
+ self.error = error;
142
+ self.renderProps = undefined;
143
+ renderInProgress = undefined;
144
+
145
+ if ((0, _types.isRetryException)(error)) {
146
+ this.reload();
147
+ }
148
+ },
149
+ reload: function reload() {
150
+ self.renderInProgress = undefined;
151
+ self.filled = false;
152
+ self.reactElement = undefined;
153
+ self.features = undefined;
154
+ self.layout = undefined;
155
+ self.error = undefined;
156
+ self.message = undefined;
157
+ self.maxHeightReached = false;
158
+ self.ReactComponent = _ServerSideRenderedBlockContent["default"];
159
+ self.renderProps = undefined;
160
+ (0, _mobxStateTree.getParent)(self, 2).reload();
161
+ },
162
+ beforeDestroy: function beforeDestroy() {
163
+ if (renderInProgress && !renderInProgress.signal.aborted) {
164
+ renderInProgress.abort();
165
+ }
166
+
167
+ var display = (0, _util.getContainingDisplay)(self);
168
+
169
+ var _getSession = (0, _util.getSession)(self),
170
+ rpcManager = _getSession.rpcManager;
171
+
172
+ var rendererType = display.rendererType;
173
+
174
+ var _renderBlockData = renderBlockData((0, _mobxStateTree.cast)(self)),
175
+ renderArgs = _renderBlockData.renderArgs; // renderArgs can be undefined if an error occured in this block
176
+
177
+
178
+ if (renderArgs) {
179
+ rendererType.freeResourcesInClient(rpcManager, JSON.parse(JSON.stringify(renderArgs)))["catch"](function (e) {
180
+ // just console.error if it's something while it's being destroyed
181
+ console.warn('Error while destroying block', e);
182
+ });
183
+ }
184
+ }
185
+ };
186
+ });
187
+
188
+ var _default = blockState;
189
+ exports["default"] = _default;
190
+
191
+ // calls the render worker to render the block content not using a flow for
192
+ // this, because the flow doesn't work with autorun
193
+ function renderBlockData(self, optDisplay) {
194
+ try {
195
+ var display = optDisplay || (0, _util.getContainingDisplay)(self);
196
+
197
+ var _getSession2 = (0, _util.getSession)(display),
198
+ assemblyManager = _getSession2.assemblyManager,
199
+ rpcManager = _getSession2.rpcManager;
200
+
201
+ var adapterConfig = display.adapterConfig,
202
+ rendererType = display.rendererType,
203
+ error = display.error,
204
+ parentTrack = display.parentTrack;
205
+ var assemblyNames = (0, _tracks.getTrackAssemblyNames)(parentTrack);
206
+ var regionAsm = self.region.assemblyName;
207
+
208
+ if (!assemblyNames.includes(regionAsm) && !assemblyNames.find(function (name) {
209
+ var _assemblyManager$get;
210
+
211
+ return (_assemblyManager$get = assemblyManager.get(name)) === null || _assemblyManager$get === void 0 ? void 0 : _assemblyManager$get.hasName(regionAsm);
212
+ })) {
213
+ throw new Error("region assembly (".concat(regionAsm, ") does not match track assemblies (").concat(assemblyNames, ")"));
214
+ }
215
+
216
+ var renderProps = display.renderProps();
217
+ var config = renderProps.config; // This line is to trigger the mobx reaction when the config changes
218
+ // It won't trigger the reaction if it doesn't think we're accessing it
219
+
220
+ (0, _configuration.readConfObject)(config);
221
+ var sessionId = (0, _tracks.getRpcSessionId)(display);
222
+ var cannotBeRenderedReason = display.regionCannotBeRendered(self.region);
223
+ return {
224
+ rendererType: rendererType,
225
+ rpcManager: rpcManager,
226
+ renderProps: renderProps,
227
+ cannotBeRenderedReason: cannotBeRenderedReason,
228
+ displayError: error,
229
+ renderArgs: {
230
+ statusCallback: function statusCallback(message) {
231
+ if ((0, _mobxStateTree.isAlive)(self)) {
232
+ self.setStatus(message);
233
+ }
234
+ },
235
+ assemblyName: self.region.assemblyName,
236
+ regions: [self.region],
237
+ adapterConfig: adapterConfig,
238
+ rendererType: rendererType.name,
239
+ sessionId: sessionId,
240
+ blockKey: self.key,
241
+ reloadFlag: self.reloadFlag,
242
+ timeout: 1000000 // 10000,
243
+
244
+ }
245
+ };
246
+ } catch (e) {
247
+ return {
248
+ displayError: e
249
+ };
250
+ }
251
+ }
252
+
253
+ function renderBlockEffect(_x, _x2, _x3) {
254
+ return _renderBlockEffect.apply(this, arguments);
255
+ }
256
+
257
+ function _renderBlockEffect() {
258
+ _renderBlockEffect = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(props, signal, self) {
259
+ var _ref, rendererType, renderProps, rpcManager, renderArgs, cannotBeRenderedReason, displayError, _yield$rendererType$r, reactElement, features, layout, maxHeightReached;
260
+
261
+ return _regenerator["default"].wrap(function _callee$(_context) {
262
+ while (1) {
263
+ switch (_context.prev = _context.next) {
264
+ case 0:
265
+ _ref = props, rendererType = _ref.rendererType, renderProps = _ref.renderProps, rpcManager = _ref.rpcManager, renderArgs = _ref.renderArgs, cannotBeRenderedReason = _ref.cannotBeRenderedReason, displayError = _ref.displayError;
266
+
267
+ if ((0, _mobxStateTree.isAlive)(self)) {
268
+ _context.next = 3;
269
+ break;
270
+ }
271
+
272
+ return _context.abrupt("return", undefined);
273
+
274
+ case 3:
275
+ if (!displayError) {
276
+ _context.next = 6;
277
+ break;
278
+ }
279
+
280
+ self.setError(displayError);
281
+ return _context.abrupt("return", undefined);
282
+
283
+ case 6:
284
+ if (!cannotBeRenderedReason) {
285
+ _context.next = 9;
286
+ break;
287
+ }
288
+
289
+ self.setMessage(cannotBeRenderedReason);
290
+ return _context.abrupt("return", undefined);
291
+
292
+ case 9:
293
+ if (!renderProps.notReady) {
294
+ _context.next = 11;
295
+ break;
296
+ }
297
+
298
+ return _context.abrupt("return", undefined);
299
+
300
+ case 11:
301
+ _context.next = 13;
302
+ return rendererType.renderInClient(rpcManager, _objectSpread(_objectSpread(_objectSpread({}, renderArgs), renderProps), {}, {
303
+ viewParams: (0, _util.getViewParams)(self),
304
+ signal: signal
305
+ }));
306
+
307
+ case 13:
308
+ _yield$rendererType$r = _context.sent;
309
+ reactElement = _yield$rendererType$r.reactElement;
310
+ features = _yield$rendererType$r.features;
311
+ layout = _yield$rendererType$r.layout;
312
+ maxHeightReached = _yield$rendererType$r.maxHeightReached;
313
+ return _context.abrupt("return", {
314
+ reactElement: reactElement,
315
+ features: features,
316
+ layout: layout,
317
+ maxHeightReached: maxHeightReached
318
+ });
319
+
320
+ case 19:
321
+ case "end":
322
+ return _context.stop();
323
+ }
324
+ }
325
+ }, _callee);
326
+ }));
327
+ return _renderBlockEffect.apply(this, arguments);
328
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configSchemaFactory = configSchemaFactory;
7
+
8
+ var _configuration = require("@jbrowse/core/configuration");
9
+
10
+ var _BaseLinearDisplay = require("../BaseLinearDisplay");
11
+
12
+ function configSchemaFactory(pluginManager) {
13
+ return (0, _configuration.ConfigurationSchema)('LinearBareDisplay', {
14
+ renderer: pluginManager.pluggableConfigSchemaType('renderer')
15
+ }, {
16
+ baseConfiguration: _BaseLinearDisplay.baseLinearDisplayConfigSchema,
17
+ explicitlyTyped: true
18
+ });
19
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "configSchemaFactory", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _configSchema.configSchemaFactory;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "stateModelFactory", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _model.stateModelFactory;
16
+ }
17
+ });
18
+
19
+ var _configSchema = require("./configSchema");
20
+
21
+ var _model = require("./model");
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ var _mobxStateTree = require("mobx-state-tree");
4
+
5
+ var _configuration = require("@jbrowse/core/configuration");
6
+
7
+ var _ = require(".");
8
+
9
+ test('config schema renderer type', function () {
10
+ var stubPluginManager = {
11
+ pluggableConfigSchemaType: function pluggableConfigSchemaType(type) {
12
+ var one = (0, _configuration.ConfigurationSchema)("".concat(type, "_TypeOne"), {}, {
13
+ explicitlyTyped: true
14
+ });
15
+ var two = (0, _configuration.ConfigurationSchema)("".concat(type, "_TypeTwo"), {}, {
16
+ explicitlyTyped: true
17
+ });
18
+ var three = (0, _configuration.ConfigurationSchema)("".concat(type, "_TypeThree"), {}, {
19
+ explicitlyTyped: true
20
+ });
21
+ return _mobxStateTree.types.union(one, two, three);
22
+ }
23
+ };
24
+ var configSchema = (0, _.configSchemaFactory)(stubPluginManager);
25
+ var instance = configSchema.create({
26
+ type: 'LinearBareDisplay',
27
+ displayId: 'displayId0',
28
+ renderer: {
29
+ type: 'renderer_TypeTwo'
30
+ }
31
+ });
32
+ expect(instance.renderer.type).toBe('renderer_TypeTwo');
33
+ });
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.stateModelFactory = stateModelFactory;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _configurationSchema = require("@jbrowse/core/configuration/configurationSchema");
13
+
14
+ var _tracks = require("@jbrowse/core/util/tracks");
15
+
16
+ var _mobxStateTree = require("mobx-state-tree");
17
+
18
+ var _BaseLinearDisplay = require("../BaseLinearDisplay");
19
+
20
+ 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; }
21
+
22
+ 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; }
23
+
24
+ function stateModelFactory(configSchema) {
25
+ return _mobxStateTree.types.compose('LinearBareDisplay', _BaseLinearDisplay.BaseLinearDisplay, _mobxStateTree.types.model({
26
+ type: _mobxStateTree.types.literal('LinearBareDisplay'),
27
+ configuration: (0, _configurationSchema.ConfigurationReference)(configSchema)
28
+ })).views(function (self) {
29
+ var superRenderProps = self.renderProps;
30
+ return {
31
+ renderProps: function renderProps() {
32
+ return _objectSpread(_objectSpread(_objectSpread({}, superRenderProps()), (0, _tracks.getParentRenderProps)(self)), {}, {
33
+ rpcDriverName: self.rpcDriverName,
34
+ config: self.configuration.renderer
35
+ });
36
+ },
37
+
38
+ get rendererTypeName() {
39
+ return self.configuration.renderer.type;
40
+ }
41
+
42
+ };
43
+ });
44
+ }
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = void 0;
11
+
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
14
+ var _react = _interopRequireWildcard(require("react"));
15
+
16
+ var _mobxReact = require("mobx-react");
17
+
18
+ var _core = require("@material-ui/core");
19
+
20
+ var _Close = _interopRequireDefault(require("@material-ui/icons/Close"));
21
+
22
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
+
24
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
+
26
+ var useStyles = (0, _core.makeStyles)(function (theme) {
27
+ return {
28
+ root: {
29
+ width: 500
30
+ },
31
+ closeButton: {
32
+ position: 'absolute',
33
+ right: theme.spacing(1),
34
+ top: theme.spacing(1),
35
+ color: theme.palette.grey[500]
36
+ },
37
+ field: {
38
+ margin: theme.spacing(2)
39
+ }
40
+ };
41
+ });
42
+
43
+ function SetMaxHeightDlg(props) {
44
+ var model = props.model,
45
+ handleClose = props.handleClose;
46
+ var classes = useStyles();
47
+ var _model$maxHeight = model.maxHeight,
48
+ maxHeight = _model$maxHeight === void 0 ? '' : _model$maxHeight;
49
+
50
+ var _useState = (0, _react.useState)("".concat(maxHeight)),
51
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
52
+ max = _useState2[0],
53
+ setMax = _useState2[1];
54
+
55
+ return /*#__PURE__*/_react["default"].createElement(_core.Dialog, {
56
+ open: true,
57
+ onClose: handleClose,
58
+ "aria-labelledby": "alert-dialog-title",
59
+ "aria-describedby": "alert-dialog-description"
60
+ }, /*#__PURE__*/_react["default"].createElement(_core.DialogTitle, {
61
+ id: "alert-dialog-title"
62
+ }, "Filter options", /*#__PURE__*/_react["default"].createElement(_core.IconButton, {
63
+ "aria-label": "close",
64
+ className: classes.closeButton,
65
+ onClick: handleClose
66
+ }, /*#__PURE__*/_react["default"].createElement(_Close["default"], null))), /*#__PURE__*/_react["default"].createElement(_core.DialogContent, {
67
+ className: classes.root
68
+ }, /*#__PURE__*/_react["default"].createElement(_core.Typography, null, "Set max height for the track. For example, you can increase this if the layout says \"Max height reached\""), /*#__PURE__*/_react["default"].createElement(_core.TextField, {
69
+ value: max,
70
+ onChange: function onChange(event) {
71
+ return setMax(event.target.value);
72
+ },
73
+ placeholder: "Enter max score"
74
+ }), /*#__PURE__*/_react["default"].createElement(_core.DialogActions, null, /*#__PURE__*/_react["default"].createElement(_core.Button, {
75
+ variant: "contained",
76
+ color: "primary",
77
+ type: "submit",
78
+ autoFocus: true,
79
+ onClick: function onClick() {
80
+ model.setMaxHeight(max !== '' && !Number.isNaN(+max) ? +max : undefined);
81
+ handleClose();
82
+ }
83
+ }, "Submit"), /*#__PURE__*/_react["default"].createElement(_core.Button, {
84
+ variant: "contained",
85
+ color: "secondary",
86
+ onClick: function onClick() {
87
+ return handleClose();
88
+ }
89
+ }, "Cancel"))));
90
+ }
91
+
92
+ var _default = (0, _mobxReact.observer)(SetMaxHeightDlg);
93
+
94
+ exports["default"] = _default;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = configSchemaFactory;
7
+
8
+ var _configuration = require("@jbrowse/core/configuration");
9
+
10
+ var _BaseLinearDisplay = require("../BaseLinearDisplay");
11
+
12
+ function configSchemaFactory(pluginManager) {
13
+ return (0, _configuration.ConfigurationSchema)('LinearBasicDisplay', {
14
+ mouseover: {
15
+ type: 'string',
16
+ description: 'what to display in a given mouseover',
17
+ defaultValue: "jexl:get(feature,'name')",
18
+ contextVariable: ['feature']
19
+ },
20
+ renderer: pluginManager.pluggableConfigSchemaType('renderer')
21
+ }, {
22
+ baseConfiguration: _BaseLinearDisplay.baseLinearDisplayConfigSchema,
23
+ explicitlyTyped: true
24
+ });
25
+ }
@@ -0,0 +1,23 @@
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, "configSchema", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _configSchema["default"];
12
+ }
13
+ });
14
+ Object.defineProperty(exports, "modelFactory", {
15
+ enumerable: true,
16
+ get: function get() {
17
+ return _model["default"];
18
+ }
19
+ });
20
+
21
+ var _model = _interopRequireDefault(require("./model"));
22
+
23
+ var _configSchema = _interopRequireDefault(require("./configSchema"));