@jbrowse/plugin-breakpoint-split-view 2.7.1 → 2.7.2

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.
@@ -24,6 +24,9 @@ export interface Breakend {
24
24
  MatePosition: string;
25
25
  }
26
26
  export type LayoutRecord = [number, number, number, number];
27
+ /**
28
+ * #stateModel BreakpointSplitView
29
+ */
27
30
  export default function stateModelFactory(pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
28
31
  id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
29
32
  displayName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
@@ -59,9 +62,9 @@ export default function stateModelFactory(pluginManager: PluginManager): import(
59
62
  hideHeaderOverview: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
60
63
  hideNoTracksActive: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
61
64
  trackSelectorType: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
62
- trackLabels: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
63
65
  showCenterLine: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
64
66
  showCytobandsSetting: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
67
+ trackLabels: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
65
68
  showGridlines: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
66
69
  }, {
67
70
  width: number;
@@ -84,6 +87,7 @@ export default function stateModelFactory(pluginManager: PluginManager): import(
84
87
  leftOffset: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView").BpOffset | undefined;
85
88
  rightOffset: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView").BpOffset | undefined;
86
89
  } & {
90
+ readonly trackLabelsSetting: any;
87
91
  readonly width: number;
88
92
  readonly interRegionPaddingWidth: number;
89
93
  readonly assemblyNames: string[];
@@ -242,10 +246,32 @@ export default function stateModelFactory(pluginManager: PluginManager): import(
242
246
  */
243
247
  exportSvg(opts?: ExportSvgOptions): Promise<void>;
244
248
  } & {
249
+ /**
250
+ * #getter
251
+ * Find all track ids that match across multiple views
252
+ */
245
253
  readonly matchedTracks: any[];
254
+ /**
255
+ * #method
256
+ * Get tracks with a given trackId across multiple views
257
+ */
246
258
  getMatchedTracks(trackConfigId: string): any[];
259
+ /**
260
+ * #method
261
+ *
262
+ * Translocation features are handled differently
263
+ * since they do not have a mate e.g. they are one sided
264
+ */
247
265
  hasTranslocations(trackConfigId: string): Feature | undefined;
266
+ /**
267
+ * #method
268
+ * Get a composite map of featureId-\>feature map for a track across
269
+ * multiple views
270
+ */
248
271
  getTrackFeatures(trackConfigId: string): Map<string, Feature>;
272
+ /**
273
+ * #method
274
+ */
249
275
  getMatchedFeaturesInLayout(trackConfigId: string, features: Feature[][]): {
250
276
  feature: Feature;
251
277
  layout: LayoutRecord | undefined;
@@ -254,15 +280,39 @@ export default function stateModelFactory(pluginManager: PluginManager): import(
254
280
  } & {
255
281
  afterAttach(): void;
256
282
  onSubviewAction(actionName: string, path: string, args?: unknown[]): void;
283
+ /**
284
+ * #action
285
+ */
257
286
  setWidth(newWidth: number): void;
287
+ /**
288
+ * #action
289
+ */
258
290
  removeView(view: LGV): void;
291
+ /**
292
+ * #action
293
+ */
259
294
  closeView(): void;
295
+ /**
296
+ * #action
297
+ */
260
298
  toggleInteract(): void;
299
+ /**
300
+ * #action
301
+ */
261
302
  toggleIntraviewLinks(): void;
303
+ /**
304
+ * #action
305
+ */
262
306
  toggleLinkViews(): void;
307
+ /**
308
+ * #action
309
+ */
263
310
  setMatchedTrackFeatures(obj: Record<string, Feature[][]>): void;
264
311
  } & {
265
312
  afterAttach(): void;
313
+ /**
314
+ * #method
315
+ */
266
316
  menuItems(): ({
267
317
  label: string;
268
318
  subMenu: import("@jbrowse/core/ui").MenuItem[];
@@ -59,20 +59,44 @@ async function getBlockFeatures(model, track) {
59
59
  regions: view.staticBlocks.contentBlocks,
60
60
  })).flat()));
61
61
  }
62
+ /**
63
+ * #stateModel BreakpointSplitView
64
+ */
62
65
  function stateModelFactory(pluginManager) {
63
66
  const minHeight = 40;
64
67
  const defaultHeight = 400;
65
- const model = mobx_state_tree_1.types
66
- .model('BreakpointSplitView', {
68
+ return mobx_state_tree_1.types
69
+ .compose('BreakpointSplitView', models_1.BaseViewModel, mobx_state_tree_1.types.model({
70
+ /**
71
+ * #property
72
+ */
67
73
  type: mobx_state_tree_1.types.literal('BreakpointSplitView'),
74
+ /**
75
+ * #property
76
+ */
68
77
  height: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.refinement('viewHeight', mobx_state_tree_1.types.number, (n) => n >= minHeight), defaultHeight),
78
+ /**
79
+ * #property
80
+ */
69
81
  trackSelectorType: 'hierarchical',
82
+ /**
83
+ * #property
84
+ */
70
85
  showIntraviewLinks: true,
86
+ /**
87
+ * #property
88
+ */
71
89
  linkViews: false,
90
+ /**
91
+ * #property
92
+ */
72
93
  interactToggled: false,
94
+ /**
95
+ * #property
96
+ */
73
97
  views: mobx_state_tree_1.types.array(pluginManager.getViewType('LinearGenomeView')
74
98
  .stateModel),
75
- })
99
+ }))
76
100
  .volatile(() => ({
77
101
  width: 800,
78
102
  matchedTrackFeatures: {},
@@ -90,27 +114,43 @@ function stateModelFactory(pluginManager) {
90
114
  },
91
115
  }))
92
116
  .views(self => ({
93
- // Find all track ids that match across multiple views
117
+ /**
118
+ * #getter
119
+ * Find all track ids that match across multiple views
120
+ */
94
121
  get matchedTracks() {
95
122
  return (0, util_2.intersect)(elt => elt.configuration.trackId, ...self.views.map(view => view.tracks));
96
123
  },
97
- // Get tracks with a given trackId across multiple views
124
+ /**
125
+ * #method
126
+ * Get tracks with a given trackId across multiple views
127
+ */
98
128
  getMatchedTracks(trackConfigId) {
99
129
  return self.views
100
130
  .map(view => view.getTrack(trackConfigId))
101
131
  .filter(f => !!f);
102
132
  },
103
- // Translocation features are handled differently
104
- // since they do not have a mate e.g. they are one sided
133
+ /**
134
+ * #method
135
+ *
136
+ * Translocation features are handled differently
137
+ * since they do not have a mate e.g. they are one sided
138
+ */
105
139
  hasTranslocations(trackConfigId) {
106
140
  return [...this.getTrackFeatures(trackConfigId).values()].find(f => f.get('type') === 'translocation');
107
141
  },
108
- // Get a composite map of featureId->feature map for a track across
109
- // multiple views
142
+ /**
143
+ * #method
144
+ * Get a composite map of featureId-\>feature map for a track across
145
+ * multiple views
146
+ */
110
147
  getTrackFeatures(trackConfigId) {
111
148
  var _a;
112
149
  return new Map((_a = self.matchedTrackFeatures[trackConfigId]) === null || _a === void 0 ? void 0 : _a.flat().map(f => [f.id(), f]));
113
150
  },
151
+ /**
152
+ * #method
153
+ */
114
154
  getMatchedFeaturesInLayout(trackConfigId, features) {
115
155
  // use reverse to search the second track first
116
156
  const tracks = this.getMatchedTracks(trackConfigId);
@@ -157,26 +197,47 @@ function stateModelFactory(pluginManager) {
157
197
  }
158
198
  });
159
199
  },
200
+ /**
201
+ * #action
202
+ */
160
203
  setWidth(newWidth) {
161
204
  self.width = newWidth;
162
205
  self.views.forEach(v => v.setWidth(newWidth));
163
206
  },
207
+ /**
208
+ * #action
209
+ */
164
210
  removeView(view) {
165
211
  self.views.remove(view);
166
212
  },
213
+ /**
214
+ * #action
215
+ */
167
216
  closeView() {
168
217
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
169
218
  (0, mobx_state_tree_1.getParent)(self, 2).removeView(self);
170
219
  },
220
+ /**
221
+ * #action
222
+ */
171
223
  toggleInteract() {
172
224
  self.interactToggled = !self.interactToggled;
173
225
  },
226
+ /**
227
+ * #action
228
+ */
174
229
  toggleIntraviewLinks() {
175
230
  self.showIntraviewLinks = !self.showIntraviewLinks;
176
231
  },
232
+ /**
233
+ * #action
234
+ */
177
235
  toggleLinkViews() {
178
236
  self.linkViews = !self.linkViews;
179
237
  },
238
+ /**
239
+ * #action
240
+ */
180
241
  setMatchedTrackFeatures(obj) {
181
242
  self.matchedTrackFeatures = obj;
182
243
  },
@@ -200,6 +261,9 @@ function stateModelFactory(pluginManager) {
200
261
  }
201
262
  }));
202
263
  },
