@jbrowse/plugin-dotplot-view 2.17.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/dist/ComparativeRenderer/index.d.ts +3 -8
  2. package/dist/ComparativeRenderer/index.js +3 -8
  3. package/dist/DotplotDisplay/components/DotplotDisplay.d.ts +2 -3
  4. package/dist/DotplotDisplay/components/DotplotDisplay.js +7 -12
  5. package/dist/DotplotDisplay/index.d.ts +1 -7
  6. package/dist/DotplotDisplay/index.js +2 -12
  7. package/dist/DotplotDisplay/renderDotplotBlock.d.ts +1 -1
  8. package/dist/DotplotDisplay/renderDotplotBlock.js +3 -9
  9. package/dist/DotplotDisplay/stateModelFactory.d.ts +8 -45
  10. package/dist/DotplotDisplay/stateModelFactory.js +57 -100
  11. package/dist/DotplotReadVsRef/DotplotReadVsRef.d.ts +2 -2
  12. package/dist/DotplotReadVsRef/DotplotReadVsRef.js +13 -14
  13. package/dist/DotplotReadVsRef/index.d.ts +1 -1
  14. package/dist/DotplotReadVsRef/index.js +0 -2
  15. package/dist/DotplotRenderer/ComparativeRenderRpc.d.ts +3 -8
  16. package/dist/DotplotRenderer/ComparativeRenderRpc.js +3 -8
  17. package/dist/DotplotRenderer/DotplotRenderer.d.ts +8 -7
  18. package/dist/DotplotRenderer/DotplotRenderer.js +18 -9
  19. package/dist/DotplotRenderer/components/DotplotRendering.d.ts +2 -3
  20. package/dist/DotplotRenderer/components/DotplotRendering.js +2 -5
  21. package/dist/DotplotRenderer/configSchema.d.ts +0 -21
  22. package/dist/DotplotRenderer/configSchema.js +2 -27
  23. package/dist/DotplotRenderer/drawDotplot.d.ts +3 -3
  24. package/dist/DotplotRenderer/drawDotplot.js +3 -6
  25. package/dist/DotplotRenderer/index.d.ts +1 -1
  26. package/dist/DotplotRenderer/index.js +1 -1
  27. package/dist/DotplotView/1dview.d.ts +2 -77
  28. package/dist/DotplotView/1dview.js +4 -33
  29. package/dist/DotplotView/components/Axes.d.ts +5 -6
  30. package/dist/DotplotView/components/Axes.js +26 -40
  31. package/dist/DotplotView/components/CursorIcon.d.ts +3 -4
  32. package/dist/DotplotView/components/CursorIcon.js +3 -5
  33. package/dist/DotplotView/components/DotplotControls.d.ts +2 -3
  34. package/dist/DotplotView/components/DotplotControls.js +94 -97
  35. package/dist/DotplotView/components/DotplotTooltipClick.d.ts +2 -3
  36. package/dist/DotplotView/components/DotplotTooltipClick.js +3 -7
  37. package/dist/DotplotView/components/DotplotTooltipMouseover.d.ts +2 -3
  38. package/dist/DotplotView/components/DotplotTooltipMouseover.js +4 -8
  39. package/dist/DotplotView/components/DotplotView.d.ts +2 -3
  40. package/dist/DotplotView/components/DotplotView.js +80 -92
  41. package/dist/DotplotView/components/DotplotWarnings.d.ts +2 -3
  42. package/dist/DotplotView/components/DotplotWarnings.js +26 -21
  43. package/dist/DotplotView/components/ExportSvgDialog.d.ts +2 -3
  44. package/dist/DotplotView/components/ExportSvgDialog.js +32 -67
  45. package/dist/DotplotView/components/Grid.d.ts +3 -4
  46. package/dist/DotplotView/components/Grid.js +19 -32
  47. package/dist/DotplotView/components/Header.d.ts +2 -3
  48. package/dist/DotplotView/components/Header.js +4 -23
  49. package/dist/DotplotView/components/ImportForm/ImportSyntenyOpenCustomTrack.d.ts +7 -0
  50. package/dist/DotplotView/components/ImportForm/ImportSyntenyOpenCustomTrack.js +129 -0
  51. package/dist/DotplotView/components/ImportForm/ImportSyntenyTrackSelector.d.ts +4 -6
  52. package/dist/DotplotView/components/ImportForm/ImportSyntenyTrackSelector.js +17 -48
  53. package/dist/DotplotView/components/ImportForm/TrackSelector.d.ts +7 -0
  54. package/dist/DotplotView/components/ImportForm/TrackSelector.js +23 -0
  55. package/dist/DotplotView/components/ImportForm/getAdapter.d.ts +117 -0
  56. package/dist/DotplotView/components/ImportForm/getAdapter.js +68 -0
  57. package/dist/DotplotView/components/ImportForm/index.d.ts +3 -4
  58. package/dist/DotplotView/components/ImportForm/index.js +47 -97
  59. package/dist/DotplotView/components/ImportForm/util.js +1 -3
  60. package/dist/DotplotView/components/PanButtons.d.ts +2 -3
  61. package/dist/DotplotView/components/PanButtons.js +17 -36
  62. package/dist/DotplotView/components/WarningDialog.d.ts +7 -7
  63. package/dist/DotplotView/components/WarningDialog.js +12 -15
  64. package/dist/DotplotView/components/util.d.ts +2 -7
  65. package/dist/DotplotView/components/util.js +0 -5
  66. package/dist/DotplotView/index.d.ts +1 -1
  67. package/dist/DotplotView/index.js +17 -8
  68. package/dist/DotplotView/model.d.ts +11 -133
  69. package/dist/DotplotView/model.js +46 -222
  70. package/dist/DotplotView/svgcomponents/SVGBackground.d.ts +1 -2
  71. package/dist/DotplotView/svgcomponents/SVGBackground.js +3 -6
  72. package/dist/DotplotView/svgcomponents/SVGDotplotView.d.ts +1 -1
  73. package/dist/DotplotView/svgcomponents/SVGDotplotView.js +6 -24
  74. package/dist/DotplotView/types.d.ts +12 -0
  75. package/dist/DotplotView/types.js +2 -0
  76. package/dist/LaunchDotplotView.d.ts +1 -1
  77. package/dist/LaunchDotplotView.js +1 -4
  78. package/dist/ServerSideRenderedBlockContent.d.ts +2 -2
  79. package/dist/ServerSideRenderedBlockContent.js +11 -37
  80. package/dist/ServerSideSyntenyRendering.d.ts +1 -6
  81. package/dist/ServerSideSyntenyRendering.js +4 -26
  82. package/dist/index.d.ts +1 -1
  83. package/dist/index.js +3 -6
  84. package/dist/util.d.ts +1 -1
  85. package/esm/ComparativeRenderer/index.d.ts +3 -8
  86. package/esm/ComparativeRenderer/index.js +3 -8
  87. package/esm/DotplotDisplay/components/DotplotDisplay.d.ts +2 -3
  88. package/esm/DotplotDisplay/components/DotplotDisplay.js +7 -9
  89. package/esm/DotplotDisplay/index.d.ts +1 -7
  90. package/esm/DotplotDisplay/index.js +2 -12
  91. package/esm/DotplotDisplay/renderDotplotBlock.d.ts +1 -1
  92. package/esm/DotplotDisplay/renderDotplotBlock.js +3 -6
  93. package/esm/DotplotDisplay/stateModelFactory.d.ts +8 -45
  94. package/esm/DotplotDisplay/stateModelFactory.js +58 -101
  95. package/esm/DotplotReadVsRef/DotplotReadVsRef.d.ts +2 -2
  96. package/esm/DotplotReadVsRef/DotplotReadVsRef.js +15 -16
  97. package/esm/DotplotReadVsRef/index.d.ts +1 -1
  98. package/esm/DotplotReadVsRef/index.js +0 -2
  99. package/esm/DotplotRenderer/ComparativeRenderRpc.d.ts +3 -8
  100. package/esm/DotplotRenderer/ComparativeRenderRpc.js +3 -8
  101. package/esm/DotplotRenderer/DotplotRenderer.d.ts +8 -7
  102. package/esm/DotplotRenderer/DotplotRenderer.js +1 -2
  103. package/esm/DotplotRenderer/components/DotplotRendering.d.ts +2 -3
  104. package/esm/DotplotRenderer/components/DotplotRendering.js +2 -2
  105. package/esm/DotplotRenderer/configSchema.d.ts +0 -21
  106. package/esm/DotplotRenderer/configSchema.js +2 -27
  107. package/esm/DotplotRenderer/drawDotplot.d.ts +3 -3
  108. package/esm/DotplotRenderer/drawDotplot.js +4 -7
  109. package/esm/DotplotRenderer/index.d.ts +1 -1
  110. package/esm/DotplotRenderer/index.js +1 -1
  111. package/esm/DotplotView/1dview.d.ts +2 -77
  112. package/esm/DotplotView/1dview.js +4 -33
  113. package/esm/DotplotView/components/Axes.d.ts +5 -6
  114. package/esm/DotplotView/components/Axes.js +26 -37
  115. package/esm/DotplotView/components/CursorIcon.d.ts +3 -4
  116. package/esm/DotplotView/components/CursorIcon.js +3 -5
  117. package/esm/DotplotView/components/DotplotControls.d.ts +2 -3
  118. package/esm/DotplotView/components/DotplotControls.js +94 -97
  119. package/esm/DotplotView/components/DotplotTooltipClick.d.ts +2 -3
  120. package/esm/DotplotView/components/DotplotTooltipClick.js +3 -7
  121. package/esm/DotplotView/components/DotplotTooltipMouseover.d.ts +2 -3
  122. package/esm/DotplotView/components/DotplotTooltipMouseover.js +4 -8
  123. package/esm/DotplotView/components/DotplotView.d.ts +2 -3
  124. package/esm/DotplotView/components/DotplotView.js +63 -85
  125. package/esm/DotplotView/components/DotplotWarnings.d.ts +2 -3
  126. package/esm/DotplotView/components/DotplotWarnings.js +9 -14
  127. package/esm/DotplotView/components/ExportSvgDialog.d.ts +2 -3
  128. package/esm/DotplotView/components/ExportSvgDialog.js +32 -44
  129. package/esm/DotplotView/components/Grid.d.ts +3 -4
  130. package/esm/DotplotView/components/Grid.js +19 -29
  131. package/esm/DotplotView/components/Header.d.ts +2 -3
  132. package/esm/DotplotView/components/Header.js +4 -23
  133. package/esm/DotplotView/components/ImportForm/ImportSyntenyOpenCustomTrack.d.ts +7 -0
  134. package/esm/DotplotView/components/ImportForm/ImportSyntenyOpenCustomTrack.js +124 -0
  135. package/esm/DotplotView/components/ImportForm/ImportSyntenyTrackSelector.d.ts +4 -6
  136. package/esm/DotplotView/components/ImportForm/ImportSyntenyTrackSelector.js +17 -25
  137. package/esm/DotplotView/components/ImportForm/TrackSelector.d.ts +7 -0
  138. package/esm/DotplotView/components/ImportForm/TrackSelector.js +18 -0
  139. package/esm/DotplotView/components/ImportForm/getAdapter.d.ts +117 -0
  140. package/esm/DotplotView/components/ImportForm/getAdapter.js +65 -0
  141. package/esm/DotplotView/components/ImportForm/index.d.ts +3 -4
  142. package/esm/DotplotView/components/ImportForm/index.js +48 -75
  143. package/esm/DotplotView/components/ImportForm/util.js +1 -3
  144. package/esm/DotplotView/components/PanButtons.d.ts +2 -3
  145. package/esm/DotplotView/components/PanButtons.js +17 -36
  146. package/esm/DotplotView/components/WarningDialog.d.ts +7 -7
  147. package/esm/DotplotView/components/WarningDialog.js +12 -12
  148. package/esm/DotplotView/components/util.d.ts +2 -7
  149. package/esm/DotplotView/components/util.js +0 -5
  150. package/esm/DotplotView/index.d.ts +1 -1
  151. package/esm/DotplotView/index.js +0 -1
  152. package/esm/DotplotView/model.d.ts +11 -133
  153. package/esm/DotplotView/model.js +30 -216
  154. package/esm/DotplotView/svgcomponents/SVGBackground.d.ts +1 -2
  155. package/esm/DotplotView/svgcomponents/SVGBackground.js +3 -3
  156. package/esm/DotplotView/svgcomponents/SVGDotplotView.d.ts +1 -1
  157. package/esm/DotplotView/svgcomponents/SVGDotplotView.js +6 -24
  158. package/esm/DotplotView/types.d.ts +12 -0
  159. package/esm/DotplotView/types.js +1 -0
  160. package/esm/LaunchDotplotView.d.ts +1 -1
  161. package/esm/LaunchDotplotView.js +1 -4
  162. package/esm/ServerSideRenderedBlockContent.d.ts +2 -2
  163. package/esm/ServerSideRenderedBlockContent.js +11 -14
  164. package/esm/ServerSideSyntenyRendering.d.ts +1 -6
  165. package/esm/ServerSideSyntenyRendering.js +4 -3
  166. package/esm/index.d.ts +1 -1
  167. package/esm/index.js +3 -6
  168. package/esm/util.d.ts +1 -1
  169. package/package.json +2 -4
  170. package/dist/DotplotView/components/ImportForm/ImportCustomTrack.d.ts +0 -11
  171. package/dist/DotplotView/components/ImportForm/ImportCustomTrack.js +0 -194
  172. package/esm/DotplotView/components/ImportForm/ImportCustomTrack.d.ts +0 -11
  173. package/esm/DotplotView/components/ImportForm/ImportCustomTrack.js +0 -169
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
37
  };
