@jbrowse/plugin-linear-genome-view 1.6.9 → 1.7.3

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 (111) hide show
  1. package/dist/BaseLinearDisplay/components/BaseLinearDisplay.d.ts +13 -13
  2. package/dist/BaseLinearDisplay/components/BaseLinearDisplay.js +232 -0
  3. package/dist/BaseLinearDisplay/components/Block.d.ts +15 -15
  4. package/dist/BaseLinearDisplay/components/Block.js +86 -0
  5. package/dist/BaseLinearDisplay/components/LinearBlocks.d.ts +12 -12
  6. package/dist/BaseLinearDisplay/components/LinearBlocks.js +110 -0
  7. package/dist/BaseLinearDisplay/components/ServerSideRenderedBlockContent.d.ts +4 -4
  8. package/dist/BaseLinearDisplay/components/ServerSideRenderedBlockContent.js +192 -0
  9. package/dist/BaseLinearDisplay/index.d.ts +5 -5
  10. package/dist/BaseLinearDisplay/index.js +41 -0
  11. package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.d.ts +227 -230
  12. package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.js +763 -0
  13. package/dist/BaseLinearDisplay/models/baseLinearDisplayConfigSchema.d.ts +1 -1
  14. package/dist/BaseLinearDisplay/models/baseLinearDisplayConfigSchema.js +24 -0
  15. package/dist/BaseLinearDisplay/models/serverSideRenderedBlock.d.ts +96 -96
  16. package/dist/BaseLinearDisplay/models/serverSideRenderedBlock.js +328 -0
  17. package/dist/LinearBareDisplay/configSchema.d.ts +2 -2
  18. package/dist/LinearBareDisplay/configSchema.js +19 -0
  19. package/dist/LinearBareDisplay/index.d.ts +2 -2
  20. package/dist/LinearBareDisplay/index.js +21 -0
  21. package/dist/LinearBareDisplay/index.test.js +33 -0
  22. package/dist/LinearBareDisplay/model.d.ts +192 -192
  23. package/dist/LinearBareDisplay/model.js +44 -0
  24. package/dist/LinearBasicDisplay/components/SetMaxHeight.d.ts +10 -10
  25. package/dist/LinearBasicDisplay/components/SetMaxHeight.js +94 -0
  26. package/dist/LinearBasicDisplay/configSchema.d.ts +2 -2
  27. package/dist/LinearBasicDisplay/configSchema.js +25 -0
  28. package/dist/LinearBasicDisplay/index.d.ts +2 -2
  29. package/dist/LinearBasicDisplay/index.js +23 -0
  30. package/dist/LinearBasicDisplay/model.d.ts +213 -213
  31. package/dist/LinearBasicDisplay/model.js +162 -0
  32. package/dist/LinearGenomeView/components/CenterLine.d.ts +14 -14
  33. package/dist/LinearGenomeView/components/CenterLine.js +80 -0
  34. package/dist/LinearGenomeView/components/ExportSvgDialog.d.ts +6 -6
  35. package/dist/LinearGenomeView/components/ExportSvgDialog.js +137 -0
  36. package/dist/LinearGenomeView/components/Header.d.ts +7 -7
  37. package/dist/LinearGenomeView/components/Header.js +144 -0
  38. package/dist/LinearGenomeView/components/HelpDialog.d.ts +5 -5
  39. package/dist/LinearGenomeView/components/HelpDialog.js +48 -0
  40. package/dist/LinearGenomeView/components/ImportForm.d.ts +7 -7
  41. package/dist/LinearGenomeView/components/ImportForm.js +330 -0
  42. package/dist/LinearGenomeView/components/LinearGenomeView.d.ts +7 -7
  43. package/dist/LinearGenomeView/components/LinearGenomeView.js +129 -0
  44. package/dist/LinearGenomeView/components/LinearGenomeView.test.js +234 -0
  45. package/dist/LinearGenomeView/components/LinearGenomeViewSvg.d.ts +4 -4
  46. package/dist/LinearGenomeView/components/LinearGenomeViewSvg.js +349 -0
  47. package/dist/LinearGenomeView/components/MiniControls.d.ts +6 -6
  48. package/dist/LinearGenomeView/components/MiniControls.js +83 -0
  49. package/dist/LinearGenomeView/components/OverviewRubberBand.d.ts +22 -22
  50. package/dist/LinearGenomeView/components/OverviewRubberBand.js +310 -0
  51. package/dist/LinearGenomeView/components/OverviewScaleBar.d.ts +132 -124
  52. package/dist/LinearGenomeView/components/OverviewScaleBar.js +403 -0
  53. package/dist/LinearGenomeView/components/RefNameAutocomplete.d.ts +21 -21
  54. package/dist/LinearGenomeView/components/RefNameAutocomplete.js +331 -0
  55. package/dist/LinearGenomeView/components/RubberBand.d.ts +9 -20
  56. package/dist/LinearGenomeView/components/RubberBand.js +309 -0
  57. package/dist/LinearGenomeView/components/Ruler.d.ts +27 -27
  58. package/dist/LinearGenomeView/components/Ruler.js +101 -0
  59. package/dist/LinearGenomeView/components/ScaleBar.d.ts +401 -401
  60. package/dist/LinearGenomeView/components/ScaleBar.js +184 -0
  61. package/dist/LinearGenomeView/components/ScaleBar.test.js +180 -0
  62. package/dist/LinearGenomeView/components/SearchBox.d.ts +8 -8
  63. package/dist/LinearGenomeView/components/SearchBox.js +201 -0
  64. package/dist/LinearGenomeView/components/SearchResultsDialog.d.ts +8 -8
  65. package/dist/LinearGenomeView/components/SearchResultsDialog.js +159 -0
  66. package/dist/LinearGenomeView/components/SequenceDialog.d.ts +8 -8
  67. package/dist/LinearGenomeView/components/SequenceDialog.js +304 -0
  68. package/dist/LinearGenomeView/components/TrackContainer.d.ts +9 -9
  69. package/dist/LinearGenomeView/components/TrackContainer.js +179 -0
  70. package/dist/LinearGenomeView/components/TrackLabel.d.ts +44 -44
  71. package/dist/LinearGenomeView/components/TrackLabel.js +165 -0
  72. package/dist/LinearGenomeView/components/TracksContainer.d.ts +10 -10
  73. package/dist/LinearGenomeView/components/TracksContainer.js +214 -0
  74. package/dist/LinearGenomeView/components/VerticalGuides.d.ts +9 -9
  75. package/dist/LinearGenomeView/components/VerticalGuides.js +116 -0
  76. package/dist/LinearGenomeView/components/ZoomControls.d.ts +7 -7
  77. package/dist/LinearGenomeView/components/ZoomControls.js +92 -0
  78. package/dist/LinearGenomeView/components/util.d.ts +2 -2
  79. package/dist/LinearGenomeView/components/util.js +16 -0
  80. package/dist/LinearGenomeView/index.d.ts +292 -292
  81. package/dist/LinearGenomeView/index.js +1418 -0
  82. package/dist/LinearGenomeView/index.test.js +1170 -0
  83. package/dist/LinearGenomeView/util.d.ts +14 -14
  84. package/dist/LinearGenomeView/util.js +93 -0
  85. package/dist/LinearGenomeView/util.test.js +78 -0
  86. package/dist/index.d.ts +565 -565
  87. package/dist/index.js +293 -6
  88. package/package.json +6 -9
  89. package/src/BaseLinearDisplay/models/BaseLinearDisplayModel.tsx +2 -0
  90. package/src/BaseLinearDisplay/models/serverSideRenderedBlock.ts +10 -8
  91. package/src/LinearBasicDisplay/components/SetMaxHeight.tsx +1 -1
  92. package/src/LinearBasicDisplay/model.ts +17 -18
  93. package/src/LinearGenomeView/components/Header.tsx +1 -1
  94. package/src/LinearGenomeView/components/ImportForm.tsx +10 -4
  95. package/src/LinearGenomeView/components/LinearGenomeView.test.js +1 -0
  96. package/src/LinearGenomeView/components/OverviewScaleBar.tsx +2 -2
  97. package/src/LinearGenomeView/components/RubberBand.tsx +14 -24
  98. package/src/LinearGenomeView/components/ScaleBar.test.tsx +1 -0
  99. package/src/LinearGenomeView/components/ScaleBar.tsx +3 -6
  100. package/src/LinearGenomeView/components/SequenceDialog.tsx +1 -1
  101. package/src/LinearGenomeView/components/TrackLabel.tsx +1 -1
  102. package/src/LinearGenomeView/components/__snapshots__/LinearGenomeView.test.js.snap +0 -4
  103. package/src/LinearGenomeView/index.tsx +2 -3
  104. package/dist/LinearBareDisplay/index.test.d.ts +0 -1
  105. package/dist/LinearGenomeView/components/LinearGenomeView.test.d.ts +0 -1
  106. package/dist/plugin-linear-genome-view.cjs.development.js +0 -8121
  107. package/dist/plugin-linear-genome-view.cjs.development.js.map +0 -1
  108. package/dist/plugin-linear-genome-view.cjs.production.min.js +0 -2
  109. package/dist/plugin-linear-genome-view.cjs.production.min.js.map +0 -1
  110. package/dist/plugin-linear-genome-view.esm.js +0 -8105
  111. package/dist/plugin-linear-genome-view.esm.js.map +0 -1
