@jbrowse/plugin-linear-comparative-view 3.1.0 → 3.3.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 (29) hide show
  1. package/dist/LinearComparativeView/components/Rubberband.js +5 -5
  2. package/dist/LinearComparativeView/components/VerticalGuide.js +3 -6
  3. package/dist/LinearComparativeView/model.d.ts +54 -4
  4. package/dist/LinearComparativeView/model.js +7 -2
  5. package/dist/LinearReadVsRef/LinearReadVsRef.js +2 -2
  6. package/dist/LinearSyntenyView/components/ImportForm/ImportSyntenyOpenCustomTrack.js +2 -2
  7. package/dist/LinearSyntenyView/components/ImportForm/LeftPanel.d.ts +11 -0
  8. package/dist/LinearSyntenyView/components/ImportForm/LeftPanel.js +58 -0
  9. package/dist/LinearSyntenyView/components/ImportForm/LinearSyntenyImportForm.js +18 -52
  10. package/dist/LinearSyntenyView/components/LinearSyntenyView.d.ts +2 -3
  11. package/dist/LinearSyntenyView/components/LinearSyntenyView.js +1 -1
  12. package/dist/LinearSyntenyView/model.d.ts +55 -5
  13. package/dist/LinearSyntenyView/model.js +3 -3
  14. package/dist/LinearSyntenyViewHelper/stateModelFactory.js +2 -2
  15. package/esm/LinearComparativeView/components/Rubberband.js +5 -5
  16. package/esm/LinearComparativeView/components/VerticalGuide.js +4 -7
  17. package/esm/LinearComparativeView/model.d.ts +54 -4
  18. package/esm/LinearComparativeView/model.js +7 -2
  19. package/esm/LinearReadVsRef/LinearReadVsRef.js +2 -2
  20. package/esm/LinearSyntenyView/components/ImportForm/ImportSyntenyOpenCustomTrack.js +3 -3
  21. package/esm/LinearSyntenyView/components/ImportForm/LeftPanel.d.ts +11 -0
  22. package/esm/LinearSyntenyView/components/ImportForm/LeftPanel.js +53 -0
  23. package/esm/LinearSyntenyView/components/ImportForm/LinearSyntenyImportForm.js +21 -55
  24. package/esm/LinearSyntenyView/components/LinearSyntenyView.d.ts +2 -3
  25. package/esm/LinearSyntenyView/components/LinearSyntenyView.js +1 -1
  26. package/esm/LinearSyntenyView/model.d.ts +55 -5
  27. package/esm/LinearSyntenyView/model.js +3 -3
  28. package/esm/LinearSyntenyViewHelper/stateModelFactory.js +2 -2
  29. package/package.json +7 -7
