@jbrowse/plugin-linear-genome-view 1.6.7 → 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 (74) 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.d.ts +7 -7
  13. package/dist/LinearBareDisplay/model.js +44 -0
  14. package/dist/LinearBasicDisplay/components/SetMaxHeight.js +94 -0
  15. package/dist/LinearBasicDisplay/configSchema.js +25 -0
  16. package/dist/LinearBasicDisplay/index.js +23 -0
  17. package/dist/LinearBasicDisplay/model.d.ts +7 -7
  18. package/dist/LinearBasicDisplay/model.js +162 -0
  19. package/dist/LinearGenomeView/components/CenterLine.js +80 -0
  20. package/dist/LinearGenomeView/components/ExportSvgDialog.js +137 -0
  21. package/dist/LinearGenomeView/components/Header.js +144 -0
  22. package/dist/LinearGenomeView/components/HelpDialog.js +48 -0
  23. package/dist/LinearGenomeView/components/ImportForm.js +330 -0
  24. package/dist/LinearGenomeView/components/LinearGenomeView.js +129 -0
  25. package/dist/LinearGenomeView/components/LinearGenomeView.test.js +234 -0
  26. package/dist/LinearGenomeView/components/LinearGenomeViewSvg.js +349 -0
  27. package/dist/LinearGenomeView/components/MiniControls.js +83 -0
  28. package/dist/LinearGenomeView/components/OverviewRubberBand.js +310 -0
  29. package/dist/LinearGenomeView/components/OverviewScaleBar.d.ts +6 -6
  30. package/dist/LinearGenomeView/components/OverviewScaleBar.js +403 -0
  31. package/dist/LinearGenomeView/components/RefNameAutocomplete.js +331 -0
  32. package/dist/LinearGenomeView/components/RubberBand.js +309 -0
  33. package/dist/LinearGenomeView/components/Ruler.js +101 -0
  34. package/dist/LinearGenomeView/components/ScaleBar.js +184 -0
  35. package/dist/LinearGenomeView/components/ScaleBar.test.js +180 -0
  36. package/dist/LinearGenomeView/components/SearchBox.js +201 -0
  37. package/dist/LinearGenomeView/components/SearchResultsDialog.js +159 -0
  38. package/dist/LinearGenomeView/components/SequenceDialog.js +304 -0
  39. package/dist/LinearGenomeView/components/TrackContainer.js +179 -0
  40. package/dist/LinearGenomeView/components/TrackLabel.js +165 -0
  41. package/dist/LinearGenomeView/components/TracksContainer.js +214 -0
  42. package/dist/LinearGenomeView/components/VerticalGuides.js +116 -0
  43. package/dist/LinearGenomeView/components/ZoomControls.js +92 -0
  44. package/dist/LinearGenomeView/components/util.js +16 -0
  45. package/dist/LinearGenomeView/index.js +1418 -0
  46. package/dist/LinearGenomeView/index.test.js +1170 -0
  47. package/dist/LinearGenomeView/util.js +93 -0
  48. package/dist/LinearGenomeView/util.test.js +78 -0
  49. package/dist/index.d.ts +21 -21
  50. package/dist/index.js +293 -6
  51. package/dist/plugin-linear-genome-view.cjs.development.js +37 -22
  52. package/dist/plugin-linear-genome-view.cjs.development.js.map +1 -1
  53. package/dist/plugin-linear-genome-view.cjs.production.min.js +1 -1
  54. package/dist/plugin-linear-genome-view.cjs.production.min.js.map +1 -1
  55. package/dist/plugin-linear-genome-view.esm.js +37 -22
  56. package/dist/plugin-linear-genome-view.esm.js.map +1 -1
  57. package/package.json +4 -8
  58. package/src/BaseLinearDisplay/components/BaseLinearDisplay.tsx +9 -12
  59. package/src/BaseLinearDisplay/models/BaseLinearDisplayModel.tsx +2 -0
  60. package/src/BaseLinearDisplay/models/serverSideRenderedBlock.ts +10 -8
  61. package/src/LinearBasicDisplay/components/SetMaxHeight.tsx +21 -12
  62. package/src/LinearBasicDisplay/model.ts +17 -18
  63. package/src/LinearGenomeView/components/Header.tsx +1 -1
  64. package/src/LinearGenomeView/components/ImportForm.tsx +10 -4
  65. package/src/LinearGenomeView/components/LinearGenomeView.test.js +1 -0
  66. package/src/LinearGenomeView/components/OverviewScaleBar.tsx +2 -2
  67. package/src/LinearGenomeView/components/RubberBand.tsx +14 -24
  68. package/src/LinearGenomeView/components/ScaleBar.test.tsx +1 -0
  69. package/src/LinearGenomeView/components/ScaleBar.tsx +3 -6
  70. package/src/LinearGenomeView/components/SequenceDialog.tsx +1 -1
  71. package/src/LinearGenomeView/components/TrackContainer.tsx +31 -24
  72. package/src/LinearGenomeView/components/TrackLabel.tsx +1 -1
  73. package/src/LinearGenomeView/components/__snapshots__/LinearGenomeView.test.js.snap +23 -47
  74. 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