@@ -29,22 +39,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
39
  exports.Dotplot1DView = void 0;
30
40
  exports.default = stateModelFactory;
31
41
  const react_1 = require("react");
32
- const mobx_state_tree_1 = require("mobx-state-tree");
33
- const file_saver_1 = require("file-saver");
34
- const mobx_1 = require("mobx");
35
- const tracks_1 = require("@jbrowse/core/util/tracks");
42
+ const configuration_1 = require("@jbrowse/core/configuration");
36
43
  const BaseViewModel_1 = __importDefault(require("@jbrowse/core/pluggableElementTypes/models/BaseViewModel"));
44
+ const Icons_1 = require("@jbrowse/core/ui/Icons");
37
45
  const util_1 = require("@jbrowse/core/util");
38
- const configuration_1 = require("@jbrowse/core/configuration");
46
+ const tracks_1 = require("@jbrowse/core/util/tracks");
39
47
  const mst_1 = require("@jbrowse/core/util/types/mst");
40
- // icons
41
- const Icons_1 = require("@jbrowse/core/ui/Icons");
42
48
  const FolderOpen_1 = __importDefault(require("@mui/icons-material/FolderOpen"));
43
49
  const PhotoCamera_1 = __importDefault(require("@mui/icons-material/PhotoCamera"));