@@ -66,6 +66,7 @@ export default function stateModelFactory(pluginManager: PluginManager): import(
66
66
  highlight: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IType<import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType>>, [undefined]>;
67
67
  colorByCDS: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
68
68
  showTrackOutlines: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
69
+ init: import("mobx-state-tree").IType<import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined>;
69
70
  }, {
70
71
  width: number;
71
72
  } & {
@@ -94,6 +95,7 @@ export default function stateModelFactory(pluginManager: PluginManager): import(
94
95
  readonly interRegionPaddingWidth: number;
95
96
  readonly assemblyNames: string[];
96
97
  readonly stickyViewHeaders: boolean;
98
+ readonly rubberbandTop: number;
97
99
  readonly pinnedTracksTop: number;
98
100
  } & {
99
101
  scaleBarDisplayPrefix(): string | undefined;
@@ -180,6 +182,7 @@ export default function stateModelFactory(pluginManager: PluginManager): import(
180
182
  setDraggingTrackId(idx?: string): void;
181
183
  setScaleFactor(factor: number): void;
182
184
  clearView(): void;
185
+ setInit(arg?: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState): void;
183
186
  exportSvg(opts?: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").ExportSvgOptions): Promise<void>;
184
187
  } & {
185
188
  slide: (viewWidths: number) => void;
@@ -200,7 +203,6 @@ export default function stateModelFactory(pluginManager: PluginManager): import(
200
203
  readonly coarseVisibleLocStrings: string;
201
204
  } & {
202
205
  setCoarseDynamicBlocks(blocks: import("@jbrowse/core/util/blockTypes").BlockSet): void;
203
- afterAttach(): void;
204
206
  } & {
205
207
  moveTo(start?: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").BpOffset, end?: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").BpOffset): void;
206
208
  navToLocString(input: string, optAssemblyName?: string): Promise<void>;
@@ -208,6 +210,7 @@ export default function stateModelFactory(pluginManager: PluginManager): import(
208
210
  input: string;
209
211
  assembly: import("@jbrowse/core/assemblyManager/assembly").Assembly;
210
212
  }): Promise<void>;
213
+ navToLocation(parsedLocString: import("@jbrowse/core/util").ParsedLocString, assemblyName?: string): Promise<void>;
211
214
  navToLocations(parsedLocStrings: import("@jbrowse/core/util").ParsedLocString[], assemblyName?: string): Promise<void>;
212
215
  navTo(query: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").NavLocation): void;
213
216
  navToMultiple(locations: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").NavLocation[]): void;
@@ -246,6 +249,7 @@ export default function stateModelFactory(pluginManager: PluginManager): import(
246
249
  } | undefined;
247
250
  } & {
248
251
  afterCreate(): void;
252
+ afterAttach(): void;
249
253
  }, import("mobx-state-tree").ModelCreationType<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
250
254
  id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
251
255
  displayName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
@@ -268,7 +272,28 @@ export default function stateModelFactory(pluginManager: PluginManager): import(
268
272
  highlight: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IType<import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType>>, [undefined]>;
269
273
  colorByCDS: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
270
274
  showTrackOutlines: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
271
- }>>, import("mobx-state-tree")._NotCustomized>>;
275
+ init: import("mobx-state-tree").IType<import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined>;
276
+ }>>, {
277
+ id: string;
278
+ type: string;
279
+ displayName: string | undefined;
280
+ tracks: any[];
281
+ minimized: boolean;
282
+ displayedRegions: import("@jbrowse/core/util").Region[];
283
+ offsetPx: number;
284
+ bpPerPx: number;
285
+ hideHeader: boolean;
286
+ hideHeaderOverview: boolean;
287
+ hideNoTracksActive: boolean;
288
+ trackSelectorType: string;
289
+ showCenterLine: boolean;
290
+ showCytobandsSetting: boolean;
291
+ trackLabels: string;
292
+ showGridlines: boolean;
293
+ highlight: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType[];
294
+ colorByCDS: boolean;
295
+ showTrackOutlines: boolean;
296
+ }>>;
272
297
  viewTrackConfigs: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyModelType>;
273
298
  } & {
274
299
  type: import("mobx-state-tree").ISimpleType<"LinearSyntenyView">;
@@ -336,10 +361,10 @@ export default function stateModelFactory(pluginManager: PluginManager): import(
336
361
  type?: undefined;
337
362
  } | {
338
363
  label: string;
339
- onClick: () => void;
340
364
  checked: boolean;
341
365
  type: string;
342
366
  description: string;
367
+ onClick: () => void;
343
368
  icon?: undefined;
344
369
  } | {
345
370
  label: string;
@@ -423,6 +448,7 @@ export default function stateModelFactory(pluginManager: PluginManager): import(
423
448
  highlight: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IType<import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType>>, [undefined]>;
424
449
  colorByCDS: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
425
450
  showTrackOutlines: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
451
+ init: import("mobx-state-tree").IType<import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined>;
426
452
  }, {
427
453
  width: number;
428
454
  } & {
@@ -451,6 +477,7 @@ export default function stateModelFactory(pluginManager: PluginManager): import(
451
477
  readonly interRegionPaddingWidth: number;
452
478
  readonly assemblyNames: string[];
453
479
  readonly stickyViewHeaders: boolean;
480
+ readonly rubberbandTop: number;
454
481
  readonly pinnedTracksTop: number;
455
482
  } & {
456
483
  scaleBarDisplayPrefix(): string | undefined;
@@ -537,6 +564,7 @@ export default function stateModelFactory(pluginManager: PluginManager): import(
537
564
  setDraggingTrackId(idx?: string): void;
538
565
  setScaleFactor(factor: number): void;
539
566
  clearView(): void;
567
+ setInit(arg?: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState): void;
540
568
  exportSvg(opts?: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").ExportSvgOptions): Promise<void>;
541
569
  } & {
542
570
  slide: (viewWidths: number) => void;
@@ -557,7 +585,6 @@ export default function stateModelFactory(pluginManager: PluginManager): import(
557
585
  readonly coarseVisibleLocStrings: string;
558
586
  } & {
559
587
  setCoarseDynamicBlocks(blocks: import("@jbrowse/core/util/blockTypes").BlockSet): void;
560
- afterAttach(): void;
561
588
  } & {
562
589
  moveTo(start?: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").BpOffset, end?: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").BpOffset): void;
563
590
  navToLocString(input: string, optAssemblyName?: string): Promise<void>;
@@ -565,6 +592,7 @@ export default function stateModelFactory(pluginManager: PluginManager): import(
565
592
  input: string;
566
593
  assembly: import("@jbrowse/core/assemblyManager/assembly").Assembly;
567
594
  }): Promise<void>;
595
+ navToLocation(parsedLocString: import("@jbrowse/core/util").ParsedLocString, assemblyName?: string): Promise<void>;
568
596
  navToLocations(parsedLocStrings: import("@jbrowse/core/util").ParsedLocString[], assemblyName?: string): Promise<void>;
569
597
  navTo(query: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").NavLocation): void;
570
598
  navToMultiple(locations: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").NavLocation[]): void;
@@ -603,6 +631,7 @@ export default function stateModelFactory(pluginManager: PluginManager): import(
603
631
  } | undefined;
604
632
  } & {
605
633
  afterCreate(): void;
634
+ afterAttach(): void;
606
635
  }, import("mobx-state-tree").ModelCreationType<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
607
636
  id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
608
637
  displayName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
@@ -625,7 +654,28 @@ export default function stateModelFactory(pluginManager: PluginManager): import(
625
654
  highlight: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IType<import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType>>, [undefined]>;
626
655
  colorByCDS: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
627
656
  showTrackOutlines: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
628
- }>>, import("mobx-state-tree")._NotCustomized>>;
657
+ init: import("mobx-state-tree").IType<import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined>;
658
+ }>>, {
659
+ id: string;
660
+ type: string;
661
+ displayName: string | undefined;
662
+ tracks: any[];
663
+ minimized: boolean;
664
+ displayedRegions: import("@jbrowse/core/util").Region[];
665
+ offsetPx: number;
666
+ bpPerPx: number;
667
+ hideHeader: boolean;
668
+ hideHeaderOverview: boolean;
669
+ hideNoTracksActive: boolean;
670
+ trackSelectorType: string;
671
+ showCenterLine: boolean;
672
+ showCytobandsSetting: boolean;
673
+ trackLabels: string;
674
+ showGridlines: boolean;
675
+ highlight: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType[];
676
+ colorByCDS: boolean;
677
+ showTrackOutlines: boolean;
678
+ }>>;
629
679
  viewTrackConfigs: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyModelType>;
630
680
  }>> & import("mobx-state-tree/dist/internal").NonEmptyObject & import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
631
681
  export type LinearSyntenyViewStateModel = ReturnType<typeof stateModelFactory>;
@@ -112,12 +112,12 @@ function stateModelFactory(pluginManager) {
112
112
  },
113
113
  {
114
114
  label: 'Draw CIGAR',
115
- onClick: () => {
116
- self.setDrawCIGAR(!self.drawCIGAR);
117
- },
118
115
  checked: self.drawCIGAR,
119
116
  type: 'checkbox',
120
117
  description: 'Draws per-base CIGAR level alignments',
118
+ onClick: () => {
119
+ self.setDrawCIGAR(!self.drawCIGAR);
120
+ },
121
121
  },
122
122
  {
123
123
  label: 'Link views',
@@ -51,9 +51,9 @@ function linearSyntenyViewHelperModelFactory(pluginManager) {
51
51
  const config = (0, mobx_state_tree_1.resolveIdentifier)(schema, (0, mobx_state_tree_1.getRoot)(self), trackId);
52
52
  const shownTracks = self.tracks.filter(t => t.configuration === config);
53
53
  (0, mobx_1.transaction)(() => {
54
- shownTracks.forEach(t => {
54
+ for (const t of shownTracks) {
55
55
  self.tracks.remove(t);
56
- });
56
+ }
57
57
  });
58
58
  return shownTracks.length;
59
59
  },
@@ -13,7 +13,7 @@ const useStyles = makeStyles()(theme => {
13
13
  height: '100%',
14
14
  background: alpha(theme.palette.tertiary.main, 0.7),
15
15
  position: 'absolute',
16
- zIndex: 10,
16
+ zIndex: 900,
17
17
  textAlign: 'center',
18
18
  overflow: 'hidden',
19
19
  },
@@ -76,13 +76,13 @@ const LinearComparativeRubberband = observer(function Rubberband({ model, Contro
76
76
  clientY,
77
77
  });
78
78
  transaction(() => {
79
- model.views.forEach(view => {
79
+ for (const view of model.views) {
80
80
  const args = computeOffsets(offsetX, view);
81
81
  if (args) {
82
82
  const { leftOffset, rightOffset } = args;
83
83
  view.setOffsets(leftOffset, rightOffset);
84
84
  }
85
- });
85
+ }
86
86
  });
87
87
  setGuideX(undefined);
88
88
  }
@@ -120,9 +120,9 @@ const LinearComparativeRubberband = observer(function Rubberband({ model, Contro
120
120
  function mouseOut() {
121
121
  setGuideX(undefined);
122
122
  transaction(() => {
123
- model.views.forEach(view => {
123
+ for (const view of model.views) {
124
124
  view.setOffsets(undefined, undefined);
125
- });
125
+ }
126
126
  });
127
127
  }
128
128
  function handleClose() {
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { stringify } from '@jbrowse/core/util';
3
- import { Tooltip, Typography } from '@mui/material';
3
+ import { Tooltip } from '@mui/material';
4
4
  import { observer } from 'mobx-react';
5
5
  import { makeStyles } from 'tss-react/mui';
6
6
  const useStyles = makeStyles()({
@@ -9,19 +9,16 @@ const useStyles = makeStyles()({
9
9
  height: '100%',
10
10
  width: 1,
11
11
  position: 'absolute',
12
- zIndex: 10,
13
- },
14
- sm: {
15
- fontSize: 10,
12
+ background: 'red',
13
+ zIndex: 1001,
16
14
  },
17
15
  });
18
16
  const VerticalGuide = observer(function ({ model, coordX, }) {
19
17
  const { classes } = useStyles();
20
18
  return (_jsx(Tooltip, { open: true, placement: "top", title: model.views
21
19
  .map(view => view.pxToBp(coordX))
22
- .map((elt, idx) => (_jsx(Typography, { className: classes.sm, children: stringify(elt, true) }, [JSON.stringify(elt), idx].join('-')))), arrow: true, children: _jsx("div", { className: classes.guide, style: {
20
+ .map((elt, idx) => (_jsx("div", { children: stringify(elt, true) }, [JSON.stringify(elt), idx].join('-')))), arrow: true, children: _jsx("div", { className: classes.guide, style: {
23
21
  left: coordX,
24
- background: 'red',
25
22
  } }) }));
26
23
  });
27
24
  export default VerticalGuide;
@@ -49,6 +49,7 @@ declare function stateModelFactory(pluginManager: PluginManager): import("mobx-s
49
49
  highlight: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IType<import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType>>, [undefined]>;
50
50
  colorByCDS: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
51
51
  showTrackOutlines: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
52
+ init: import("mobx-state-tree").IType<import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined>;
52
53
  }, {
53
54
  width: number;
54
55
  } & {
@@ -77,6 +78,7 @@ declare function stateModelFactory(pluginManager: PluginManager): import("mobx-s
77
78
  readonly interRegionPaddingWidth: number;
78
79
  readonly assemblyNames: string[];
79
80
  readonly stickyViewHeaders: boolean;
81
+ readonly rubberbandTop: number;
80
82
  readonly pinnedTracksTop: number;
81
83
  } & {
82
84
  scaleBarDisplayPrefix(): string | undefined;
@@ -163,6 +165,7 @@ declare function stateModelFactory(pluginManager: PluginManager): import("mobx-s
163
165
  setDraggingTrackId(idx?: string): void;
164
166
  setScaleFactor(factor: number): void;
165
167
  clearView(): void;
168
+ setInit(arg?: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState): void;
166
169
  exportSvg(opts?: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").ExportSvgOptions): Promise<void>;
167
170
  } & {
168
171
  slide: (viewWidths: number) => void;
@@ -183,7 +186,6 @@ declare function stateModelFactory(pluginManager: PluginManager): import("mobx-s
183
186
  readonly coarseVisibleLocStrings: string;
184
187
  } & {
185
188
  setCoarseDynamicBlocks(blocks: import("@jbrowse/core/util/blockTypes").BlockSet): void;
186
- afterAttach(): void;
187
189
  } & {
188
190
  moveTo(start?: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").BpOffset, end?: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").BpOffset): void;
189
191
  navToLocString(input: string, optAssemblyName?: string): Promise<void>;
@@ -191,6 +193,7 @@ declare function stateModelFactory(pluginManager: PluginManager): import("mobx-s
191
193
  input: string;
192
194
  assembly: import("@jbrowse/core/assemblyManager/assembly").Assembly;
193
195
  }): Promise<void>;
196
+ navToLocation(parsedLocString: import("@jbrowse/core/util").ParsedLocString, assemblyName?: string): Promise<void>;
194
197
  navToLocations(parsedLocStrings: import("@jbrowse/core/util").ParsedLocString[], assemblyName?: string): Promise<void>;
195
198
  navTo(query: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").NavLocation): void;
196
199
  navToMultiple(locations: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").NavLocation[]): void;
@@ -229,6 +232,7 @@ declare function stateModelFactory(pluginManager: PluginManager): import("mobx-s
229
232
  } | undefined;
230
233
  } & {
231
234
  afterCreate(): void;
235
+ afterAttach(): void;
232
236
  }, import("mobx-state-tree").ModelCreationType<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
233
237
  id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
234
238
  displayName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
@@ -251,7 +255,28 @@ declare function stateModelFactory(pluginManager: PluginManager): import("mobx-s
251
255
  highlight: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IType<import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType>>, [undefined]>;
252
256
  colorByCDS: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
253
257
  showTrackOutlines: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
254
- }>>, import("mobx-state-tree")._NotCustomized>>;
258
+ init: import("mobx-state-tree").IType<import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined>;
259
+ }>>, {
260
+ id: string;
261
+ type: string;
262
+ displayName: string | undefined;
263
+ tracks: any[];
264
+ minimized: boolean;
265
+ displayedRegions: import("@jbrowse/core/util").Region[];
266
+ offsetPx: number;
267
+ bpPerPx: number;
268
+ hideHeader: boolean;
269
+ hideHeaderOverview: boolean;
270
+ hideNoTracksActive: boolean;
271
+ trackSelectorType: string;
272
+ showCenterLine: boolean;
273
+ showCytobandsSetting: boolean;
274
+ trackLabels: string;
275
+ showGridlines: boolean;
276
+ highlight: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType[];
277
+ colorByCDS: boolean;
278
+ showTrackOutlines: boolean;
279
+ }>>;
255
280
  viewTrackConfigs: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyModelType>;
256
281
  }, {
257
282
  width: number;
@@ -339,6 +364,7 @@ declare function stateModelFactory(pluginManager: PluginManager): import("mobx-s
339
364
  highlight: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IType<import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType>>, [undefined]>;
340
365
  colorByCDS: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
341
366
  showTrackOutlines: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
367
+ init: import("mobx-state-tree").IType<import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined>;
342
368
  }, {
343
369
  width: number;
344
370
  } & {
@@ -367,6 +393,7 @@ declare function stateModelFactory(pluginManager: PluginManager): import("mobx-s
367
393
  readonly interRegionPaddingWidth: number;
368
394
  readonly assemblyNames: string[];
369
395
  readonly stickyViewHeaders: boolean;
396
+ readonly rubberbandTop: number;
370
397
  readonly pinnedTracksTop: number;
371
398
  } & {
372
399
  scaleBarDisplayPrefix(): string | undefined;
@@ -453,6 +480,7 @@ declare function stateModelFactory(pluginManager: PluginManager): import("mobx-s
453
480
  setDraggingTrackId(idx?: string): void;
454
481
  setScaleFactor(factor: number): void;
455
482
  clearView(): void;
483
+ setInit(arg?: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState): void;
456
484
  exportSvg(opts?: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").ExportSvgOptions): Promise<void>;
457
485
  } & {
458
486
  slide: (viewWidths: number) => void;
@@ -473,7 +501,6 @@ declare function stateModelFactory(pluginManager: PluginManager): import("mobx-s
473
501
  readonly coarseVisibleLocStrings: string;
474
502
  } & {
475
503
  setCoarseDynamicBlocks(blocks: import("@jbrowse/core/util/blockTypes").BlockSet): void;
476
- afterAttach(): void;
477
504
  } & {
478
505
  moveTo(start?: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").BpOffset, end?: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").BpOffset): void;
479
506
  navToLocString(input: string, optAssemblyName?: string): Promise<void>;
@@ -481,6 +508,7 @@ declare function stateModelFactory(pluginManager: PluginManager): import("mobx-s
481
508
  input: string;
482
509
  assembly: import("@jbrowse/core/assemblyManager/assembly").Assembly;
483
510
  }): Promise<void>;
511
+ navToLocation(parsedLocString: import("@jbrowse/core/util").ParsedLocString, assemblyName?: string): Promise<void>;
484
512
  navToLocations(parsedLocStrings: import("@jbrowse/core/util").ParsedLocString[], assemblyName?: string): Promise<void>;
485
513
  navTo(query: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").NavLocation): void;
486
514
  navToMultiple(locations: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").NavLocation[]): void;
@@ -519,6 +547,7 @@ declare function stateModelFactory(pluginManager: PluginManager): import("mobx-s
519
547
  } | undefined;
520
548
  } & {
521
549
  afterCreate(): void;
550
+ afterAttach(): void;
522
551
  }, import("mobx-state-tree").ModelCreationType<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
523
552
  id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
524
553
  displayName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
@@ -541,7 +570,28 @@ declare function stateModelFactory(pluginManager: PluginManager): import("mobx-s
541
570
  highlight: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IType<import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType>>, [undefined]>;
542
571
  colorByCDS: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
543
572
  showTrackOutlines: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
544
- }>>, import("mobx-state-tree")._NotCustomized>>;
573
+ init: import("mobx-state-tree").IType<import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined>;
574
+ }>>, {
575
+ id: string;
576
+ type: string;
577
+ displayName: string | undefined;
578
+ tracks: any[];
579
+ minimized: boolean;
580
+ displayedRegions: import("@jbrowse/core/util").Region[];
581
+ offsetPx: number;
582
+ bpPerPx: number;
583
+ hideHeader: boolean;
584
+ hideHeaderOverview: boolean;
585
+ hideNoTracksActive: boolean;
586
+ trackSelectorType: string;
587
+ showCenterLine: boolean;
588
+ showCytobandsSetting: boolean;
589
+ trackLabels: string;
590
+ showGridlines: boolean;
591
+ highlight: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType[];
592
+ colorByCDS: boolean;
593
+ showTrackOutlines: boolean;
594
+ }>>;
545
595
  viewTrackConfigs: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyModelType>;
546
596
  }>>, import("mobx-state-tree")._NotCustomized>;
547
597
  export type LinearComparativeViewStateModel = ReturnType<typeof stateModelFactory>;
@@ -64,18 +64,23 @@ function stateModelFactory(pluginManager) {
64
64
  }
65
65
  },
66
66
  onSubviewAction(actionName, path, args) {
67
- self.views.forEach(view => {
67
+ for (const view of self.views) {
68
68
  const ret = getPath(view);
69
69
  if (!ret.endsWith(path)) {
70
70
  view[actionName](args === null || args === void 0 ? void 0 : args[0]);
71
71
  }
72
- });
72
+ }
73
73
  },
74
74
  setWidth(newWidth) {
75
75
  self.width = newWidth;
76
76
  },
77
77
  setViews(views) {
78
78
  self.views = cast(views);
79
+ const levels = [];
80
+ for (let i = 0; i < views.length - 1; i++) {
81
+ levels.push({ level: i });
82
+ }
83
+ self.levels = cast(levels);
79
84
  },
80
85
  removeView(view) {
81
86
  self.views.remove(view);
@@ -98,12 +98,12 @@ export default function ReadVsRefDialog({ track, feature: preFeature, handleClos
98
98
  };
99
99
  const totalLength = flags & 2048 ? getLength(suppAlns[0].CIGAR) : getLength(cigar);
100
100
  const features = [feat, ...suppAlns];
101
- features.forEach((f, idx) => {
101
+ for (const [idx, f] of features.entries()) {
102
102
  f.refName = assembly.getCanonicalRefName(f.refName) || f.refName;
103
103
  f.syntenyId = idx;
104
104
  f.mate.syntenyId = idx;
105
105
  f.mate.uniqueId = `${f.uniqueId}_mate`;
106
- });
106
+ }
107
107
  features.sort((a, b) => a.clipPos - b.clipPos);
108
108
  const featSeq = feature.get('seq');
109
109
  const configFeatureStore = [...features, ...features.map(f => f.mate)];
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useState } from 'react';
3
3
  import { ErrorMessage, FileSelector } from '@jbrowse/core/ui';
4
4
  import HelpIcon from '@mui/icons-material/Help';
5
- import { Button, FormControlLabel, Grid2, Paper, Radio, RadioGroup, Tooltip, Typography, } from '@mui/material';
5
+ import { Button, FormControlLabel, Grid, Paper, Radio, RadioGroup, Tooltip, Typography, } from '@mui/material';
6
6
  import { observer } from 'mobx-react';
7
7
  import { getAdapter } from './getAdapter';
8
8
  import { basename, extName, getName, stripGz } from './util';
@@ -68,7 +68,7 @@ const ImportSyntenyOpenCustomTrack = observer(function ({ model, assembly1, asse
68
68
  };
69
69
  return (_jsxs(Paper, { style: { padding: 12 }, children: [error ? _jsx(ErrorMessage, { error: error }) : null, _jsx(Typography, { style: { textAlign: 'center' }, children: "Add a .paf (minimap2), .delta (Mummer), .chain (UCSC liftover), .anchors or .anchors.simple (MCScan), or .pif.gz (jbrowse CLI make-pif) file to view. These file types can also be gzipped." }), _jsx(RadioGroup, { value: radioOption, onChange: event => {
70
70
  setValue(event.target.value);
71
- }, children: _jsx(Grid2, { container: true, justifyContent: "center", children: [
71
+ }, children: _jsx(Grid, { container: true, justifyContent: "center", children: [
72
72
  '.paf',
73
73
  '.delta',
74
74
  '.out',
@@ -76,7 +76,7 @@ const ImportSyntenyOpenCustomTrack = observer(function ({ model, assembly1, asse
76
76
  '.anchors',
77
77
  '.anchors.simple',
78
78
  '.pif.gz',
79
- ].map(extension => (_jsx(FormControlLabel, { value: extension, control: _jsx(Radio, {}), label: extension }, extension))) }) }), _jsx(Grid2, { container: true, justifyContent: "center", children: radioOption === '.paf' ||
79
+ ].map(extension => (_jsx(FormControlLabel, { value: extension, control: _jsx(Radio, {}), label: extension }, extension))) }) }), _jsx(Grid, { container: true, justifyContent: "center", children: radioOption === '.paf' ||
80
80
  radioOption === '.out' ||
81
81
  radioOption === '.delta' ||
82
82
  radioOption === '.chain' ||
@@ -0,0 +1,11 @@
1
+ import type { LinearSyntenyViewModel } from '../../model';
2
+ declare const LeftPanel: ({ model, selectedAssemblyNames, setSelectedAssemblyNames, selectedRow, setSelectedRow, defaultAssemblyName, onLaunch, }: {
3
+ model: LinearSyntenyViewModel;
4
+ selectedAssemblyNames: string[];
5
+ setSelectedAssemblyNames: (names: string[]) => void;
6
+ selectedRow: number;
7
+ setSelectedRow: (row: number) => void;
8
+ defaultAssemblyName: string;
9
+ onLaunch: () => void;
10
+ }) => import("react/jsx-runtime").JSX.Element;
11
+ export default LeftPanel;
@@ -0,0 +1,53 @@
1
+ import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { AssemblySelector } from '@jbrowse/core/ui';
3
+ import { getSession, notEmpty } from '@jbrowse/core/util';
4
+ import ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos';
5
+ import CloseIcon from '@mui/icons-material/Close';
6
+ import { Button, IconButton } from '@mui/material';
7
+ import { observer } from 'mobx-react';
8
+ import { makeStyles } from 'tss-react/mui';
9
+ const useStyles = makeStyles()(theme => ({
10
+ mb: {
11
+ marginBottom: 10,
12
+ },
13
+ button: {
14
+ margin: theme.spacing(2),
15
+ },
16
+ rel: {
17
+ position: 'relative',
18
+ },
19
+ synbutton: {
20
+ position: 'absolute',
21
+ top: 30,
22
+ },
23
+ bg: {
24
+ background: theme.palette.divider,
25
+ },
26
+ }));
27
+ const AssemblyRows = observer(function ({ selectedRow, selectedAssemblyNames, setSelectedRow, setSelectedAssemblyNames, model, }) {
28
+ const { classes, cx } = useStyles();
29
+ const session = getSession(model);
30
+ return selectedAssemblyNames.map((assemblyName, idx) => (_jsxs("div", { className: classes.rel, children: [_jsxs("span", { children: ["Row ", idx + 1, ": "] }), _jsx(IconButton, { disabled: selectedAssemblyNames.length <= 2, onClick: () => {
31
+ model.importFormRemoveRow(idx);
32
+ setSelectedAssemblyNames(selectedAssemblyNames
33
+ .map((asm, idx2) => (idx2 === idx ? undefined : asm))
34
+ .filter(notEmpty));
35
+ if (selectedRow >= selectedAssemblyNames.length - 2) {
36
+ setSelectedRow(0);
37
+ }
38
+ }, children: _jsx(CloseIcon, {}) }), _jsx(AssemblySelector, { helperText: "", selected: assemblyName, onChange: newAssembly => {
39
+ setSelectedAssemblyNames(selectedAssemblyNames.map((asm, idx2) => idx2 === idx ? newAssembly : asm));
40
+ }, session: session }), idx !== selectedAssemblyNames.length - 1 ? (_jsx(IconButton, { "data-testid": "synbutton", className: cx(classes.synbutton, idx === selectedRow ? classes.bg : undefined), onClick: () => {
41
+ setSelectedRow(idx);
42
+ }, children: _jsx(ArrowForwardIosIcon, {}) })) : null] }, `${assemblyName}-${idx}`)));
43
+ });
44
+ const LeftPanel = observer(function ({ model, selectedAssemblyNames, setSelectedAssemblyNames, selectedRow, setSelectedRow, defaultAssemblyName, onLaunch, }) {
45
+ const { classes } = useStyles();
46
+ return (_jsxs(_Fragment, { children: [_jsx("div", { className: classes.mb, children: "Select assemblies for linear synteny view" }), _jsx(AssemblyRows, { model: model, selectedAssemblyNames: selectedAssemblyNames, setSelectedAssemblyNames: setSelectedAssemblyNames, selectedRow: selectedRow, setSelectedRow: setSelectedRow }), _jsxs("div", { children: [_jsx(Button, { className: classes.button, variant: "contained", color: "secondary", onClick: () => {
47
+ setSelectedAssemblyNames([
48
+ ...selectedAssemblyNames,
49
+ defaultAssemblyName,
50
+ ]);
51
+ }, children: "Add row" }), _jsx(Button, { className: classes.button, onClick: onLaunch, variant: "contained", color: "primary", children: "Launch" })] })] }));
52
+ });
53
+ export default LeftPanel;