264
+ /**
265
+ * #method
266
+ */
203
267
  menuItems() {
204
268
  return [
205
269
  ...self.views
@@ -240,6 +304,5 @@ function stateModelFactory(pluginManager) {
240
304
  ];
241
305
  },
242
306
  }));
243
- return mobx_state_tree_1.types.compose(models_1.BaseViewModel, model);
244
307
  }
245
308
  exports.default = stateModelFactory;
@@ -24,6 +24,9 @@ export interface Breakend {
24
24
  MatePosition: string;
25
25
  }
26
26
  export type LayoutRecord = [number, number, number, number];
27
+ /**
28
+ * #stateModel BreakpointSplitView
29
+ */
27
30
  export default function stateModelFactory(pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
28
31
  id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
29
32
  displayName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
@@ -59,9 +62,9 @@ export default function stateModelFactory(pluginManager: PluginManager): import(
59
62
  hideHeaderOverview: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
60
63
  hideNoTracksActive: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
61
64
  trackSelectorType: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
62
- trackLabels: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
63
65
  showCenterLine: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
64
66
  showCytobandsSetting: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
67
+ trackLabels: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
65
68
  showGridlines: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
66
69
  }, {
67
70
  width: number;
@@ -84,6 +87,7 @@ export default function stateModelFactory(pluginManager: PluginManager): import(
84
87
  leftOffset: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView").BpOffset | undefined;
85
88
  rightOffset: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView").BpOffset | undefined;
86
89
  } & {
90
+ readonly trackLabelsSetting: any;
87
91
  readonly width: number;
88
92
  readonly interRegionPaddingWidth: number;
89
93
  readonly assemblyNames: string[];
@@ -242,10 +246,32 @@ export default function stateModelFactory(pluginManager: PluginManager): import(
242
246
  */
243
247
  exportSvg(opts?: ExportSvgOptions): Promise<void>;
244
248
  } & {
249
+ /**
250
+ * #getter
251
+ * Find all track ids that match across multiple views
252
+ */
245
253
  readonly matchedTracks: any[];
254
+ /**
255
+ * #method
256
+ * Get tracks with a given trackId across multiple views
257
+ */
246
258
  getMatchedTracks(trackConfigId: string): any[];
259
+ /**
260
+ * #method
261
+ *
262
+ * Translocation features are handled differently
263
+ * since they do not have a mate e.g. they are one sided
264
+ */
247
265
  hasTranslocations(trackConfigId: string): Feature | undefined;
266
+ /**
267
+ * #method
268
+ * Get a composite map of featureId-\>feature map for a track across
269
+ * multiple views
270
+ */
248
271
  getTrackFeatures(trackConfigId: string): Map<string, Feature>;
272
+ /**
273
+ * #method
274
+ */
249
275
  getMatchedFeaturesInLayout(trackConfigId: string, features: Feature[][]): {
250
276
  feature: Feature;
251
277
  layout: LayoutRecord | undefined;
@@ -254,15 +280,39 @@ export default function stateModelFactory(pluginManager: PluginManager): import(
254
280
  } & {
255
281
  afterAttach(): void;
256
282
  onSubviewAction(actionName: string, path: string, args?: unknown[]): void;
283
+ /**
284
+ * #action
285
+ */
257
286
  setWidth(newWidth: number): void;
287
+ /**
288
+ * #action
289
+ */
258
290
  removeView(view: LGV): void;
291
+ /**
292
+ * #action
293
+ */
259
294
  closeView(): void;
295
+ /**
296
+ * #action
297
+ */
260
298
  toggleInteract(): void;
299
+ /**
300
+ * #action
301
+ */
261
302
  toggleIntraviewLinks(): void;
303
+ /**
304
+ * #action
305
+ */
262
306
  toggleLinkViews(): void;
307
+ /**
308
+ * #action
309
+ */
263
310
  setMatchedTrackFeatures(obj: Record<string, Feature[][]>): void;
264
311
  } & {
265
312
  afterAttach(): void;
313
+ /**
314
+ * #method
315
+ */
266
316
  menuItems(): ({
267
317
  label: string;
268
318
  subMenu: import("@jbrowse/core/ui").MenuItem[];
@@ -31,20 +31,44 @@ async function getBlockFeatures(model, track) {
31
31
  regions: view.staticBlocks.contentBlocks,
32
32
  })).flat()));
33
33
  }
34
+ /**
35
+ * #stateModel BreakpointSplitView
36
+ */
34
37
  export default function stateModelFactory(pluginManager) {
35
38
  const minHeight = 40;
36
39
  const defaultHeight = 400;
37
- const model = types
38
- .model('BreakpointSplitView', {
40
+ return types
41
+ .compose('BreakpointSplitView', BaseViewModel, types.model({
42
+ /**
43
+ * #property
44
+ */
39
45
  type: types.literal('BreakpointSplitView'),
46
+ /**
47
+ * #property
48
+ */
40
49
  height: types.optional(types.refinement('viewHeight', types.number, (n) => n >= minHeight), defaultHeight),
50
+ /**
51
+ * #property
52
+ */
41
53
  trackSelectorType: 'hierarchical',
54
+ /**
55
+ * #property
56
+ */
42
57
  showIntraviewLinks: true,
58
+ /**
59
+ * #property
60
+ */
43
61
  linkViews: false,
62
+ /**
63
+ * #property
64
+ */
44
65
  interactToggled: false,
66
+ /**
67
+ * #property
68
+ */
45
69
  views: types.array(pluginManager.getViewType('LinearGenomeView')
46
70
  .stateModel),
47
- })
71
+ }))
48
72
  .volatile(() => ({
49
73
  width: 800,
50
74
  matchedTrackFeatures: {},
@@ -62,27 +86,43 @@ export default function stateModelFactory(pluginManager) {
62
86
  },
63
87
  }))
64
88
  .views(self => ({
65
- // Find all track ids that match across multiple views
89
+ /**
90
+ * #getter
91
+ * Find all track ids that match across multiple views
92
+ */
66
93
  get matchedTracks() {
67
94
  return intersect(elt => elt.configuration.trackId, ...self.views.map(view => view.tracks));
68
95
  },
69
- // Get tracks with a given trackId across multiple views
96
+ /**
97
+ * #method
98
+ * Get tracks with a given trackId across multiple views
99
+ */
70
100
  getMatchedTracks(trackConfigId) {
71
101
  return self.views
72
102
  .map(view => view.getTrack(trackConfigId))
73
103
  .filter(f => !!f);
74
104
  },
75
- // Translocation features are handled differently
76
- // since they do not have a mate e.g. they are one sided
105
+ /**
106
+ * #method
107
+ *
108
+ * Translocation features are handled differently
109
+ * since they do not have a mate e.g. they are one sided
110
+ */
77
111
  hasTranslocations(trackConfigId) {
78
112
  return [...this.getTrackFeatures(trackConfigId).values()].find(f => f.get('type') === 'translocation');
79
113
  },
80
- // Get a composite map of featureId->feature map for a track across
81
- // multiple views
114
+ /**
115
+ * #method
116
+ * Get a composite map of featureId-\>feature map for a track across
117
+ * multiple views
118
+ */
82
119
  getTrackFeatures(trackConfigId) {
83
120
  var _a;
84
121
  return new Map((_a = self.matchedTrackFeatures[trackConfigId]) === null || _a === void 0 ? void 0 : _a.flat().map(f => [f.id(), f]));
85
122
  },
123
+ /**
124
+ * #method
125
+ */
86
126
  getMatchedFeaturesInLayout(trackConfigId, features) {
87
127
  // use reverse to search the second track first
88
128
  const tracks = this.getMatchedTracks(trackConfigId);
@@ -129,26 +169,47 @@ export default function stateModelFactory(pluginManager) {
129
169
  }
130
170
  });
131
171
  },
172
+ /**
173
+ * #action
174
+ */
132
175
  setWidth(newWidth) {
133
176
  self.width = newWidth;
134
177
  self.views.forEach(v => v.setWidth(newWidth));
135
178
  },
179
+ /**
180
+ * #action
181
+ */
136
182
  removeView(view) {
137
183
  self.views.remove(view);
138
184
  },
185
+ /**
186
+ * #action
187
+ */
139
188
  closeView() {
140
189
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
141
190
  getParent(self, 2).removeView(self);
142
191
  },
192
+ /**
193
+ * #action
194
+ */
143
195
  toggleInteract() {
144
196
  self.interactToggled = !self.interactToggled;
145
197
  },
198
+ /**
199
+ * #action
200
+ */
146
201
  toggleIntraviewLinks() {
147
202
  self.showIntraviewLinks = !self.showIntraviewLinks;
148
203
  },
204
+ /**
205
+ * #action
206
+ */
149
207
  toggleLinkViews() {
150
208
  self.linkViews = !self.linkViews;
151
209
  },
210
+ /**
211
+ * #action
212
+ */
152
213
  setMatchedTrackFeatures(obj) {
153
214
  self.matchedTrackFeatures = obj;
154
215
  },
@@ -172,6 +233,9 @@ export default function stateModelFactory(pluginManager) {
172
233
  }
173
234
  }));
174
235
  },
236
+ /**
237
+ * #method
238
+ */
175
239
  menuItems() {
176
240
  return [
177
241
  ...self.views
@@ -212,5 +276,4 @@ export default function stateModelFactory(pluginManager) {
212
276
  ];
213
277
  },
214
278
  }));
215
- return types.compose(BaseViewModel, model);
216
279
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-breakpoint-split-view",
3
- "version": "2.7.1",
3
+ "version": "2.7.2",
4
4
  "description": "JBrowse 2 breakpoint detail split view",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -58,5 +58,5 @@
58
58
  "publishConfig": {
59
59
  "access": "public"
60
60
  },
61
- "gitHead": "2cda1611eebd12517f2a3cfc1b612face27005d4"
61
+ "gitHead": "9052b295f2d322e729254457ed9fe2231fb22cce"
62
62
  }