44
- // locals
50
+ const file_saver_1 = require("file-saver");
51
+ const mobx_1 = require("mobx");
52
+ const mobx_state_tree_1 = require("mobx-state-tree");
45
53
  const _1dview_1 = require("./1dview");
46
54
  const util_2 = require("./components/util");
47
- // lazies
48
55
  const ExportSvgDialog = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./components/ExportSvgDialog'))));
49
56
  const ReturnToImportFormDialog = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('@jbrowse/core/ui/ReturnToImportFormDialog'))));
50
57
  function stringLenPx(a) {
@@ -58,94 +65,47 @@ function pxWidthForBlocks(blocks, bpPerPx, hide) {
58
65
  .map(b => stringLenPx((0, util_1.getTickDisplayStr)(b.end, bpPerPx))),
59
66
  ]);
60
67
  }
61
- /**
62
- * #stateModel DotplotView
63
- * #category view
64
- * extends
65
- * - [BaseViewModel](../baseviewmodel)
66
- */
67
68
  function stateModelFactory(pm) {
68
69
  return mobx_state_tree_1.types
69
70
  .compose('DotplotView', BaseViewModel_1.default, mobx_state_tree_1.types.model({
70
- /**
71
- * #property
72
- */
73
71
  id: mst_1.ElementId,
74
- /**
75
- * #property
76
- */
77
72
  type: mobx_state_tree_1.types.literal('DotplotView'),
78
- /**
79
- * #property
80
- */
81
73
  height: 600,
82
- /**
83
- * #property
84
- */
85
74
  borderSize: 20,
86
- /**
87
- * #property
88
- */
89
75
  tickSize: 5,
90
- /**
91
- * #property
92
- */
93
76
  vtextRotation: 0,
94
- /**
95
- * #property
96
- */
97
77
  htextRotation: -90,
98
- /**
99
- * #property
100
- */
101
78
  fontSize: 15,
102
- /**
103
- * #property
104
- */
105
79
  trackSelectorType: 'hierarchical',
106
- /**
107
- * #property
108
- */
109
80
  assemblyNames: mobx_state_tree_1.types.array(mobx_state_tree_1.types.string),
110
- /**
111
- * #property
112
- */
113
81
  drawCigar: true,
114
- /**
115
- * #property
116
- */
117
82
  hview: mobx_state_tree_1.types.optional(_1dview_1.DotplotHView, {}),
118
- /**
119
- * #property
120
- */
121
83
  vview: mobx_state_tree_1.types.optional(_1dview_1.DotplotVView, {}),
122
- /**
123
- * #property
124
- */
125
84
  tracks: mobx_state_tree_1.types.array(pm.pluggableMstType('track', 'stateModel')),
126
- /**
127
- * #property
128
- * this represents tracks specific to this view specifically used
129
- * for read vs ref dotplots where this track would not really apply
130
- * elsewhere
131
- */
132
85
  viewTrackConfigs: mobx_state_tree_1.types.array(pm.pluggableConfigSchemaType('track')),
133
86
  }))
134
87
  .volatile(() => ({
135
88
  volatileWidth: undefined,
136
89
  volatileError: undefined,
137
- // these are 'personal preferences', stored in volatile and
138
- // loaded/written to localStorage
139
90
  cursorMode: (0, util_1.localStorageGetItem)('dotplot-cursorMode') || 'crosshair',
140
- showPanButtons: Boolean(JSON.parse((0, util_1.localStorageGetItem)('dotplot-showPanbuttons') || 'true')),
91
+ showPanButtons: (0, util_1.localStorageGetBoolean)('dotplot-showPanbuttons', true),
141
92
  wheelMode: (0, util_1.localStorageGetItem)('dotplot-wheelMode') || 'zoom',
142
93
  borderX: 100,
143
94
  borderY: 100,
95
+ importFormSyntenyTrackSelections: mobx_1.observable.array(),
96
+ }))
97
+ .actions(self => ({
98
+ importFormRemoveRow(idx) {
99
+ self.importFormSyntenyTrackSelections.splice(idx, 1);
100
+ },
101
+ clearImportFormSyntenyTracks() {
102
+ self.importFormSyntenyTrackSelections.clear();
103
+ },
104
+ setImportFormSyntenyTrack(arg, val) {
105
+ self.importFormSyntenyTrackSelections[arg] = val;
106
+ },
144
107
  }))
145
108
  .views(self => ({
146
- /**
147
- * #getter
148
- */
149
109
  get width() {
150
110
  if (!self.volatileWidth) {
151
111
  throw new Error('width not initialized');
@@ -154,9 +114,6 @@ function stateModelFactory(pm) {
154
114
  },
155
115
  }))
156
116
  .views(self => ({
157
- /**
158
- * #getter
159
- */
160
117
  get assemblyErrors() {
161
118
  const { assemblyManager } = (0, util_1.getSession)(self);
162
119
  return self.assemblyNames
@@ -164,27 +121,18 @@ function stateModelFactory(pm) {
164
121
  .filter(f => !!f)
165
122
  .join(', ');
166
123
  },
167
- /**
168
- * #getter
169
- */
170
124
  get assembliesInitialized() {
171
125
  const { assemblyManager } = (0, util_1.getSession)(self);
172
126
  return self.assemblyNames.every(n => { var _a, _b; return (_b = (_a = assemblyManager.get(n)) === null || _a === void 0 ? void 0 : _a.initialized) !== null && _b !== void 0 ? _b : true; });
173
127
  },
174
128
  }))
175
129
  .views(self => ({
176
- /**
177
- * #getter
178
- */
179
130
  get initialized() {
180
131
  return (self.volatileWidth !== undefined &&
181
132
  self.hview.displayedRegions.length > 0 &&
182
133
  self.vview.displayedRegions.length > 0 &&
183
134
  self.assembliesInitialized);
184
135
  },
185
- /**
186
- * #getter
187
- */
188
136
  get hticks() {
189
137
  const { hview } = self;
190
138
  const { dynamicBlocks, staticBlocks, bpPerPx } = hview;
@@ -192,9 +140,6 @@ function stateModelFactory(pm) {
192
140
  ? []
193
141
  : (0, util_2.makeTicks)(staticBlocks.contentBlocks, bpPerPx);
194
142
  },
195
- /**
196
- * #getter
197
- */
198
143
  get vticks() {
199
144
  const { vview } = self;
200
145
  const { dynamicBlocks, staticBlocks, bpPerPx } = vview;
@@ -202,33 +147,18 @@ function stateModelFactory(pm) {
202
147
  ? []
203
148
  : (0, util_2.makeTicks)(staticBlocks.contentBlocks, bpPerPx);
204
149
  },
205
- /**
206
- * #getter
207
- */
208
150
  get loading() {
209
151
  return self.assemblyNames.length > 0 && !this.initialized;
210
152
  },
211
- /**
212
- * #getter
213
- */
214
153
  get viewWidth() {
215
154
  return self.width - self.borderX;
216
155
  },
217
- /**
218
- * #getter
219
- */
220
156
  get viewHeight() {
221
157
  return self.height - self.borderY;
222
158
  },
223
- /**
224
- * #getter
225
- */
226
159
  get views() {
227
160
  return [self.hview, self.vview];
228
161
  },
229
- /**
230
- * #method
231
- */
232
162
  renderProps() {
233
163
  const session = (0, util_1.getSession)(self);
234
164
  return {
@@ -239,89 +169,49 @@ function stateModelFactory(pm) {
239
169
  },
240
170
  }))
241
171
  .actions(self => ({
242
- /**
243
- * #action
244
- */
245
172
  setShowPanButtons(flag) {
246
173
  self.showPanButtons = flag;
247
174
  },
248
- /**
249
- * #action
250
- */
251
175
  setWheelMode(str) {
252
176
  self.wheelMode = str;
253
177
  },
254
- /**
255
- * #action
256
- */
257
178
  setCursorMode(str) {
258
179
  self.cursorMode = str;
259
180
  },
260
- /**
261
- * #action
262
- */
263
181
  setDrawCigar(flag) {
264
182
  self.drawCigar = flag;
265
183
  },
266
- /**
267
- * #action
268
- * returns to the import form
269
- */
270
184
  clearView() {
271
185
  self.hview.setDisplayedRegions([]);
272
186
  self.vview.setDisplayedRegions([]);
273
187
  self.assemblyNames = (0, mobx_state_tree_1.cast)([]);
274
188
  self.tracks.clear();
275
189
  },
276
- /**
277
- * #action
278
- */
279
190
  setBorderX(n) {
280
191
  self.borderX = n;
281
192
  },
282
- /**
283
- * #action
284
- */
285
193
  setBorderY(n) {
286
194
  self.borderY = n;
287
195
  },
288
- /**
289
- * #action
290
- */
291
196
  setWidth(newWidth) {
292
197
  self.volatileWidth = newWidth;
293
198
  return self.volatileWidth;
294
199
  },
295
- /**
296
- * #action
297
- */
298
200
  setHeight(newHeight) {
299
201
  self.height = newHeight;
300
202
  return self.height;
301
203
  },
302
- /**
303
- * #action
304
- */
305
204
  setError(e) {
306
205
  self.volatileError = e;
307
206
  },
308
- /**
309
- * #action
310
- */
311
207
  zoomOut() {
312
208
  self.hview.zoomOut();
313
209
  self.vview.zoomOut();
314
210
  },
315
- /**
316
- * #action
317
- */
318
211
  zoomIn() {
319
212
  self.hview.zoomIn();
320
213
  self.vview.zoomIn();
321
214
  },
322
- /**
323
- * #action
324
- */
325
215
  activateTrackSelector() {
326
216
  if (self.trackSelectorType === 'hierarchical') {
327
217
  const session = (0, util_1.getSession)(self);
@@ -333,9 +223,6 @@ function stateModelFactory(pm) {
333
223
  }
334
224
  throw new Error(`invalid track selector type ${self.trackSelectorType}`);
335
225
  },
336
- /**
337
- * #action
338
- */
339
226
  showTrack(trackId, initialSnapshot = {}) {
340
227
  const schema = pm.pluggableConfigSchemaType('track');
341
228
  const conf = (0, mobx_state_tree_1.resolveIdentifier)(schema, (0, mobx_state_tree_1.getRoot)(self), trackId);
@@ -356,9 +243,6 @@ function stateModelFactory(pm) {
356
243
  });
357
244
  self.tracks.push(track);
358
245
  },
359
- /**
360
- * #action
361
- */
362
246
  hideTrack(trackId) {
363
247
  const schema = pm.pluggableConfigSchemaType('track');
364
248
  const conf = (0, mobx_state_tree_1.resolveIdentifier)(schema, (0, mobx_state_tree_1.getRoot)(self), trackId);
@@ -368,9 +252,6 @@ function stateModelFactory(pm) {
368
252
  });
369
253
  return t.length;
370
254
  },
371
- /**
372
- * #action
373
- */
374
255
  toggleTrack(trackId) {
375
256
  const hiddenCount = this.hideTrack(trackId);
376
257
  if (!hiddenCount) {
@@ -379,22 +260,13 @@ function stateModelFactory(pm) {
379
260
  }
380
261
  return false;
381
262
  },
382
- /**
383
- * #action
384
- */
385
263
  setAssemblyNames(target, query) {
386
264
  self.assemblyNames = (0, mobx_state_tree_1.cast)([target, query]);
387
265
  },
388
- /**
389
- * #action
390
- */
391
266
  setViews(arr) {
392
267
  self.hview = (0, mobx_state_tree_1.cast)(arr[0]);
393
268
  self.vview = (0, mobx_state_tree_1.cast)(arr[1]);
394
269
  },
395
- /**
396
- * #action
397
- */
398
270
  getCoords(mousedown, mouseup) {
399
271
  const [xmin, xmax] = (0, util_1.minmax)(mouseup[0], mousedown[0]);
400
272
  const [ymin, ymax] = (0, util_1.minmax)(mouseup[1], mousedown[1]);
@@ -407,10 +279,6 @@ function stateModelFactory(pm) {
407
279
  ]
408
280
  : undefined;
409
281
  },
410
- /**
411
- * #action
412
- * zooms into clicked and dragged region
413
- */
414
282
  zoomInToMouseCoords(mousedown, mouseup) {
415
283
  const result = this.getCoords(mousedown, mouseup);
416
284
  if (result) {
@@ -419,19 +287,12 @@ function stateModelFactory(pm) {
419
287
  self.vview.moveTo(y2, y1);
420
288
  }
421
289
  },
422
- /**
423
- * #action
424
- */
425
290
  showAllRegions() {
426
291
  self.hview.zoomTo(self.hview.maxBpPerPx);
427
292
  self.vview.zoomTo(self.vview.maxBpPerPx);
428
293
  self.vview.center();
429
294
  self.hview.center();
430
295
  },
431
- /**
432
- * #action
433
- * creates a linear synteny view from the clicked and dragged region
434
- */
435
296
  onDotplotView(mousedown, mouseup) {
436
297
  const result = this.getCoords(mousedown, mouseup);
437
298
  if (result) {
@@ -453,9 +314,6 @@ function stateModelFactory(pm) {
453
314
  d2.moveTo(y2, y1);
454
315
  d1.zoomTo(d1.bpPerPx / (self.width / self.hview.width), 0);
455
316
  d2.zoomTo(d2.bpPerPx / (self.width / self.vview.width), 0);
456
- // add the specific evidence tracks to the LGVs in the split view
457
- // note: scales the bpPerPx by scaling proportional of the dotplot
458
- // width to the eventual lgv width
459
317
  const tracks = self.tracks
460
318
  .map(track => track.configuration.displays.find((display) => display.type === 'LinearSyntenyDisplay'))
461
319
  .filter(f => !!f)
@@ -494,21 +352,16 @@ function stateModelFactory(pm) {
494
352
  },
495
353
  }))
496
354
  .actions(self => ({
497
- /**
498
- * #action
499
- * creates an svg export and save using FileSaver
500
- */
501
355
  async exportSvg(opts = {}) {
502
356
  const { renderToSvg } = await Promise.resolve().then(() => __importStar(require('./svgcomponents/SVGDotplotView')));
503
357
  const html = await renderToSvg(self, opts);
504
358
  const blob = new Blob([html], { type: 'image/svg+xml' });
505
359
  (0, file_saver_1.saveAs)(blob, opts.filename || 'image.svg');
506
360
  },
507
- // if any of our assemblies are temporary assemblies
508
361
  beforeDestroy() {
509
362
  var _a;
510
363
  const session = (0, util_1.getSession)(self);
511
- for (const name in self.assemblyNames) {
364
+ for (const name of self.assemblyNames) {
512
365
  (_a = session.removeTemporaryAssembly) === null || _a === void 0 ? void 0 : _a.call(session, name);
513
366
  }
514
367
  },
@@ -524,13 +377,10 @@ function stateModelFactory(pm) {
524
377
  }));
525
378
  (0, mobx_state_tree_1.addDisposer)(self, (0, mobx_1.autorun)(() => {
526
379
  const session = (0, util_1.getSession)(self);
527
- // don't operate if width not set yet
528
380
  if (self.volatileWidth === undefined ||
529
381
  !self.assembliesInitialized) {
530
382
  return;
531
383
  }
532
- // also don't operate if displayedRegions already set, this is a
533
- // helper autorun to load regions from assembly
534
384
  if (self.hview.displayedRegions.length > 0 &&
535
385
  self.vview.displayedRegions.length > 0) {
536
386
  return;
@@ -546,7 +396,6 @@ function stateModelFactory(pm) {
546
396
  });
547
397
  }, { delay: 1000 }));
548
398
  (0, mobx_state_tree_1.addDisposer)(self, (0, mobx_1.autorun)(function borderSetter() {
549
- // make sure we have a width on the view before trying to load
550
399
  if (self.volatileWidth === undefined) {
551
400
  return;
552
401
  }
@@ -560,14 +409,10 @@ function stateModelFactory(pm) {
560
409
  const hhide = (0, util_2.getBlockLabelKeysToHide)(hblocks, viewWidth, hoffset);
561
410
  const by = pxWidthForBlocks(hblocks, vview.bpPerPx, hhide);
562
411
  const bx = pxWidthForBlocks(vblocks, hview.bpPerPx, vhide);
563
- // these are set via autorun to avoid dependency cycle
564
412
  self.setBorderY(Math.max(by + padding, 50));
565
413
  self.setBorderX(Math.max(bx + padding, 50));
566
414
  }));
567
415
  },
568
- /**
569
- * #action
570
- */
571
416
  squareView() {
572
417
  const { hview, vview } = self;
573
418
  const avg = (hview.bpPerPx + vview.bpPerPx) / 2;
@@ -578,9 +423,6 @@ function stateModelFactory(pm) {
578
423
  vview.setBpPerPx(avg);
579
424
  vview.centerAt(vpx.coord, vpx.refName, vpx.index);
580
425
  },
581
- /**
582
- * #action
583
- */
584
426
  squareViewProportional() {
585
427
  const { hview, vview } = self;
586
428
  const ratio = hview.width / vview.width;
@@ -594,39 +436,21 @@ function stateModelFactory(pm) {
594
436
  },
595
437
  }))
596
438
  .views(self => ({
597
- /**
598
- * #method
599
- */
600
439
  menuItems() {
601
440
  const session = (0, util_1.getSession)(self);
602
441
  return [
603
442
  {
604
443
  label: 'Return to import form',
444
+ icon: FolderOpen_1.default,
605
445
  onClick: () => {
606
446
  (0, util_1.getSession)(self).queueDialog(handleClose => [
607
447
  ReturnToImportFormDialog,
608
- { model: self, handleClose },
448
+ {
449
+ model: self,
450
+ handleClose,
451
+ },
609
452
  ]);
610
453
  },
611
- icon: FolderOpen_1.default,
612
- },
613
- {
614
- label: 'Square view - same bp per pixel',
615
- onClick: () => {
616
- self.squareView();
617
- },
618
- },
619
- {
620
- label: 'Rectangular view - same total bp',
621
- onClick: () => {
622
- self.squareView();
623
- },
624
- },
625
- {
626
- label: 'Show all regions',
627
- onClick: () => {
628
- self.showAllRegions();
629
- },
630
454
  },
631
455
  {
632
456
  label: 'Export SVG',
@@ -634,7 +458,10 @@ function stateModelFactory(pm) {
634
458
  onClick: () => {
635
459
  (0, util_1.getSession)(self).queueDialog(handleClose => [
636
460
  ExportSvgDialog,
637
- { model: self, handleClose },
461
+ {
462
+ model: self,
463
+ handleClose,
464
+ },
638
465
  ]);
639
466
  },
640
467
  },
@@ -649,9 +476,6 @@ function stateModelFactory(pm) {
649
476
  : []),
650
477
  ];
651
478
  },
652
- /**
653
- * #getter
654
- */
655
479
  get error() {
656
480
  return self.volatileError || self.assemblyErrors;
657
481
  },
@@ -1,5 +1,4 @@
1
- import React from 'react';
2
1
  export default function SVGBackground({ width, height, }: {
3
2
  width: number;
4
3
  height: number;
5
- }): React.JSX.Element;
4
+ }): import("react/jsx-runtime").JSX.Element;
@@ -1,13 +1,10 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.default = SVGBackground;
7
- const react_1 = __importDefault(require("react"));
8
- const material_1 = require("@mui/material");
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
9
5
  const util_1 = require("@jbrowse/core/util");
6
+ const material_1 = require("@mui/material");
10
7
  function SVGBackground({ width, height, }) {
11
8
  const theme = (0, material_1.useTheme)();
12
- return (react_1.default.createElement("rect", { x: 0, y: 0, width: width, height: height, fill: (0, util_1.stripAlpha)(theme.palette.background.default) }));
9
+ return ((0, jsx_runtime_1.jsx)("rect", { x: 0, y: 0, width: width, height: height, fill: (0, util_1.stripAlpha)(theme.palette.background.default) }));
13
10
  }
@@ -1,2 +1,2 @@
1
- import { DotplotViewModel, ExportSvgOptions } from '../model';
1
+ import type { DotplotViewModel, ExportSvgOptions } from '../model';
2
2
  export declare function renderToSvg(model: DotplotViewModel, opts: ExportSvgOptions): Promise<string>;
@@ -4,21 +4,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.renderToSvg = renderToSvg;
7
- const react_1 = __importDefault(require("react"));
8
- const mobx_1 = require("mobx");
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const ui_1 = require("@jbrowse/core/ui");
9
9
  const util_1 = require("@jbrowse/core/util");
10
10
  const material_1 = require("@mui/material");
11
- const ui_1 = require("@jbrowse/core/ui");
12
- const mobx_state_tree_1 = require("mobx-state-tree");
13
- const Grid_1 = require("../components/Grid");
14
- const Axes_1 = require("../components/Axes");
11
+ const mobx_1 = require("mobx");
15
12
  const SVGBackground_1 = __importDefault(require("./SVGBackground"));
16
- // render LGV to SVG
13
+ const Axes_1 = require("../components/Axes");
14
+ const Grid_1 = require("../components/Grid");
17
15
  async function renderToSvg(model, opts) {
18
16
  var _a;
19
17
  await (0, mobx_1.when)(() => model.initialized);
20
18
  const { themeName = 'default', Wrapper = ({ children }) => children } = opts;
21
- const { createRootFn } = (0, mobx_state_tree_1.getRoot)(model);
22
19
  const session = (0, util_1.getSession)(model);
23
20
  const theme = (_a = session.allThemes) === null || _a === void 0 ? void 0 : _a.call(session)[themeName];
24
21
  const { width, borderX, viewWidth, viewHeight, tracks, height } = model;
@@ -29,20 +26,5 @@ async function renderToSvg(model, opts) {
29
26
  return { track, result: await display.renderSvg({ ...opts, theme }) };
30
27
  }));
31
28
  const w = width + shift * 2;
32
- // the xlink namespace is used for rendering <image> tag
33
- return (0, util_1.renderToStaticMarkup)(react_1.default.createElement(material_1.ThemeProvider, { theme: (0, ui_1.createJBrowseTheme)(theme) },
34
- react_1.default.createElement(Wrapper, null,
35
- react_1.default.createElement("svg", { width: width, height: height, xmlns: "http://www.w3.org/2000/svg", xmlnsXlink: "http://www.w3.org/1999/xlink", viewBox: [0, 0, w, height].toString() },
36
- react_1.default.createElement(SVGBackground_1.default, { width: w, height: height }),
37
- react_1.default.createElement(Axes_1.VerticalAxisRaw, { model: model }),
38
- react_1.default.createElement("g", { transform: `translate(${borderX} 0)` },
39
- react_1.default.createElement(Grid_1.GridRaw, { model: model }),
40
- react_1.default.createElement("defs", null,
41
- react_1.default.createElement("clipPath", { id: "clip-ruler" },
42
- react_1.default.createElement("rect", { x: 0, y: 0, width: viewWidth, height: viewHeight }))),
43
- react_1.default.createElement("g", { clipPath: "url(#clip-ruler)" }, displayResults.map(({ result }, i) => (
44
- /* biome-ignore lint/suspicious/noArrayIndexKey: */
45
- react_1.default.createElement("g", { key: i }, result))))),
46
- react_1.default.createElement("g", { transform: `translate(${borderX} ${viewHeight})` },
47
- react_1.default.createElement(Axes_1.HorizontalAxisRaw, { model: model }))))), createRootFn);
29
+ return (0, util_1.renderToStaticMarkup)((0, jsx_runtime_1.jsx)(material_1.ThemeProvider, { theme: (0, ui_1.createJBrowseTheme)(theme), children: (0, jsx_runtime_1.jsx)(Wrapper, { children: (0, jsx_runtime_1.jsxs)("svg", { width: width, height: height, xmlns: "http://www.w3.org/2000/svg", xmlnsXlink: "http://www.w3.org/1999/xlink", viewBox: [0, 0, w, height].toString(), children: [(0, jsx_runtime_1.jsx)(SVGBackground_1.default, { width: w, height: height }), (0, jsx_runtime_1.jsx)(Axes_1.VerticalAxisRaw, { model: model }), (0, jsx_runtime_1.jsxs)("g", { transform: `translate(${borderX} 0)`, children: [(0, jsx_runtime_1.jsx)(Grid_1.GridRaw, { model: model }), (0, jsx_runtime_1.jsx)("defs", { children: (0, jsx_runtime_1.jsx)("clipPath", { id: "clip-ruler", children: (0, jsx_runtime_1.jsx)("rect", { x: 0, y: 0, width: viewWidth, height: viewHeight }) }) }), (0, jsx_runtime_1.jsx)("g", { clipPath: "url(#clip-ruler)", children: displayResults.map(({ result }, i) => ((0, jsx_runtime_1.jsx)("g", { children: result }, i))) })] }), (0, jsx_runtime_1.jsx)("g", { transform: `translate(${borderX} ${viewHeight})`, children: (0, jsx_runtime_1.jsx)(Axes_1.HorizontalAxisRaw, { model: model }) })] }) }) }));
48
30
  }
@@ -0,0 +1,12 @@
1
+ import type { AnyConfigurationModel } from '@jbrowse/core/configuration';
2
+ import type { SnapshotIn } from 'mobx-state-tree';
3
+ export type Conf = SnapshotIn<AnyConfigurationModel>;
4
+ export type ImportFormSyntenyTrack = {
5
+ type: 'preConfigured';
6
+ value: string;
7
+ } | {
8
+ type: 'userOpened';
9
+ value: Conf;
10
+ } | {
11
+ type: 'none';
12
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +1,2 @@
1
- import PluginManager from '@jbrowse/core/PluginManager';
1
+ import type PluginManager from '@jbrowse/core/PluginManager';
2
2
  export default function LaunchDotplotView(pluginManager: PluginManager): void;