@jbrowse/plugin-linear-comparative-view 2.17.0 → 2.18.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 (184) hide show
  1. package/dist/LGVSyntenyDisplay/components/LaunchSyntenyViewDialog.d.ts +1 -1
  2. package/dist/LGVSyntenyDisplay/components/LaunchSyntenyViewDialog.js +0 -2
  3. package/dist/LGVSyntenyDisplay/components/util.d.ts +3 -3
  4. package/dist/LGVSyntenyDisplay/components/util.js +0 -1
  5. package/dist/LGVSyntenyDisplay/configSchemaF.d.ts +19 -10
  6. package/dist/LGVSyntenyDisplay/configSchemaF.js +12 -9
  7. package/dist/LGVSyntenyDisplay/index.d.ts +1 -1
  8. package/dist/LGVSyntenyDisplay/index.js +1 -1
  9. package/dist/LGVSyntenyDisplay/model.d.ts +102 -63
  10. package/dist/LGVSyntenyDisplay/model.js +1 -29
  11. package/dist/LaunchLinearSyntenyView.d.ts +1 -1
  12. package/dist/LaunchLinearSyntenyView.js +1 -3
  13. package/dist/LinearComparativeDisplay/configSchemaF.d.ts +0 -3
  14. package/dist/LinearComparativeDisplay/configSchemaF.js +0 -6
  15. package/dist/LinearComparativeDisplay/index.d.ts +1 -1
  16. package/dist/LinearComparativeDisplay/stateModelFactory.d.ts +12 -69
  17. package/dist/LinearComparativeDisplay/stateModelFactory.js +13 -57
  18. package/dist/LinearComparativeView/components/Header.d.ts +1 -1
  19. package/dist/LinearComparativeView/components/Header.js +4 -5
  20. package/dist/LinearComparativeView/components/HeaderSearchBoxes.d.ts +1 -1
  21. package/dist/LinearComparativeView/components/HeaderSearchBoxes.js +3 -4
  22. package/dist/LinearComparativeView/components/LinearComparativeRenderArea.d.ts +1 -1
  23. package/dist/LinearComparativeView/components/LinearComparativeRenderArea.js +8 -15
  24. package/dist/LinearComparativeView/components/LinearComparativeView.d.ts +1 -1
  25. package/dist/LinearComparativeView/components/LinearComparativeView.js +2 -4
  26. package/dist/LinearComparativeView/components/Rubberband.d.ts +1 -1
  27. package/dist/LinearComparativeView/components/Rubberband.js +17 -19
  28. package/dist/LinearComparativeView/components/VerticalGuide.d.ts +1 -1
  29. package/dist/LinearComparativeView/components/VerticalGuide.js +1 -1
  30. package/dist/LinearComparativeView/index.d.ts +1 -1
  31. package/dist/LinearComparativeView/model.d.ts +6 -62
  32. package/dist/LinearComparativeView/model.js +3 -99
  33. package/dist/LinearReadVsRef/LinearReadVsRef.d.ts +1 -1
  34. package/dist/LinearReadVsRef/LinearReadVsRef.js +5 -19
  35. package/dist/LinearReadVsRef/index.d.ts +1 -1
  36. package/dist/LinearReadVsRef/index.js +0 -2
  37. package/dist/LinearSyntenyDisplay/afterAttach.d.ts +1 -1
  38. package/dist/LinearSyntenyDisplay/afterAttach.js +2 -9
  39. package/dist/LinearSyntenyDisplay/components/Component.d.ts +1 -1
  40. package/dist/LinearSyntenyDisplay/components/Component.js +2 -4
  41. package/dist/LinearSyntenyDisplay/components/LinearSyntenyRendering.d.ts +1 -1
  42. package/dist/LinearSyntenyDisplay/components/LinearSyntenyRendering.js +6 -22
  43. package/dist/LinearSyntenyDisplay/components/SyntenyContextMenu.d.ts +2 -2
  44. package/dist/LinearSyntenyDisplay/components/SyntenyContextMenu.js +1 -1
  45. package/dist/LinearSyntenyDisplay/components/SyntenyTooltip.js +1 -1
  46. package/dist/LinearSyntenyDisplay/components/util.d.ts +3 -3
  47. package/dist/LinearSyntenyDisplay/components/util.js +0 -9
  48. package/dist/LinearSyntenyDisplay/configSchemaF.d.ts +1 -12
  49. package/dist/LinearSyntenyDisplay/configSchemaF.js +0 -15
  50. package/dist/LinearSyntenyDisplay/drawSynteny.d.ts +1 -1
  51. package/dist/LinearSyntenyDisplay/drawSynteny.js +1 -23
  52. package/dist/LinearSyntenyDisplay/index.d.ts +1 -1
  53. package/dist/LinearSyntenyDisplay/index.js +1 -2
  54. package/dist/LinearSyntenyDisplay/model.d.ts +8 -102
  55. package/dist/LinearSyntenyDisplay/model.js +1 -92
  56. package/dist/LinearSyntenyView/components/ExportSvgDialog.d.ts +1 -1
  57. package/dist/LinearSyntenyView/components/ExportSvgDialog.js +2 -4
  58. package/dist/LinearSyntenyView/components/Icons.d.ts +1 -1
  59. package/dist/LinearSyntenyView/components/ImportForm/AddCustomTrack.d.ts +2 -2
  60. package/dist/LinearSyntenyView/components/ImportForm/AddCustomTrack.js +1 -1
  61. package/dist/LinearSyntenyView/components/ImportForm/LinearSyntenyImportForm.d.ts +1 -1
  62. package/dist/LinearSyntenyView/components/ImportForm/LinearSyntenyImportForm.js +6 -8
  63. package/dist/LinearSyntenyView/components/ImportForm/TrackSelector.d.ts +1 -1
  64. package/dist/LinearSyntenyView/components/ImportForm/TrackSelector.js +3 -5
  65. package/dist/LinearSyntenyView/components/ImportForm/TrackSelectorUtil.d.ts +3 -3
  66. package/dist/LinearSyntenyView/components/ImportForm/util.js +1 -3
  67. package/dist/LinearSyntenyView/components/LinearSyntenyView.d.ts +1 -1
  68. package/dist/LinearSyntenyView/components/LinearSyntenyView.js +0 -1
  69. package/dist/LinearSyntenyView/index.d.ts +1 -1
  70. package/dist/LinearSyntenyView/model.d.ts +5 -28
  71. package/dist/LinearSyntenyView/model.js +4 -41
  72. package/dist/LinearSyntenyView/svgcomponents/SVGBackground.js +1 -1
  73. package/dist/LinearSyntenyView/svgcomponents/SVGLinearGenomeView.d.ts +1 -1
  74. package/dist/LinearSyntenyView/svgcomponents/SVGLinearGenomeView.js +1 -1
  75. package/dist/LinearSyntenyView/svgcomponents/SVGLinearSyntenyView.d.ts +1 -1
  76. package/dist/LinearSyntenyView/svgcomponents/SVGLinearSyntenyView.js +5 -10
  77. package/dist/LinearSyntenyViewHelper/index.d.ts +1 -1
  78. package/dist/LinearSyntenyViewHelper/stateModelFactory.d.ts +2 -14
  79. package/dist/LinearSyntenyViewHelper/stateModelFactory.js +2 -29
  80. package/dist/SyntenyFeatureDetail/SyntenyFeatureDetail.d.ts +1 -1
  81. package/dist/SyntenyFeatureDetail/SyntenyFeatureDetail.js +4 -13
  82. package/dist/SyntenyFeatureDetail/index.d.ts +1 -1
  83. package/dist/SyntenyFeatureDetail/index.js +1 -7
  84. package/dist/SyntenyTrack/configSchema.d.ts +1 -1
  85. package/dist/SyntenyTrack/configSchema.js +1 -9
  86. package/dist/SyntenyTrack/index.d.ts +1 -1
  87. package/dist/SyntenyTrack/index.js +1 -1
  88. package/dist/index.d.ts +1 -1
  89. package/dist/index.js +4 -4
  90. package/dist/util.d.ts +2 -2
  91. package/dist/util.js +1 -11
  92. package/esm/LGVSyntenyDisplay/components/LaunchSyntenyViewDialog.d.ts +1 -1
  93. package/esm/LGVSyntenyDisplay/components/LaunchSyntenyViewDialog.js +0 -2
  94. package/esm/LGVSyntenyDisplay/components/util.d.ts +3 -3
  95. package/esm/LGVSyntenyDisplay/components/util.js +0 -1
  96. package/esm/LGVSyntenyDisplay/configSchemaF.d.ts +19 -10
  97. package/esm/LGVSyntenyDisplay/configSchemaF.js +12 -9
  98. package/esm/LGVSyntenyDisplay/index.d.ts +1 -1
  99. package/esm/LGVSyntenyDisplay/index.js +1 -1
  100. package/esm/LGVSyntenyDisplay/model.d.ts +102 -63
  101. package/esm/LGVSyntenyDisplay/model.js +2 -30
  102. package/esm/LaunchLinearSyntenyView.d.ts +1 -1
  103. package/esm/LaunchLinearSyntenyView.js +1 -3
  104. package/esm/LinearComparativeDisplay/configSchemaF.d.ts +0 -3
  105. package/esm/LinearComparativeDisplay/configSchemaF.js +0 -6
  106. package/esm/LinearComparativeDisplay/index.d.ts +1 -1
  107. package/esm/LinearComparativeDisplay/stateModelFactory.d.ts +12 -69
  108. package/esm/LinearComparativeDisplay/stateModelFactory.js +14 -58
  109. package/esm/LinearComparativeView/components/Header.d.ts +1 -1
  110. package/esm/LinearComparativeView/components/Header.js +4 -5
  111. package/esm/LinearComparativeView/components/HeaderSearchBoxes.d.ts +1 -1
  112. package/esm/LinearComparativeView/components/HeaderSearchBoxes.js +3 -4
  113. package/esm/LinearComparativeView/components/LinearComparativeRenderArea.d.ts +1 -1
  114. package/esm/LinearComparativeView/components/LinearComparativeRenderArea.js +8 -15
  115. package/esm/LinearComparativeView/components/LinearComparativeView.d.ts +1 -1
  116. package/esm/LinearComparativeView/components/LinearComparativeView.js +2 -4
  117. package/esm/LinearComparativeView/components/Rubberband.d.ts +1 -1
  118. package/esm/LinearComparativeView/components/Rubberband.js +18 -20
  119. package/esm/LinearComparativeView/components/VerticalGuide.d.ts +1 -1
  120. package/esm/LinearComparativeView/components/VerticalGuide.js +1 -1
  121. package/esm/LinearComparativeView/index.d.ts +1 -1
  122. package/esm/LinearComparativeView/model.d.ts +6 -62
  123. package/esm/LinearComparativeView/model.js +4 -100
  124. package/esm/LinearReadVsRef/LinearReadVsRef.d.ts +1 -1
  125. package/esm/LinearReadVsRef/LinearReadVsRef.js +5 -19
  126. package/esm/LinearReadVsRef/index.d.ts +1 -1
  127. package/esm/LinearReadVsRef/index.js +1 -3
  128. package/esm/LinearSyntenyDisplay/afterAttach.d.ts +1 -1
  129. package/esm/LinearSyntenyDisplay/afterAttach.js +2 -9
  130. package/esm/LinearSyntenyDisplay/components/Component.d.ts +1 -1
  131. package/esm/LinearSyntenyDisplay/components/Component.js +2 -4
  132. package/esm/LinearSyntenyDisplay/components/LinearSyntenyRendering.d.ts +1 -1
  133. package/esm/LinearSyntenyDisplay/components/LinearSyntenyRendering.js +8 -24
  134. package/esm/LinearSyntenyDisplay/components/SyntenyContextMenu.d.ts +2 -2
  135. package/esm/LinearSyntenyDisplay/components/SyntenyContextMenu.js +1 -1
  136. package/esm/LinearSyntenyDisplay/components/SyntenyTooltip.js +1 -1
  137. package/esm/LinearSyntenyDisplay/components/util.d.ts +3 -3
  138. package/esm/LinearSyntenyDisplay/components/util.js +2 -11
  139. package/esm/LinearSyntenyDisplay/configSchemaF.d.ts +1 -12
  140. package/esm/LinearSyntenyDisplay/configSchemaF.js +0 -15
  141. package/esm/LinearSyntenyDisplay/drawSynteny.d.ts +1 -1
  142. package/esm/LinearSyntenyDisplay/drawSynteny.js +1 -23
  143. package/esm/LinearSyntenyDisplay/index.d.ts +1 -1
  144. package/esm/LinearSyntenyDisplay/index.js +1 -2
  145. package/esm/LinearSyntenyDisplay/model.d.ts +8 -102
  146. package/esm/LinearSyntenyDisplay/model.js +1 -92
  147. package/esm/LinearSyntenyView/components/ExportSvgDialog.d.ts +1 -1
  148. package/esm/LinearSyntenyView/components/ExportSvgDialog.js +2 -4
  149. package/esm/LinearSyntenyView/components/Icons.d.ts +1 -1
  150. package/esm/LinearSyntenyView/components/ImportForm/AddCustomTrack.d.ts +2 -2
  151. package/esm/LinearSyntenyView/components/ImportForm/AddCustomTrack.js +2 -2
  152. package/esm/LinearSyntenyView/components/ImportForm/LinearSyntenyImportForm.d.ts +1 -1
  153. package/esm/LinearSyntenyView/components/ImportForm/LinearSyntenyImportForm.js +6 -8
  154. package/esm/LinearSyntenyView/components/ImportForm/TrackSelector.d.ts +1 -1
  155. package/esm/LinearSyntenyView/components/ImportForm/TrackSelector.js +4 -6
  156. package/esm/LinearSyntenyView/components/ImportForm/TrackSelectorUtil.d.ts +3 -3
  157. package/esm/LinearSyntenyView/components/ImportForm/TrackSelectorUtil.js +1 -1
  158. package/esm/LinearSyntenyView/components/ImportForm/util.js +1 -3
  159. package/esm/LinearSyntenyView/components/LinearSyntenyView.d.ts +1 -1
  160. package/esm/LinearSyntenyView/components/LinearSyntenyView.js +0 -1
  161. package/esm/LinearSyntenyView/index.d.ts +1 -1
  162. package/esm/LinearSyntenyView/model.d.ts +5 -28
  163. package/esm/LinearSyntenyView/model.js +4 -41
  164. package/esm/LinearSyntenyView/svgcomponents/SVGBackground.js +1 -1
  165. package/esm/LinearSyntenyView/svgcomponents/SVGLinearGenomeView.d.ts +1 -1
  166. package/esm/LinearSyntenyView/svgcomponents/SVGLinearGenomeView.js +2 -2
  167. package/esm/LinearSyntenyView/svgcomponents/SVGLinearSyntenyView.d.ts +1 -1
  168. package/esm/LinearSyntenyView/svgcomponents/SVGLinearSyntenyView.js +6 -11
  169. package/esm/LinearSyntenyViewHelper/index.d.ts +1 -1
  170. package/esm/LinearSyntenyViewHelper/stateModelFactory.d.ts +2 -14
  171. package/esm/LinearSyntenyViewHelper/stateModelFactory.js +2 -29
  172. package/esm/SyntenyFeatureDetail/SyntenyFeatureDetail.d.ts +1 -1
  173. package/esm/SyntenyFeatureDetail/SyntenyFeatureDetail.js +4 -13
  174. package/esm/SyntenyFeatureDetail/index.d.ts +1 -1
  175. package/esm/SyntenyFeatureDetail/index.js +1 -7
  176. package/esm/SyntenyTrack/configSchema.d.ts +1 -1
  177. package/esm/SyntenyTrack/configSchema.js +1 -9
  178. package/esm/SyntenyTrack/index.d.ts +1 -1
  179. package/esm/SyntenyTrack/index.js +1 -1
  180. package/esm/index.d.ts +1 -1
  181. package/esm/index.js +4 -4
  182. package/esm/util.d.ts +2 -2
  183. package/esm/util.js +1 -11
  184. package/package.json +2 -4