+ });
@@ -25,7 +25,7 @@ export declare function stateModelFactory(configSchema: AnyConfigurationSchemaTy
25
25
  renderInProgress: AbortController | undefined;
26
26
  filled: boolean;
27
27
  reactElement: import("react").ReactElement<any, string | ((props: any) => import("react").ReactElement<any, any> | null) | (new (props: any) => import("react").Component<any, any, any>)> | undefined;
28
- features: Map<string, import("@jbrowse/core/util/simpleFeature").Feature> | undefined;
28
+ features: Map<string, import("@jbrowse/core/util").Feature> | undefined;
29
29
  layout: any;
30
30
  status: string;
31
31
  error: unknown;
@@ -43,7 +43,7 @@ export declare function stateModelFactory(configSchema: AnyConfigurationSchemaTy
43
43
  setMessage(messageText: string): void;
44
44
  setRendered(props: {
45
45
  reactElement: import("react").ReactElement<any, string | ((props: any) => import("react").ReactElement<any, any> | null) | (new (props: any) => import("react").Component<any, any, any>)>;
46
- features: Map<string, import("@jbrowse/core/util/simpleFeature").Feature>;
46
+ features: Map<string, import("@jbrowse/core/util").Feature>;
47
47
  layout: any;
48
48
  maxHeightReached: boolean;
49
49
  renderProps: any;
@@ -113,7 +113,7 @@ export declare function stateModelFactory(configSchema: AnyConfigurationSchemaTy
113
113
  currBpPerPx: number;
114
114
  message: string;
115
115
  featureIdUnderMouse: string | undefined;
116
- contextMenuFeature: import("@jbrowse/core/util/simpleFeature").Feature | undefined;
116
+ contextMenuFeature: import("@jbrowse/core/util").Feature | undefined;
117
117
  scrollTop: number;
118
118
  estimatedRegionStatsP: Promise<import("@jbrowse/core/data_adapters/BaseAdapter").Stats> | undefined;
119
119
  estimatedRegionStats: import("@jbrowse/core/data_adapters/BaseAdapter").Stats | undefined;
@@ -126,8 +126,8 @@ export declare function stateModelFactory(configSchema: AnyConfigurationSchemaTy
126
126
  readonly selectedFeatureId: string | undefined;
127
127
  readonly DisplayMessageComponent: import("react").FC<any> | undefined;
128
128
  } & {
129
- readonly features: import("@jbrowse/core/util/compositeMap").default<string, import("@jbrowse/core/util/simpleFeature").Feature>;
130
- readonly featureUnderMouse: import("@jbrowse/core/util/simpleFeature").Feature | undefined;
129
+ readonly features: import("@jbrowse/core/util/compositeMap").default<string, import("@jbrowse/core/util").Feature>;
130
+ readonly featureUnderMouse: import("@jbrowse/core/util").Feature | undefined;
131
131
  getFeatureOverlapping(blockKey: string, x: number, y: number): any;
132
132
  getFeatureByID(blockKey: string, id: string): [number, number, number, number] | undefined;
133
133
  searchFeatureByID(id: string): [number, number, number, number] | undefined;
@@ -154,11 +154,11 @@ export declare function stateModelFactory(configSchema: AnyConfigurationSchemaTy
154
154
  addBlock(key: string, block: import("@jbrowse/core/util/blockTypes").BaseBlock): void;
155
155
  setCurrBpPerPx(n: number): void;
156
156
  deleteBlock(key: string): void;
157
- selectFeature(feature: import("@jbrowse/core/util/simpleFeature").Feature): void;
157
+ selectFeature(feature: import("@jbrowse/core/util").Feature): void;
158
158
  clearFeatureSelection(): void;
159
159
  setFeatureIdUnderMouse(feature: string | undefined): void;
160
160
  reload(): void;
161
- setContextMenuFeature(feature?: import("@jbrowse/core/util/simpleFeature").Feature | undefined): void;
161
+ setContextMenuFeature(feature?: import("@jbrowse/core/util").Feature | undefined): void;
162
162
  } & {
163
163
  readonly regionTooLarge: boolean;
164
164
  readonly regionTooLargeReason: string;
@@ -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"));