@@ -1 +1 @@
1
- export declare const baseLinearDisplayConfigSchema: import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
1
+ export declare const baseLinearDisplayConfigSchema: import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
@@ -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;
@@ -1,96 +1,96 @@
1
- import { Instance } from 'mobx-state-tree';
2
- import { Feature } from '@jbrowse/core/util/simpleFeature';
3
- import { AbstractDisplayModel } from '@jbrowse/core/util/types';
4
- import React from 'react';
5
- declare const blockState: import("mobx-state-tree").IModelType<{
6
- key: import("mobx-state-tree").ISimpleType<string>;
7
- region: import("mobx-state-tree").IModelType<{
8
- refName: import("mobx-state-tree").ISimpleType<string>;
9
- start: import("mobx-state-tree").ISimpleType<number>;
10
- end: import("mobx-state-tree").ISimpleType<number>;
11
- reversed: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
12
- } & {
13
- assemblyName: import("mobx-state-tree").ISimpleType<string>;
14
- }, {
15
- setRefName(newRefName: string): void;
16
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
17
- reloadFlag: import("mobx-state-tree").IType<number | undefined, number, number>;
18
- isLeftEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
19
- isRightEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
20
- }, {
21
- renderInProgress: AbortController | undefined;
22
- filled: boolean;
23
- reactElement: React.ReactElement<any, string | ((props: any) => React.ReactElement<any, any> | null) | (new (props: any) => React.Component<any, any, any>)> | undefined;
24
- features: Map<string, Feature> | undefined;
25
- layout: any;
26
- status: string;
27
- error: unknown;
28
- message: string | undefined;
29
- maxHeightReached: boolean;
30
- ReactComponent: ({ model, }: {
31
- model: any;
32
- }) => any;
33
- renderProps: any;
34
- } & {
35
- doReload(): void;
36
- afterAttach(): void;
37
- setStatus(message: string): void;
38
- setLoading(abortController: AbortController): void;
39
- setMessage(messageText: string): void;
40
- setRendered(props: {
41
- reactElement: React.ReactElement;
42
- features: Map<string, Feature>;
43
- layout: any;
44
- maxHeightReached: boolean;
45
- renderProps: any;
46
- } | undefined): void;
47
- setError(error: Error | unknown): void;
48
- reload(): void;
49
- beforeDestroy(): void;
50
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
51
- export default blockState;
52
- export declare type BlockStateModel = typeof blockState;
53
- export declare type BlockModel = Instance<BlockStateModel>;
54
- export declare function renderBlockData(self: Instance<BlockStateModel>, optDisplay?: AbstractDisplayModel): {
55
- rendererType: any;
56
- rpcManager: import("@jbrowse/core/rpc/RpcManager").default;
57
- renderProps: any;
58
- cannotBeRenderedReason: any;
59
- displayError: any;
60
- renderArgs: {
61
- statusCallback: (message: string) => void;
62
- assemblyName: string;
63
- regions: (import("mobx-state-tree").ModelInstanceTypeProps<{
64
- refName: import("mobx-state-tree").ISimpleType<string>;
65
- start: import("mobx-state-tree").ISimpleType<number>;
66
- end: import("mobx-state-tree").ISimpleType<number>;
67
- reversed: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
68
- } & {
69
- assemblyName: import("mobx-state-tree").ISimpleType<string>;
70
- }> & {
71
- setRefName(newRefName: string): void;
72
- } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
73
- refName: import("mobx-state-tree").ISimpleType<string>;
74
- start: import("mobx-state-tree").ISimpleType<number>;
75
- end: import("mobx-state-tree").ISimpleType<number>;
76
- reversed: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
77
- } & {
78
- assemblyName: import("mobx-state-tree").ISimpleType<string>;
79
- }, {
80
- setRefName(newRefName: string): void;
81
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>)[];
82
- adapterConfig: any;
83
- rendererType: any;
84
- sessionId: string;
85
- blockKey: string;
86
- reloadFlag: number;
87
- timeout: number;
88
- };
89
- } | {
90
- displayError: any;
91
- rendererType?: undefined;
92
- rpcManager?: undefined;
93
- renderProps?: undefined;
94
- cannotBeRenderedReason?: undefined;
95
- renderArgs?: undefined;
96
- };
1
+ import React from 'react';
2
+ import { Instance } from 'mobx-state-tree';
3
+ import { Feature } from '@jbrowse/core/util';
4
+ import { AbstractDisplayModel } from '@jbrowse/core/util/types';
5
+ declare const blockState: import("mobx-state-tree").IModelType<{
6
+ key: import("mobx-state-tree").ISimpleType<string>;
7
+ region: import("mobx-state-tree").IModelType<{
8
+ refName: import("mobx-state-tree").ISimpleType<string>;
9
+ start: import("mobx-state-tree").ISimpleType<number>;
10
+ end: import("mobx-state-tree").ISimpleType<number>;
11
+ reversed: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
12
+ } & {
13
+ assemblyName: import("mobx-state-tree").ISimpleType<string>;
14
+ }, {
15
+ setRefName(newRefName: string): void;
16
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
17
+ reloadFlag: import("mobx-state-tree").IType<number | undefined, number, number>;
18
+ isLeftEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
19
+ isRightEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
20
+ }, {
21
+ renderInProgress: AbortController | undefined;
22
+ filled: boolean;
23
+ reactElement: React.ReactElement<any, string | React.JSXElementConstructor<any>> | undefined;
24
+ features: Map<string, Feature> | undefined;
25
+ layout: any;
26
+ status: string;
27
+ error: unknown;
28
+ message: string | undefined;
29
+ maxHeightReached: boolean;
30
+ ReactComponent: ({ model, }: {
31
+ model: any;
32
+ }) => any;
33
+ renderProps: any;
34
+ } & {
35
+ doReload(): void;
36
+ afterAttach(): void;
37
+ setStatus(message: string): void;
38
+ setLoading(abortController: AbortController): void;
39
+ setMessage(messageText: string): void;
40
+ setRendered(props: {
41
+ reactElement: React.ReactElement;
42
+ features: Map<string, Feature>;
43
+ layout: any;
44
+ maxHeightReached: boolean;
45
+ renderProps: any;
46
+ } | undefined): void;
47
+ setError(error: Error | unknown): void;
48
+ reload(): void;
49
+ beforeDestroy(): void;
50
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
51
+ export default blockState;
52
+ export declare type BlockStateModel = typeof blockState;
53
+ export declare type BlockModel = Instance<BlockStateModel>;
54
+ export declare function renderBlockData(self: Instance<BlockStateModel>, optDisplay?: AbstractDisplayModel): {
55
+ rendererType: any;
56
+ rpcManager: import("@jbrowse/core/rpc/RpcManager").default;
57
+ renderProps: any;
58
+ cannotBeRenderedReason: any;
59
+ displayError: any;
60
+ renderArgs: {
61
+ statusCallback: (message: string) => void;
62
+ assemblyName: string;
63
+ regions: (import("mobx-state-tree").ModelInstanceTypeProps<{
64
+ refName: import("mobx-state-tree").ISimpleType<string>;
65
+ start: import("mobx-state-tree").ISimpleType<number>;
66
+ end: import("mobx-state-tree").ISimpleType<number>;
67
+ reversed: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
68
+ } & {
69
+ assemblyName: import("mobx-state-tree").ISimpleType<string>;
70
+ }> & {
71
+ setRefName(newRefName: string): void;
72
+ } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
73
+ refName: import("mobx-state-tree").ISimpleType<string>;
74
+ start: import("mobx-state-tree").ISimpleType<number>;
75
+ end: import("mobx-state-tree").ISimpleType<number>;
76
+ reversed: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
77
+ } & {
78
+ assemblyName: import("mobx-state-tree").ISimpleType<string>;
79
+ }, {
80
+ setRefName(newRefName: string): void;
81
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>)[];
82
+ adapterConfig: any;
83
+ rendererType: any;
84
+ sessionId: string;
85
+ blockKey: string;
86
+ reloadFlag: number;
87
+ timeout: number;
88
+ };
89
+ } | {
90
+ displayError: unknown;
91
+ rendererType?: undefined;
92
+ rpcManager?: undefined;
93
+ renderProps?: undefined;
94
+ cannotBeRenderedReason?: undefined;
95
+ renderArgs?: undefined;
96
+ };
@@ -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
+ }
@@ -1,2 +1,2 @@
1
- import PluginManager from '@jbrowse/core/PluginManager';
2
- export declare function configSchemaFactory(pluginManager: PluginManager): import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
1
+ import PluginManager from '@jbrowse/core/PluginManager';
2
+ export declare function configSchemaFactory(pluginManager: PluginManager): import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
@@ -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
+ }
@@ -1,2 +1,2 @@
1
- export { configSchemaFactory } from './configSchema';
2
- export { stateModelFactory } from './model';
1
+ export { configSchemaFactory } from './configSchema';
2
+ export { stateModelFactory } from './model';
@@ -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
+ });