@@ -27,99 +27,47 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  const react_1 = require("react");
30
- const mobx_state_tree_1 = require("mobx-state-tree");
31
- const mobx_1 = require("mobx");
32
- // jbrowse
33
30
  const BaseViewModel_1 = __importDefault(require("@jbrowse/core/pluggableElementTypes/models/BaseViewModel"));
34
31
  const util_1 = require("@jbrowse/core/util");
35
32
  const mst_1 = require("@jbrowse/core/util/types/mst");
36
- // icons
37
33
  const FolderOpen_1 = __importDefault(require("@mui/icons-material/FolderOpen"));
38
- // lazies
34
+ const mobx_1 = require("mobx");
35
+ const mobx_state_tree_1 = require("mobx-state-tree");
39
36
  const ReturnToImportFormDialog = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('@jbrowse/core/ui/ReturnToImportFormDialog'))));
40
- /**
41
- * #stateModel LinearComparativeView
42
- * extends
43
- * - [BaseViewModel](../baseviewmodel)
44
- */
45
37
  function stateModelFactory(pluginManager) {
46
38
  var _a;
47
39
  const LinearSyntenyViewHelper = (_a = pluginManager.getViewType('LinearSyntenyViewHelper')) === null || _a === void 0 ? void 0 : _a.stateModel;
48
40
  return mobx_state_tree_1.types
49
41
  .compose('LinearComparativeView', BaseViewModel_1.default, mobx_state_tree_1.types.model({
50
- /**
51
- * #property
52
- */
53
42
  id: mst_1.ElementId,
54
- /**
55
- * #property
56
- */
57
43
  type: mobx_state_tree_1.types.literal('LinearComparativeView'),
58
- /**
59
- * #property
60
- */
61
44
  trackSelectorType: 'hierarchical',
62
- /**
63
- * #property
64
- */
65
45
  showIntraviewLinks: true,
66
- /**
67
- * #property
68
- */
69
46
  interactToggled: false,
70
- /**
71
- * #property
72
- */
73
47
  levels: mobx_state_tree_1.types.array(LinearSyntenyViewHelper),
74
- /**
75
- * #property
76
- * currently this is limited to an array of two
77
- */
78
48
  views: mobx_state_tree_1.types.array(pluginManager.getViewType('LinearGenomeView')
79
49
  .stateModel),
80
- /**
81
- * #property
82
- * this represents tracks specific to this view specifically used for
83
- * read vs ref dotplots where this track would not really apply
84
- * elsewhere
85
- */
86
50
  viewTrackConfigs: mobx_state_tree_1.types.array(pluginManager.pluggableConfigSchemaType('track')),
87
51
  }))
88
52
  .volatile(() => ({
89
- /**
90
- * #volatile
91
- */
92
53
  width: undefined,
93
54
  }))
94
55
  .views(self => ({
95
- /**
96
- * #getter
97
- */
98
56
  get initialized() {
99
- return (
100
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
101
- self.width !== undefined &&
57
+ return (self.width !== undefined &&
102
58
  self.views.length > 0 &&
103
59
  self.views.every(view => view.initialized));
104
60
  },
105
- /**
106
- * #getter
107
- */
108
61
  get refNames() {
109
62
  return self.views.map(v => [
110
63
  ...new Set(v.staticBlocks.map(m => m.refName)),
111
64
  ]);
112
65
  },
113
- /**
114
- * #getter
115
- */
116
66
  get assemblyNames() {
117
67
  return [...new Set(self.views.flatMap(v => v.assemblyNames))];
118
68
  },
119
69
  }))
120
70
  .actions(self => ({
121
- // automatically removes session assemblies associated with this view
122
- // e.g. read vs ref
123
71
  beforeDestroy() {
124
72
  var _a;
125
73
  const session = (0, util_1.getSession)(self);
@@ -131,40 +79,24 @@ function stateModelFactory(pluginManager) {
131
79
  self.views.forEach(view => {
132
80
  const ret = (0, mobx_state_tree_1.getPath)(view);
133
81
  if (!ret.endsWith(path)) {
134
- // @ts-expect-error
135
82
  view[actionName](args === null || args === void 0 ? void 0 : args[0]);
136
83
  }
137
84
  });
138
85
  },
139
- /**
140
- * #action
141
- */
142
86
  setWidth(newWidth) {
143
87
  self.width = newWidth;
144
88
  },
145
- /**
146
- * #action
147
- */
148
89
  setViews(views) {
149
90
  self.views = (0, mobx_state_tree_1.cast)(views);
150
91
  },
151
- /**
152
- * #action
153
- */
154
92
  removeView(view) {
155
93
  self.views.remove(view);
156
94
  },
157
- /**
158
- * #action
159
- */
160
95
  setLevelHeight(newHeight, level = 0) {
161
96
  const l = self.levels[level];
162
97
  l.setHeight(newHeight);
163
98
  return l.height;
164
99
  },
165
- /**
166
- * #action
167
- */
168
100
  activateTrackSelector(level) {
169
101
  if (self.trackSelectorType === 'hierarchical') {
170
102
  const session = (0, util_1.getSession)(self);
@@ -178,32 +110,20 @@ function stateModelFactory(pluginManager) {
178
110
  }
179
111
  throw new Error(`invalid track selector type ${self.trackSelectorType}`);
180
112
  },
181
- /**
182
- * #action
183
- */
184
113
  toggleTrack(trackId, level = 0) {
185
114
  var _a;
186
115
  (_a = self.levels[level]) === null || _a === void 0 ? void 0 : _a.toggleTrack(trackId);
187
116
  },
188
- /**
189
- * #action
190
- */
191
117
  showTrack(trackId, level = 0, initialSnapshot = {}) {
192
118
  if (!self.levels[level]) {
193
119
  self.levels[level] = (0, mobx_state_tree_1.cast)({ level });
194
120
  }
195
121
  self.levels[level].showTrack(trackId, initialSnapshot);
196
122
  },
197
- /**
198
- * #action
199
- */
200
123
  hideTrack(trackId, level = 0) {
201
124
  var _a;
202
125
  (_a = self.levels[level]) === null || _a === void 0 ? void 0 : _a.hideTrack(trackId);
203
126
  },
204
- /**
205
- * #action
206
- */
207
127
  squareView() {
208
128
  const average = (0, util_1.avg)(self.views.map(v => v.bpPerPx));
209
129
  for (const view of self.views) {
@@ -214,28 +134,17 @@ function stateModelFactory(pluginManager) {
214
134
  }
215
135
  }
216
136
  },
217
- /**
218
- * #action
219
- */
220
137
  clearView() {
221
138
  self.views = (0, mobx_state_tree_1.cast)([]);
222
139
  self.levels = (0, mobx_state_tree_1.cast)([]);
223
140
  },
224
141
  }))
225
142
  .views(() => ({
226
- /**
227
- * #method
228
- * includes a subset of view menu options because the full list is a
229
- * little overwhelming. overridden by subclasses
230
- */
231
143
  headerMenuItems() {
232
144
  return [];
233
145
  },
234
146
  }))
235
147
  .views(self => ({
236
- /**
237
- * #method
238
- */
239
148
  menuItems() {
240
149
  return [
241
150
  {
@@ -253,9 +162,6 @@ function stateModelFactory(pluginManager) {
253
162
  },
254
163
  ];
255
164
  },
256
- /**
257
- * #method
258
- */
259
165
  rubberBandMenuItems() {
260
166
  return [
261
167
  {
@@ -284,8 +190,6 @@ function stateModelFactory(pluginManager) {
284
190
  },
285
191
  }))
286
192
  .preProcessSnapshot(snap => {
287
- // @ts-expect-error
288
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
289
193
  const { tracks, levels = [{ tracks, level: 0 }], ...rest } = snap || {};
290
194
  return {
291
195
  ...rest,
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { Feature } from '@jbrowse/core/util';
2
+ import type { Feature } from '@jbrowse/core/util';
3
3
  export default function ReadVsRefDialog({ track, feature: preFeature, handleClose, }: {
4
4
  feature: Feature;
5
5
  handleClose: () => void;
@@ -25,14 +25,13 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.default = ReadVsRefDialog;
27
27
  const react_1 = __importStar(require("react"));
28
- const material_1 = require("@mui/material");
29
- const ui_1 = require("@jbrowse/core/ui");
30
- const mui_1 = require("tss-react/mui");
31
28
  const configuration_1 = require("@jbrowse/core/configuration");
32
- const tracks_1 = require("@jbrowse/core/util/tracks");
29
+ const ui_1 = require("@jbrowse/core/ui");
33
30
  const util_1 = require("@jbrowse/core/util");
34
- // locals
31
+ const tracks_1 = require("@jbrowse/core/util/tracks");
35
32
  const plugin_alignments_1 = require("@jbrowse/plugin-alignments");
33
+ const material_1 = require("@mui/material");
34
+ const mui_1 = require("tss-react/mui");
36
35
  const { featurizeSA, getClip, getLength, getLengthSansClipping, getTag } = plugin_alignments_1.MismatchParser;
37
36
  const useStyles = (0, mui_1.makeStyles)()({
38
37
  root: {
@@ -41,16 +40,11 @@ const useStyles = (0, mui_1.makeStyles)()({
41
40
  });
42
41
  function ReadVsRefDialog({ track, feature: preFeature, handleClose, }) {
43
42
  const { classes } = useStyles();
44
- // window size stored as string, because it corresponds to a textfield which
45
- // is parsed as number on submit
46
43
  const [windowSizeText, setWindowSize] = (0, react_1.useState)('0');
47
44
  const [error, setError] = (0, react_1.useState)();
48
45
  const [primaryFeature, setPrimaryFeature] = (0, react_1.useState)();
49
46
  const windowSize = +windowSizeText;
50
- // we need to fetch the primary alignment if the selected feature is 2048.
51
- // this should be the first in the list of the SA tag
52
47
  (0, react_1.useEffect)(() => {
53
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
54
48
  ;
55
49
  (async () => {
56
50
  setError(undefined);
@@ -113,9 +107,6 @@ function ReadVsRefDialog({ track, feature: preFeature, handleClose, }) {
113
107
  const assemblyNames = [trackAssembly, readAssembly];
114
108
  const trackId = `track-${Date.now()}`;
115
109
  const trackName = `${readName}_vs_${trackAssembly}`;
116
- // get the canonical refname for the read because if the
117
- // read.get('refName') is chr1 and the actual fasta refName is 1 then no
118
- // tracks can be opened on the top panel of the linear read vs ref
119
110
  const { assemblyManager } = session;
120
111
  const assembly = assemblyManager.get(trackAssembly);
121
112
  if (!assembly) {
@@ -130,9 +121,6 @@ function ReadVsRefDialog({ track, feature: preFeature, handleClose, }) {
130
121
  start: clipPos,
131
122
  end: clipPos + getLengthSansClipping(cigar),
132
123
  };
133
- // if secondary alignment or supplementary, calculate length from SA[0]'s
134
- // CIGAR which is the primary alignments. otherwise it is the primary
135
- // alignment just use seq.length if primary alignment
136
124
  const totalLength = flags & 2048 ? getLength(suppAlns[0].CIGAR) : getLength(cigar);
137
125
  const features = [feat, ...suppAlns];
138
126
  features.forEach((f, idx) => {
@@ -143,8 +131,6 @@ function ReadVsRefDialog({ track, feature: preFeature, handleClose, }) {
143
131
  });
144
132
  features.sort((a, b) => a.clipPos - b.clipPos);
145
133
  const featSeq = feature.get('seq');
146
- // the config feature store includes synthetic mate features
147
- // mapped to the read assembly
148
134
  const configFeatureStore = [...features, ...features.map(f => f.mate)];
149
135
  const expand = 2 * windowSize;
150
136
  const refLen = features.reduce((a, f) => a + f.end - f.start + expand, 0);
@@ -170,7 +156,7 @@ function ReadVsRefDialog({ track, feature: preFeature, handleClose, }) {
170
156
  {
171
157
  start: 0,
172
158
  end: totalLength,
173
- seq: featSeq || '', // can be empty if user clicks secondary read
159
+ seq: featSeq || '',
174
160
  refName: readName,
175
161
  uniqueId: `${Math.random()}`,
176
162
  },
@@ -1,2 +1,2 @@
1
- import PluginManager from '@jbrowse/core/PluginManager';
1
+ import type PluginManager from '@jbrowse/core/PluginManager';
2
2
  export default function LinearReadVsRefMenuItemF(pm: PluginManager): void;
@@ -29,9 +29,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.default = LinearReadVsRefMenuItemF;
30
30
  const react_1 = require("react");
31
31
  const util_1 = require("@jbrowse/core/util");
32
- // icons
33
32
  const Add_1 = __importDefault(require("@mui/icons-material/Add"));
34
- // locals
35
33
  const ReadVsRefDialog = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./LinearReadVsRef'))));
36
34
  function isDisplay(elt) {
37
35
  return elt.name === 'LinearPileupDisplay';
@@ -1,2 +1,2 @@
1
- import { LinearSyntenyDisplayModel } from './model';
1
+ import type { LinearSyntenyDisplayModel } from './model';
2
2
  export declare function doAfterAttach(self: LinearSyntenyDisplayModel): void;
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.doAfterAttach = doAfterAttach;
4
- const mobx_1 = require("mobx");
5
- const mobx_state_tree_1 = require("mobx-state-tree");
6
4
  const util_1 = require("@jbrowse/core/util");
7
5
  const Base1DUtils_1 = require("@jbrowse/core/util/Base1DUtils");
8
6
  const plugin_alignments_1 = require("@jbrowse/plugin-alignments");
7
+ const mobx_1 = require("mobx");
8
+ const mobx_state_tree_1 = require("mobx-state-tree");
9
9
  const drawSynteny_1 = require("./drawSynteny");
10
10
  function doAfterAttach(self) {
11
11
  (0, mobx_state_tree_1.addDisposer)(self, (0, mobx_1.autorun)(() => {
@@ -32,17 +32,10 @@ function doAfterAttach(self) {
32
32
  }
33
33
  (0, drawSynteny_1.drawMouseoverSynteny)(self);
34
34
  }));
35
- // this attempts to reduce recalculation of feature positions drawn by
36
- // the synteny view
37
- //
38
- // uses a reaction to say "we know the positions don't change in any
39
- // relevant way unless bpPerPx changes or displayedRegions changes"
40
35
  (0, mobx_state_tree_1.addDisposer)(self, (0, mobx_1.reaction)(() => {
41
36
  const view = (0, util_1.getContainingView)(self);
42
37
  return {
43
38
  bpPerPx: view.views.map(v => v.bpPerPx),
44
- // stringifying 'deeply' accesses the displayed regions, see
45
- // issue #3456
46
39
  displayedRegions: JSON.stringify(view.views.map(v => v.displayedRegions)),
47
40
  features: self.features,
48
41
  initialized: view.initialized,
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { LinearSyntenyDisplayModel } from '../model';
2
+ import type { LinearSyntenyDisplayModel } from '../model';
3
3
  declare const ServerSideRenderedBlockContent: ({ model, }: {
4
4
  model: LinearSyntenyDisplayModel;
5
5
  }) => React.JSX.Element;
@@ -27,10 +27,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  const react_1 = __importStar(require("react"));
30
- const mui_1 = require("tss-react/mui");
31
- const mobx_react_1 = require("mobx-react");
32
30
  const ui_1 = require("@jbrowse/core/ui");
33
- // locals
31
+ const mobx_react_1 = require("mobx-react");
32
+ const mui_1 = require("tss-react/mui");
34
33
  const LinearSyntenyRendering_1 = __importDefault(require("./LinearSyntenyRendering"));
35
34
  const useStyles = (0, mui_1.makeStyles)()(theme => {
36
35
  const bg = theme.palette.action.disabledBackground;
@@ -53,7 +52,6 @@ const useStyles = (0, mui_1.makeStyles)()(theme => {
53
52
  };
54
53
  });
55
54
  function LoadingMessage() {
56
- // only show the loading message after 300ms to prevent excessive flickering
57
55
  const [shown, setShown] = (0, react_1.useState)(false);
58
56
  const { classes } = useStyles();
59
57
  (0, react_1.useEffect)(() => {
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { LinearSyntenyDisplayModel } from '../model';
2
+ import type { LinearSyntenyDisplayModel } from '../model';
3
3
  declare const LinearSyntenyRendering: ({ model, }: {
4
4
  model: LinearSyntenyDisplayModel;
5
5
  }) => React.JSX.Element;
@@ -27,9 +27,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  const react_1 = __importStar(require("react"));
30
- const mobx_react_1 = require("mobx-react");
31
30
  const util_1 = require("@jbrowse/core/util");
32
31
  const mobx_1 = require("mobx");
32
+ const mobx_react_1 = require("mobx-react");
33
33
  const mui_1 = require("tss-react/mui");
34
34
  const drawSynteny_1 = require("../drawSynteny");
35
35
  const SyntenyContextMenu_1 = __importDefault(require("./SyntenyContextMenu"));
@@ -69,22 +69,13 @@ const LinearSyntenyRendering = (0, mobx_react_1.observer)(function ({ model, })
69
69
  const [mouseInitialDownX, setMouseInitialDownX] = (0, react_1.useState)();
70
70
  const [currY, setCurrY] = (0, react_1.useState)();
71
71
  const mainSyntenyCanvasRefp = (0, react_1.useRef)();
72
- // these useCallbacks avoid new refs from being created on any mouseover,
73
- // etc.
74
- // biome-ignore lint/correctness/useExhaustiveDependencies:
75
72
  const mouseoverDetectionCanvasRef = (0, react_1.useCallback)((ref) => {
76
73
  model.setMouseoverCanvasRef(ref);
77
- },
78
- // eslint-disable-next-line react-hooks/exhaustive-deps
79
- [model, height, width]);
80
- // biome-ignore lint/correctness/useExhaustiveDependencies:
74
+ }, [model, height, width]);
81
75
  const mainSyntenyCanvasRef = (0, react_1.useCallback)((ref) => {
82
76
  model.setMainCanvasRef(ref);
83
- mainSyntenyCanvasRefp.current = ref; // this ref is additionally used in useEffect below
84
- },
85
- // eslint-disable-next-line react-hooks/exhaustive-deps
86
- [model, height, width]);
87
- // biome-ignore lint/correctness/useExhaustiveDependencies:
77
+ mainSyntenyCanvasRefp.current = ref;
78
+ }, [model, height, width]);
88
79
  (0, react_1.useEffect)(() => {
89
80
  var _a;
90
81
  function onWheel(event) {
@@ -133,20 +124,13 @@ const LinearSyntenyRendering = (0, mobx_react_1.observer)(function ({ model, })
133
124
  var _a;
134
125
  (_a = mainSyntenyCanvasRefp.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('wheel', onWheel);
135
126
  };
136
- // eslint-disable-next-line react-hooks/exhaustive-deps
137
127
  }, [model, height, width]);
138
- // biome-ignore lint/correctness/useExhaustiveDependencies:
139
128
  const clickMapCanvasRef = (0, react_1.useCallback)((ref) => {
140
129
  model.setClickMapCanvasRef(ref);
141
- },
142
- // eslint-disable-next-line react-hooks/exhaustive-deps
143
- [model, height, width]);
144
- // biome-ignore lint/correctness/useExhaustiveDependencies:
130
+ }, [model, height, width]);
145
131
  const cigarClickMapCanvasRef = (0, react_1.useCallback)((ref) => {
146
132
  model.setCigarClickMapCanvasRef(ref);
147
- },
148
- // eslint-disable-next-line react-hooks/exhaustive-deps
149
- [model, height, width]);
133
+ }, [model, height, width]);
150
134
  return (react_1.default.createElement("div", { className: classes.rel },
151
135
  react_1.default.createElement("canvas", { ref: mouseoverDetectionCanvasRef, width: width, height: height, className: classes.mouseoverCanvas }),
152
136
  react_1.default.createElement("canvas", { ref: mainSyntenyCanvasRef, onMouseMove: event => {
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { Feature } from '@jbrowse/core/util';
3
- import { LinearSyntenyDisplayModel } from '../model';
2
+ import type { LinearSyntenyDisplayModel } from '../model';
3
+ import type { Feature } from '@jbrowse/core/util';
4
4
  interface ClickCoord {
5
5
  clientX: number;
6
6
  clientY: number;
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.default = SyntenyContextMenu;
7
7
  const react_1 = __importDefault(require("react"));
8
- const util_1 = require("@jbrowse/core/util");
9
8
  const ui_1 = require("@jbrowse/core/ui");
9
+ const util_1 = require("@jbrowse/core/util");
10
10
  function SyntenyContextMenu({ model, onClose, anchorEl, }) {
11
11
  const view = (0, util_1.getContainingView)(model);
12
12
  const { clientX, clientY, feature } = anchorEl;
@@ -4,9 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const react_1 = __importDefault(require("react"));
7
- const mobx_react_1 = require("mobx-react");
8
7
  const ui_1 = require("@jbrowse/core/ui");
9
8
  const BaseTooltip_1 = __importDefault(require("@jbrowse/core/ui/BaseTooltip"));
9
+ const mobx_react_1 = require("mobx-react");
10
10
  const SyntenyTooltip = (0, mobx_react_1.observer)(function ({ title }) {
11
11
  return title ? (react_1.default.createElement(BaseTooltip_1.default, null,
12
12
  react_1.default.createElement(ui_1.SanitizedHTML, { html: title }))) : null;
@@ -1,6 +1,6 @@
1
- import React from 'react';
2
- import { Feature } from '@jbrowse/core/util';
3
- import { LinearSyntenyDisplayModel } from '../model';
1
+ import type React from 'react';
2
+ import type { LinearSyntenyDisplayModel } from '../model';
3
+ import type { Feature } from '@jbrowse/core/util';
4
4
  interface Pos {
5
5
  offsetPx: number;
6
6
  }
@@ -8,7 +8,6 @@ exports.onSynClick = onSynClick;
8
8
  exports.onSynContextClick = onSynContextClick;
9
9
  exports.getTooltip = getTooltip;
10
10
  const util_1 = require("@jbrowse/core/util");
11
- // locals
12
11
  const drawSynteny_1 = require("../drawSynteny");
13
12
  function drawMatchSimple({ feature, ctx, offsets, level, cb, height, drawCurves, oobLimit, viewWidth, hideTiny, }) {
14
13
  const { p11, p12, p21, p22 } = feature;
@@ -26,11 +25,7 @@ function drawMatchSimple({ feature, ctx, offsets, level, cb, height, drawCurves,
26
25
  if (!(0, util_1.doesIntersect2)(minX, maxX, -oobLimit, viewWidth + oobLimit)) {
27
26
  return;
28
27
  }
29
- // drawing a line if the results are thin: drawing a line results in much
30
- // less pixellation than filling in a thin polygon
31
28
  if (l1 <= 1 && l2 <= 1) {
32
- // hideTiny can be used to avoid drawing mouseover for thin lines in this
33
- // case
34
29
  if (!hideTiny) {
35
30
  ctx.beginPath();
36
31
  ctx.moveTo(x11, y1);
@@ -67,9 +62,6 @@ function drawBox(ctx, x1, x2, y1, x3, x4, y2) {
67
62
  function drawBezierBox(ctx, x1, x2, y1, x3, x4, y2, mid) {
68
63
  const len1 = Math.abs(x1 - x2);
69
64
  const len2 = Math.abs(x1 - x2);
70
- // heuristic to not draw hourglass inversions with bezier curves when they
71
- // are thin and far apart because it results in areas that are not drawn well
72
- // demo https://codesandbox.io/s/fast-glitter-q3b1or?file=/src/index.js
73
65
  if (len1 < 5 && len2 < 5 && x2 < x1 && Math.abs(x1 - x3) > 100) {
74
66
  const tmp = x1;
75
67
  x1 = x2;
@@ -143,7 +135,6 @@ function onSynContextClick(event, model, setAnchorEl) {
143
135
  }
144
136
  }
145
137
  function getTooltip({ feature, cigarOp, cigarOpLen, }) {
146
- // @ts-expect-error
147
138
  const f1 = feature.toJSON();
148
139
  const f2 = f1.mate;
149
140
  const l1 = f1.end - f1.start;
@@ -1,20 +1,9 @@
1
- import PluginManager from '@jbrowse/core/PluginManager';
2
- /**
3
- * #config LinearSyntenyDisplay
4
- */
1
+ import type PluginManager from '@jbrowse/core/PluginManager';
5
2
  declare function configSchemaFactory(pluginManager: PluginManager): import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
6
- /**
7
- * #slot
8
- * currently unused
9
- */
10
3
  trackIds: {
11
4
  type: string;
12
5
  defaultValue: never[];
13
6
  };
14
- /**
15
- * #slot
16
- * currently unused
17
- */
18
7
  middle: {
19
8
  type: string;
20
9
  defaultValue: boolean;
@@ -5,29 +5,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const configuration_1 = require("@jbrowse/core/configuration");
7
7
  const configSchemaF_1 = __importDefault(require("../LinearComparativeDisplay/configSchemaF"));
8
- /**
9
- * #config LinearSyntenyDisplay
10
- */
11
8
  function configSchemaFactory(pluginManager) {
12
9
  return (0, configuration_1.ConfigurationSchema)('LinearSyntenyDisplay', {
13
- /**
14
- * #slot
15
- * currently unused
16
- */
17
10
  trackIds: {
18
11
  type: 'stringArray',
19
12
  defaultValue: [],
20
13
  },
21
- /**
22
- * #slot
23
- * currently unused
24
- */
25
14
  middle: { type: 'boolean', defaultValue: true },
26
15
  }, {
27
- /**
28
- * #baseConfiguration
29
- * this refers to the LinearComparativeDisplay
30
- */
31
16
  baseConfiguration: (0, configSchemaF_1.default)(pluginManager),
32
17
  explicitlyTyped: true,
33
18
  });
@@ -1,4 +1,4 @@
1
- import { LinearSyntenyDisplayModel } from './model';
1
+ import type { LinearSyntenyDisplayModel } from './model';
2
2
  export declare const MAX_COLOR_RANGE: number;
3
3
  export declare function getId(r: number, g: number, b: number, unitMultiplier: number): number;
4
4
  export declare function drawRef(model: LinearSyntenyDisplayModel, ctx1: CanvasRenderingContext2D, ctx3?: CanvasRenderingContext2D): void;