@jbrowse/plugin-linear-comparative-view 2.15.0 → 2.15.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.
@@ -37,7 +37,7 @@ declare function stateModelFactory(schema: AnyConfigurationSchemaType): import("
37
37
  }, {
38
38
  renderInProgress: AbortController | undefined;
39
39
  filled: boolean;
40
- reactElement: import("react").ReactElement | undefined;
40
+ reactElement: React.ReactElement | undefined;
41
41
  features: Map<string, import("@jbrowse/core/util").Feature> | undefined;
42
42
  layout: any;
43
43
  status: string;
@@ -48,10 +48,10 @@ declare function stateModelFactory(schema: AnyConfigurationSchemaType): import("
48
48
  model: {
49
49
  error?: unknown;
50
50
  reload: () => void;
51
- message: import("react").ReactNode;
51
+ message: React.ReactNode;
52
52
  filled?: boolean;
53
53
  status?: string;
54
- reactElement?: import("react").ReactElement;
54
+ reactElement?: React.ReactElement;
55
55
  };
56
56
  }) => import("react").JSX.Element | undefined;
57
57
  renderProps: any;
@@ -62,7 +62,7 @@ declare function stateModelFactory(schema: AnyConfigurationSchemaType): import("
62
62
  setLoading(abortController: AbortController): void;
63
63
  setMessage(messageText: string): void;
64
64
  setRendered(props: {
65
- reactElement: import("react").ReactElement;
65
+ reactElement: React.ReactElement;
66
66
  features: Map<string, import("@jbrowse/core/util").Feature>;
67
67
  layout: any;
68
68
  maxHeightReached: boolean;
@@ -135,7 +135,7 @@ declare function stateModelFactory(schema: AnyConfigurationSchemaType): import("
135
135
  error: unknown;
136
136
  message: string | undefined;
137
137
  } & {
138
- readonly RenderingComponent: import("react").FC<{
138
+ readonly RenderingComponent: React.FC<{
139
139
  model: {
140
140
  id: string;
141
141
  type: string;
@@ -156,7 +156,7 @@ declare function stateModelFactory(schema: AnyConfigurationSchemaType): import("
156
156
  onHorizontalScroll?: () => void;
157
157
  blockState?: Record<string, any>;
158
158
  }>;
159
- readonly DisplayBlurb: import("react").FC<{
159
+ readonly DisplayBlurb: React.FC<{
160
160
  model: {
161
161
  id: string;
162
162
  type: string;
@@ -179,7 +179,7 @@ declare function stateModelFactory(schema: AnyConfigurationSchemaType): import("
179
179
  readonly parentTrack: any;
180
180
  renderProps(): any;
181
181
  readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType;
182
- readonly DisplayMessageComponent: undefined | import("react").FC<any>;
182
+ readonly DisplayMessageComponent: undefined | React.FC<any>;
183
183
  trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
184
184
  readonly viewMenuActions: import("@jbrowse/core/ui").MenuItem[];
185
185
  regionCannotBeRendered(): null;
@@ -225,13 +225,13 @@ declare function stateModelFactory(schema: AnyConfigurationSchemaType): import("
225
225
  featureIdUnderMouse: undefined | string;
226
226
  contextMenuFeature: undefined | import("@jbrowse/core/util").Feature;
227
227
  } & {
228
+ readonly DisplayMessageComponent: import("react").FC<any> | undefined;
228
229
  readonly blockType: "dynamicBlocks" | "staticBlocks";
229
230
  readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
230
231
  } & {
231
232
  readonly renderDelay: number;
232
- readonly TooltipComponent: import("react").FC<any>;
233
+ readonly TooltipComponent: import("@jbrowse/core/util").AnyReactComponentType;
233
234
  readonly selectedFeatureId: string | undefined;
234
- readonly DisplayMessageComponent: undefined | import("react").FC<any>;
235
235
  } & {
236
236
  readonly features: import("@jbrowse/core/util/compositeMap").default<string, import("@jbrowse/core/util").Feature>;
237
237
  readonly featureUnderMouse: import("@jbrowse/core/util").Feature | undefined;
@@ -329,7 +329,6 @@ declare function stateModelFactory(schema: AnyConfigurationSchemaType): import("
329
329
  icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
330
330
  muiName: string;
331
331
  };
332
- priority: number;
333
332
  onClick: () => void;
334
333
  })[];
335
334
  } & {
@@ -19,7 +19,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
19
19
  error: unknown;
20
20
  message: string | undefined;
21
21
  } & {
22
- readonly RenderingComponent: import("react").FC<{
22
+ readonly RenderingComponent: React.FC<{
23
23
  model: {
24
24
  id: string;
25
25
  type: string;
@@ -42,7 +42,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
42
42
  onHorizontalScroll?: () => void;
43
43
  blockState?: Record<string, any>;
44
44
  }>;
45
- readonly DisplayBlurb: import("react").FC<{
45
+ readonly DisplayBlurb: React.FC<{
46
46
  model: {
47
47
  id: string;
48
48
  type: string;
@@ -65,7 +65,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
65
65
  readonly parentTrack: any;
66
66
  renderProps(): any;
67
67
  readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType;
68
- readonly DisplayMessageComponent: undefined | import("react").FC<any>;
68
+ readonly DisplayMessageComponent: undefined | React.FC<any>;
69
69
  trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
70
70
  readonly viewMenuActions: import("@jbrowse/core/ui").MenuItem[];
71
71
  regionCannotBeRendered(): null;
@@ -105,7 +105,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
105
105
  error: unknown;
106
106
  message: string | undefined;
107
107
  } & {
108
- readonly RenderingComponent: import("react").FC<{
108
+ readonly RenderingComponent: React.FC<{
109
109
  model: {
110
110
  id: string;
111
111
  type: string;
@@ -128,7 +128,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
128
128
  onHorizontalScroll?: () => void;
129
129
  blockState?: Record<string, any>;
130
130
  }>;
131
- readonly DisplayBlurb: import("react").FC<{
131
+ readonly DisplayBlurb: React.FC<{
132
132
  model: {
133
133
  id: string;
134
134
  type: string;
@@ -151,7 +151,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
151
151
  readonly parentTrack: any;
152
152
  renderProps(): any;
153
153
  readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType;
154
- readonly DisplayMessageComponent: undefined | import("react").FC<any>;
154
+ readonly DisplayMessageComponent: undefined | React.FC<any>;
155
155
  trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
156
156
  readonly viewMenuActions: import("@jbrowse/core/ui").MenuItem[];
157
157
  regionCannotBeRendered(): null;
@@ -177,7 +177,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
177
177
  error: unknown;
178
178
  message: string | undefined;
179
179
  } & {
180
- readonly RenderingComponent: import("react").FC<{
180
+ readonly RenderingComponent: React.FC<{
181
181
  model: {
182
182
  id: string;
183
183
  type: string;
@@ -198,7 +198,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
198
198
  onHorizontalScroll?: () => void;
199
199
  blockState?: Record<string, any>;
200
200
  }>;
201
- readonly DisplayBlurb: import("react").FC<{
201
+ readonly DisplayBlurb: React.FC<{
202
202
  model: {
203
203
  id: string;
204
204
  type: string;
@@ -221,7 +221,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
221
221
  readonly parentTrack: any;
222
222
  renderProps(): any;
223
223
  readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType;
224
- readonly DisplayMessageComponent: undefined | import("react").FC<any>;
224
+ readonly DisplayMessageComponent: undefined | React.FC<any>;
225
225
  trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
226
226
  readonly viewMenuActions: import("@jbrowse/core/ui").MenuItem[];
227
227
  regionCannotBeRendered(): null;
@@ -68,8 +68,8 @@ declare function stateModelFactory(pluginManager: PluginManager): import("mobx-s
68
68
  readonly assemblyNames: string[];
69
69
  } & {
70
70
  scaleBarDisplayPrefix(): string | undefined;
71
- MiniControlsComponent(): import("react").FC<any>;
72
- HeaderComponent(): import("react").FC<any>;
71
+ MiniControlsComponent(): React.FC<any>;
72
+ HeaderComponent(): React.FC<any>;
73
73
  readonly assemblyErrors: string;
74
74
  readonly assembliesInitialized: boolean;
75
75
  readonly initialized: boolean;
@@ -31,11 +31,10 @@ const mobx_react_1 = require("mobx-react");
31
31
  const util_1 = require("@jbrowse/core/util");
32
32
  const mobx_1 = require("mobx");
33
33
  const mui_1 = require("tss-react/mui");
34
- // locals
35
- const SyntenyTooltip_1 = __importDefault(require("./SyntenyTooltip"));
36
34
  const drawSynteny_1 = require("../drawSynteny");
37
35
  const SyntenyContextMenu_1 = __importDefault(require("./SyntenyContextMenu"));
38
36
  const util_2 = require("./util");
37
+ const SyntenyTooltip = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./SyntenyTooltip'))));
39
38
  const useStyles = (0, mui_1.makeStyles)()({
40
39
  pix: {
41
40
  imageRendering: 'pixelated',
@@ -208,7 +207,7 @@ const LinearSyntenyRendering = (0, mobx_react_1.observer)(function ({ model, })
208
207
  }, "data-testid": "synteny_canvas", className: classes.abs, width: width, height: height }),
209
208
  react_1.default.createElement("canvas", { ref: k3, className: classes.pix, width: width, height: height }),
210
209
  react_1.default.createElement("canvas", { ref: k4, className: classes.pix, width: width, height: height }),
211
- mouseoverId && tooltip && currX && currY ? (react_1.default.createElement(SyntenyTooltip_1.default, { title: tooltip })) : null,
210
+ mouseoverId && tooltip && currX && currY ? (react_1.default.createElement(SyntenyTooltip, { title: tooltip })) : null,
212
211
  anchorEl ? (react_1.default.createElement(SyntenyContextMenu_1.default, { model: model, anchorEl: anchorEl, onClose: () => {
213
212
  setAnchorEl(undefined);
214
213
  } })) : null));
@@ -5,47 +5,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const react_1 = __importDefault(require("react"));
7
7
  const mobx_react_1 = require("mobx-react");
8
- const material_1 = require("@mui/material");
9
- const mui_1 = require("tss-react/mui");
10
- const react_2 = require("@floating-ui/react");
11
8
  const ui_1 = require("@jbrowse/core/ui");
12
- function round(value) {
13
- return Math.round(value * 1e5) / 1e5;
14
- }
15
- const useStyles = (0, mui_1.makeStyles)()(theme => ({
16
- // these styles come from
17
- // https://github.com/mui-org/material-ui/blob/master/packages/material-ui/src/Tooltip/Tooltip.js
18
- tooltip: {
19
- position: 'absolute',
20
- pointerEvents: 'none',
21
- backgroundColor: (0, material_1.alpha)(theme.palette.grey[700], 0.9),
22
- borderRadius: theme.shape.borderRadius,
23
- color: theme.palette.common.white,
24
- fontFamily: theme.typography.fontFamily,
25
- padding: '4px 8px',
26
- fontSize: theme.typography.pxToRem(12),
27
- lineHeight: `${round(14 / 10)}em`,
28
- maxWidth: 300,
29
- wordWrap: 'break-word',
30
- },
31
- }));
9
+ const BaseTooltip_1 = __importDefault(require("@jbrowse/core/ui/BaseTooltip"));
32
10
  const SyntenyTooltip = (0, mobx_react_1.observer)(function ({ title }) {
33
- var _a, _b;
34
- const theme = (0, material_1.useTheme)();
35
- const { classes } = useStyles();
36
- const { refs, floatingStyles, context } = (0, react_2.useFloating)({
37
- placement: 'right',
38
- strategy: 'fixed',
39
- });
40
- const clientPoint = (0, react_2.useClientPoint)(context);
41
- const { getFloatingProps } = (0, react_2.useInteractions)([clientPoint]);
42
- const popperTheme = (_a = theme.components) === null || _a === void 0 ? void 0 : _a.MuiPopper;
43
- return title ? (react_1.default.createElement(material_1.Portal, { container: (_b = popperTheme === null || popperTheme === void 0 ? void 0 : popperTheme.defaultProps) === null || _b === void 0 ? void 0 : _b.container },
44
- react_1.default.createElement("div", { className: classes.tooltip, ref: refs.setFloating, style: {
45
- ...floatingStyles,
46
- zIndex: 100000,
47
- pointerEvents: 'none',
48
- }, ...getFloatingProps() },
49
- react_1.default.createElement(ui_1.SanitizedHTML, { html: title })))) : null;
11
+ return title ? (react_1.default.createElement(BaseTooltip_1.default, null,
12
+ react_1.default.createElement(ui_1.SanitizedHTML, { html: title }))) : null;
50
13
  });
51
14
  exports.default = SyntenyTooltip;
@@ -39,7 +39,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
39
39
  error: unknown;
40
40
  message: string | undefined;
41
41
  } & {
42
- readonly RenderingComponent: import("react").FC<{
42
+ readonly RenderingComponent: React.FC<{
43
43
  model: {
44
44
  id: string;
45
45
  type: string;
@@ -60,7 +60,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
60
60
  onHorizontalScroll?: () => void;
61
61
  blockState?: Record<string, any>;
62
62
  }>;
63
- readonly DisplayBlurb: import("react").FC<{
63
+ readonly DisplayBlurb: React.FC<{
64
64
  model: {
65
65
  id: string;
66
66
  type: string;
@@ -85,7 +85,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
85
85
  readonly parentTrack: any;
86
86
  renderProps(): any;
87
87
  readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType;
88
- readonly DisplayMessageComponent: undefined | import("react").FC<any>;
88
+ readonly DisplayMessageComponent: undefined | React.FC<any>;
89
89
  trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
90
90
  readonly viewMenuActions: import("@jbrowse/core/ui").MenuItem[];
91
91
  regionCannotBeRendered(): null;
@@ -122,7 +122,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
122
122
  error: unknown;
123
123
  message: string | undefined;
124
124
  } & {
125
- readonly RenderingComponent: import("react").FC<{
125
+ readonly RenderingComponent: React.FC<{
126
126
  model: {
127
127
  id: string;
128
128
  type: string;
@@ -143,7 +143,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
143
143
  onHorizontalScroll?: () => void;
144
144
  blockState?: Record<string, any>;
145
145
  }>;
146
- readonly DisplayBlurb: import("react").FC<{
146
+ readonly DisplayBlurb: React.FC<{
147
147
  model: {
148
148
  id: string;
149
149
  type: string;
@@ -168,7 +168,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
168
168
  readonly parentTrack: any;
169
169
  renderProps(): any;
170
170
  readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType;
171
- readonly DisplayMessageComponent: undefined | import("react").FC<any>;
171
+ readonly DisplayMessageComponent: undefined | React.FC<any>;
172
172
  trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
173
173
  readonly viewMenuActions: import("@jbrowse/core/ui").MenuItem[];
174
174
  regionCannotBeRendered(): null;
@@ -194,7 +194,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
194
194
  error: unknown;
195
195
  message: string | undefined;
196
196
  } & {
197
- readonly RenderingComponent: import("react").FC<{
197
+ readonly RenderingComponent: React.FC<{
198
198
  model: {
199
199
  id: string;
200
200
  type: string;
@@ -215,7 +215,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
215
215
  onHorizontalScroll?: () => void;
216
216
  blockState?: Record<string, any>;
217
217
  }>;
218
- readonly DisplayBlurb: import("react").FC<{
218
+ readonly DisplayBlurb: React.FC<{
219
219
  model: {
220
220
  id: string;
221
221
  type: string;
@@ -238,7 +238,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
238
238
  readonly parentTrack: any;
239
239
  renderProps(): any;
240
240
  readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType;
241
- readonly DisplayMessageComponent: undefined | import("react").FC<any>;
241
+ readonly DisplayMessageComponent: undefined | React.FC<any>;
242
242
  trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
243
243
  readonly viewMenuActions: import("@jbrowse/core/ui").MenuItem[];
244
244
  regionCannotBeRendered(): null;
@@ -2,10 +2,10 @@ import React from 'react';
2
2
  import { SnapshotIn } from 'mobx-state-tree';
3
3
  import { AnyConfigurationModel } from '@jbrowse/core/configuration';
4
4
  type Conf = SnapshotIn<AnyConfigurationModel>;
5
- declare const OpenTrack: ({ assembly1, assembly2, setSessionTrackData, }: {
5
+ declare const ImportCustomTrack: ({ assembly1, assembly2, setSessionTrackData, }: {
6
6
  sessionTrackData: Conf;
7
7
  assembly1: string;
8
8
  assembly2: string;
9
9
  setSessionTrackData: (arg: Conf) => void;
10
10
  }) => React.JSX.Element;
11
- export default OpenTrack;
11
+ export default ImportCustomTrack;
@@ -28,7 +28,7 @@ const material_1 = require("@mui/material");
28
28
  const ui_1 = require("@jbrowse/core/ui");
29
29
  const mobx_react_1 = require("mobx-react");
30
30
  const util_1 = require("./util");
31
- function getAdapter({ radioOption, assembly1, assembly2, fileLocation, bed1Location, bed2Location, }) {
31
+ function getAdapter({ radioOption, assembly1, assembly2, fileLocation, indexFileLocation, bed1Location, bed2Location, }) {
32
32
  if (radioOption === '.paf') {
33
33
  return {
34
34
  type: 'PAFAdapter',
@@ -79,14 +79,23 @@ function getAdapter({ radioOption, assembly1, assembly2, fileLocation, bed1Locat
79
79
  assemblyNames: [assembly1, assembly2],
80
80
  };
81
81
  }
82
+ else if (radioOption === '.pif.gz') {
83
+ return {
84
+ type: 'PairwiseIndexedPAFAdapter',
85
+ pifGzLocation: fileLocation,
86
+ index: { location: indexFileLocation },
87
+ assemblyNames: [assembly1, assembly2],
88
+ };
89
+ }
82
90
  else {
83
91
  throw new Error(`Unknown to detect type ${radioOption} from filename (select radio button to clarify)`);
84
92
  }
85
93
  }
86
- const OpenTrack = (0, mobx_react_1.observer)(({ assembly1, assembly2, setSessionTrackData, }) => {
94
+ const ImportCustomTrack = (0, mobx_react_1.observer)(function ({ assembly1, assembly2, setSessionTrackData, }) {
87
95
  const [bed2Location, setBed2Location] = (0, react_1.useState)();
88
96
  const [bed1Location, setBed1Location] = (0, react_1.useState)();
89
97
  const [fileLocation, setFileLocation] = (0, react_1.useState)();
98
+ const [indexFileLocation, setIndexFileLocation] = (0, react_1.useState)();
90
99
  const [value, setValue] = (0, react_1.useState)('');
91
100
  const [error, setError] = (0, react_1.useState)();
92
101
  const fileName = (0, util_1.getName)(fileLocation);
@@ -107,6 +116,7 @@ const OpenTrack = (0, mobx_react_1.observer)(({ assembly1, assembly2, setSession
107
116
  assembly1,
108
117
  assembly2,
109
118
  fileLocation,
119
+ indexFileLocation,
110
120
  bed1Location,
111
121
  bed2Location,
112
122
  }),
@@ -124,12 +134,13 @@ const OpenTrack = (0, mobx_react_1.observer)(({ assembly1, assembly2, setSession
124
134
  bed1Location,
125
135
  bed2Location,
126
136
  fileLocation,
137
+ indexFileLocation,
127
138
  radioOption,
128
139
  setSessionTrackData,
129
140
  ]);
130
141
  return (react_1.default.createElement(material_1.Paper, { style: { padding: 12 } },
131
142
  error ? react_1.default.createElement(ui_1.ErrorMessage, { error: error }) : null,
132
- react_1.default.createElement(material_1.Typography, { style: { textAlign: 'center' } }, "Add a .paf, .out (MashMap), .delta (Mummer), .chain, .anchors or .anchors.simple (MCScan) file to view in the dotplot. These file types can also be gzipped. The first assembly should be the query sequence (e.g. left column of the PAF) and the second assembly should be the target sequence (e.g. right column of the PAF)"),
143
+ react_1.default.createElement(material_1.Typography, { style: { textAlign: 'center' } }, "Add a .paf, .out (MashMap), .delta (Mummer), .chain, .anchors or .anchors.simple (MCScan) file to view. These file types can also be gzipped. The first assembly should be the query sequence (e.g. left column of the PAF) and the second assembly should be the target sequence (e.g. right column of the PAF)"),
133
144
  react_1.default.createElement(material_1.RadioGroup, { value: radioOption, onChange: event => {
134
145
  setValue(event.target.value);
135
146
  } },
@@ -145,7 +156,9 @@ const OpenTrack = (0, mobx_react_1.observer)(({ assembly1, assembly2, setSession
145
156
  react_1.default.createElement(material_1.Grid, { item: true },
146
157
  react_1.default.createElement(material_1.FormControlLabel, { value: ".anchors", control: react_1.default.createElement(material_1.Radio, null), label: ".anchors" })),
147
158
  react_1.default.createElement(material_1.Grid, { item: true },
148
- react_1.default.createElement(material_1.FormControlLabel, { value: ".anchors.simple", control: react_1.default.createElement(material_1.Radio, null), label: ".anchors.simple" })))),
159
+ react_1.default.createElement(material_1.FormControlLabel, { value: ".anchors.simple", control: react_1.default.createElement(material_1.Radio, null), label: ".anchors.simple" })),
160
+ react_1.default.createElement(material_1.Grid, { item: true },
161
+ react_1.default.createElement(material_1.FormControlLabel, { value: ".pif.gz", control: react_1.default.createElement(material_1.Radio, null), label: ".pif.gz" })))),
149
162
  react_1.default.createElement(material_1.Grid, { container: true, justifyContent: "center" },
150
163
  react_1.default.createElement(material_1.Grid, { item: true }, value === '.anchors' || value === '.anchors.simple' ? (react_1.default.createElement("div", null,
151
164
  react_1.default.createElement("div", { style: { margin: 20 } },
@@ -166,8 +179,16 @@ const OpenTrack = (0, mobx_react_1.observer)(({ assembly1, assembly2, setSession
166
179
  react_1.default.createElement("div", null,
167
180
  react_1.default.createElement(ui_1.FileSelector, { name: "genome 2 .bed (right column of anchors file)", description: "", location: bed2Location, setLocation: loc => {
168
181
  setBed2Location(loc);
169
- } }))))) : (react_1.default.createElement(ui_1.FileSelector, { name: value ? `${value} location` : '', description: "", location: fileLocation, setLocation: loc => {
182
+ } }))))) : value === '.pif.gz' ? (react_1.default.createElement("div", { style: { display: 'flex' } },
183
+ react_1.default.createElement("div", null,
184
+ react_1.default.createElement(ui_1.FileSelector, { name: `${value} location`, description: "", location: fileLocation, setLocation: loc => {
185
+ setFileLocation(loc);
186
+ } })),
187
+ react_1.default.createElement("div", null,
188
+ react_1.default.createElement(ui_1.FileSelector, { name: `${value} index location`, description: "", location: indexFileLocation, setLocation: loc => {
189
+ setIndexFileLocation(loc);
190
+ } })))) : (react_1.default.createElement(ui_1.FileSelector, { name: value ? `${value} location` : '', description: "", location: fileLocation, setLocation: loc => {
170
191
  setFileLocation(loc);
171
192
  } }))))));
172
193
  });
173
- exports.default = OpenTrack;
194
+ exports.default = ImportCustomTrack;
@@ -37,7 +37,7 @@ declare function stateModelFactory(schema: AnyConfigurationSchemaType): import("
37
37
  }, {
38
38
  renderInProgress: AbortController | undefined;
39
39
  filled: boolean;
40
- reactElement: import("react").ReactElement | undefined;
40
+ reactElement: React.ReactElement | undefined;
41
41
  features: Map<string, import("@jbrowse/core/util").Feature> | undefined;
42
42
  layout: any;
43
43
  status: string;
@@ -48,10 +48,10 @@ declare function stateModelFactory(schema: AnyConfigurationSchemaType): import("
48
48
  model: {
49
49
  error?: unknown;
50
50
  reload: () => void;
51
- message: import("react").ReactNode;
51
+ message: React.ReactNode;
52
52
  filled?: boolean;
53
53
  status?: string;
54
- reactElement?: import("react").ReactElement;
54
+ reactElement?: React.ReactElement;
55
55
  };
56
56
  }) => import("react").JSX.Element | undefined;
57
57
  renderProps: any;
@@ -62,7 +62,7 @@ declare function stateModelFactory(schema: AnyConfigurationSchemaType): import("
62
62
  setLoading(abortController: AbortController): void;
63
63
  setMessage(messageText: string): void;
64
64
  setRendered(props: {
65
- reactElement: import("react").ReactElement;
65
+ reactElement: React.ReactElement;
66
66
  features: Map<string, import("@jbrowse/core/util").Feature>;
67
67
  layout: any;
68
68
  maxHeightReached: boolean;
@@ -135,7 +135,7 @@ declare function stateModelFactory(schema: AnyConfigurationSchemaType): import("
135
135
  error: unknown;
136
136
  message: string | undefined;
137
137
  } & {
138
- readonly RenderingComponent: import("react").FC<{
138
+ readonly RenderingComponent: React.FC<{
139
139
  model: {
140
140
  id: string;
141
141
  type: string;
@@ -156,7 +156,7 @@ declare function stateModelFactory(schema: AnyConfigurationSchemaType): import("
156
156
  onHorizontalScroll?: () => void;
157
157
  blockState?: Record<string, any>;
158
158
  }>;
159
- readonly DisplayBlurb: import("react").FC<{
159
+ readonly DisplayBlurb: React.FC<{
160
160
  model: {
161
161
  id: string;
162
162
  type: string;
@@ -179,7 +179,7 @@ declare function stateModelFactory(schema: AnyConfigurationSchemaType): import("
179
179
  readonly parentTrack: any;
180
180
  renderProps(): any;
181
181
  readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType;
182
- readonly DisplayMessageComponent: undefined | import("react").FC<any>;
182
+ readonly DisplayMessageComponent: undefined | React.FC<any>;
183
183
  trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
184
184
  readonly viewMenuActions: import("@jbrowse/core/ui").MenuItem[];
185
185
  regionCannotBeRendered(): null;
@@ -225,13 +225,13 @@ declare function stateModelFactory(schema: AnyConfigurationSchemaType): import("
225
225
  featureIdUnderMouse: undefined | string;
226
226
  contextMenuFeature: undefined | import("@jbrowse/core/util").Feature;
227
227
  } & {
228
+ readonly DisplayMessageComponent: import("react").FC<any> | undefined;
228
229
  readonly blockType: "dynamicBlocks" | "staticBlocks";
229
230
  readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
230
231
  } & {
231
232
  readonly renderDelay: number;
232
- readonly TooltipComponent: import("react").FC<any>;
233
+ readonly TooltipComponent: import("@jbrowse/core/util").AnyReactComponentType;
233
234
  readonly selectedFeatureId: string | undefined;
234
- readonly DisplayMessageComponent: undefined | import("react").FC<any>;
235
235
  } & {
236
236
  readonly features: import("@jbrowse/core/util/compositeMap").default<string, import("@jbrowse/core/util").Feature>;
237
237
  readonly featureUnderMouse: import("@jbrowse/core/util").Feature | undefined;
@@ -329,7 +329,6 @@ declare function stateModelFactory(schema: AnyConfigurationSchemaType): import("
329
329
  icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
330
330
  muiName: string;
331
331
  };
332
- priority: number;
333
332
  onClick: () => void;
334
333
  })[];
335
334
  } & {
@@ -19,7 +19,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
19
19
  error: unknown;
20
20
  message: string | undefined;
21
21
  } & {
22
- readonly RenderingComponent: import("react").FC<{
22
+ readonly RenderingComponent: React.FC<{
23
23
  model: {
24
24
  id: string;
25
25
  type: string;
@@ -42,7 +42,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
42
42
  onHorizontalScroll?: () => void;
43
43
  blockState?: Record<string, any>;
44
44
  }>;
45
- readonly DisplayBlurb: import("react").FC<{
45
+ readonly DisplayBlurb: React.FC<{
46
46
  model: {
47
47
  id: string;
48
48
  type: string;
@@ -65,7 +65,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
65
65
  readonly parentTrack: any;
66
66
  renderProps(): any;
67
67
  readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType;
68
- readonly DisplayMessageComponent: undefined | import("react").FC<any>;
68
+ readonly DisplayMessageComponent: undefined | React.FC<any>;
69
69
  trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
70
70
  readonly viewMenuActions: import("@jbrowse/core/ui").MenuItem[];
71
71
  regionCannotBeRendered(): null;
@@ -105,7 +105,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
105
105
  error: unknown;
106
106
  message: string | undefined;
107
107
  } & {
108
- readonly RenderingComponent: import("react").FC<{
108
+ readonly RenderingComponent: React.FC<{
109
109
  model: {
110
110
  id: string;
111
111
  type: string;
@@ -128,7 +128,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
128
128
  onHorizontalScroll?: () => void;
129
129
  blockState?: Record<string, any>;
130
130
  }>;
131
- readonly DisplayBlurb: import("react").FC<{
131
+ readonly DisplayBlurb: React.FC<{
132
132
  model: {
133
133
  id: string;
134
134
  type: string;
@@ -151,7 +151,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
151
151
  readonly parentTrack: any;
152
152
  renderProps(): any;
153
153
  readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType;
154
- readonly DisplayMessageComponent: undefined | import("react").FC<any>;
154
+ readonly DisplayMessageComponent: undefined | React.FC<any>;
155
155
  trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
156
156
  readonly viewMenuActions: import("@jbrowse/core/ui").MenuItem[];
157
157
  regionCannotBeRendered(): null;
@@ -177,7 +177,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
177
177
  error: unknown;
178
178
  message: string | undefined;
179
179
  } & {
180
- readonly RenderingComponent: import("react").FC<{
180
+ readonly RenderingComponent: React.FC<{
181
181
  model: {
182
182
  id: string;
183
183
  type: string;
@@ -198,7 +198,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
198
198
  onHorizontalScroll?: () => void;
199
199
  blockState?: Record<string, any>;
200
200
  }>;
201
- readonly DisplayBlurb: import("react").FC<{
201
+ readonly DisplayBlurb: React.FC<{
202
202
  model: {
203
203
  id: string;
204
204
  type: string;
@@ -221,7 +221,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
221
221
  readonly parentTrack: any;
222
222
  renderProps(): any;
223
223
  readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType;
224
- readonly DisplayMessageComponent: undefined | import("react").FC<any>;
224
+ readonly DisplayMessageComponent: undefined | React.FC<any>;
225
225
  trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
226
226
  readonly viewMenuActions: import("@jbrowse/core/ui").MenuItem[];
227
227
  regionCannotBeRendered(): null;
@@ -68,8 +68,8 @@ declare function stateModelFactory(pluginManager: PluginManager): import("mobx-s
68
68
  readonly assemblyNames: string[];
69
69
  } & {
70
70
  scaleBarDisplayPrefix(): string | undefined;
71
- MiniControlsComponent(): import("react").FC<any>;
72
- HeaderComponent(): import("react").FC<any>;
71
+ MiniControlsComponent(): React.FC<any>;
72
+ HeaderComponent(): React.FC<any>;
73
73
  readonly assemblyErrors: string;
74
74
  readonly assembliesInitialized: boolean;
75
75
  readonly initialized: boolean;
@@ -1,13 +1,12 @@
1
- import React, { useState, useCallback, useRef } from 'react';
1
+ import React, { useState, useCallback, useRef, lazy } from 'react';
2
2
  import { observer } from 'mobx-react';
3
3
  import { getContainingView } from '@jbrowse/core/util';
4
4
  import { transaction } from 'mobx';
5
5
  import { makeStyles } from 'tss-react/mui';
6
- // locals
7
- import SyntenyTooltip from './SyntenyTooltip';
8
6
  import { getId, MAX_COLOR_RANGE } from '../drawSynteny';
9
7
  import SyntenyContextMenu from './SyntenyContextMenu';
10
8
  import { getTooltip, onSynClick, onSynContextClick } from './util';
9
+ const SyntenyTooltip = lazy(() => import('./SyntenyTooltip'));
11
10
  const useStyles = makeStyles()({
12
11
  pix: {
13
12
  imageRendering: 'pixelated',
@@ -1,46 +1,9 @@
1
1
  import React from 'react';
2
2
  import { observer } from 'mobx-react';
3
- import { Portal, useTheme, alpha } from '@mui/material';
4
- import { makeStyles } from 'tss-react/mui';
5
- import { useClientPoint, useFloating, useInteractions, } from '@floating-ui/react';
6
3
  import { SanitizedHTML } from '@jbrowse/core/ui';
7
- function round(value) {
8
- return Math.round(value * 1e5) / 1e5;
9
- }
10
- const useStyles = makeStyles()(theme => ({
11
- // these styles come from
12
- // https://github.com/mui-org/material-ui/blob/master/packages/material-ui/src/Tooltip/Tooltip.js
13
- tooltip: {
14
- position: 'absolute',
15
- pointerEvents: 'none',
16
- backgroundColor: alpha(theme.palette.grey[700], 0.9),
17
- borderRadius: theme.shape.borderRadius,
18
- color: theme.palette.common.white,
19
- fontFamily: theme.typography.fontFamily,
20
- padding: '4px 8px',
21
- fontSize: theme.typography.pxToRem(12),
22
- lineHeight: `${round(14 / 10)}em`,
23
- maxWidth: 300,
24
- wordWrap: 'break-word',
25
- },
26
- }));
4
+ import BaseTooltip from '@jbrowse/core/ui/BaseTooltip';
27
5
  const SyntenyTooltip = observer(function ({ title }) {
28
- var _a, _b;
29
- const theme = useTheme();
30
- const { classes } = useStyles();
31
- const { refs, floatingStyles, context } = useFloating({
32
- placement: 'right',
33
- strategy: 'fixed',
34
- });
35
- const clientPoint = useClientPoint(context);
36
- const { getFloatingProps } = useInteractions([clientPoint]);
37
- const popperTheme = (_a = theme.components) === null || _a === void 0 ? void 0 : _a.MuiPopper;
38
- return title ? (React.createElement(Portal, { container: (_b = popperTheme === null || popperTheme === void 0 ? void 0 : popperTheme.defaultProps) === null || _b === void 0 ? void 0 : _b.container },
39
- React.createElement("div", { className: classes.tooltip, ref: refs.setFloating, style: {
40
- ...floatingStyles,
41
- zIndex: 100000,
42
- pointerEvents: 'none',
43
- }, ...getFloatingProps() },
44
- React.createElement(SanitizedHTML, { html: title })))) : null;
6
+ return title ? (React.createElement(BaseTooltip, null,
7
+ React.createElement(SanitizedHTML, { html: title }))) : null;
45
8
  });
46
9
  export default SyntenyTooltip;
@@ -39,7 +39,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
39
39
  error: unknown;
40
40
  message: string | undefined;
41
41
  } & {
42
- readonly RenderingComponent: import("react").FC<{
42
+ readonly RenderingComponent: React.FC<{
43
43
  model: {
44
44
  id: string;
45
45
  type: string;
@@ -60,7 +60,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
60
60
  onHorizontalScroll?: () => void;
61
61
  blockState?: Record<string, any>;
62
62
  }>;
63
- readonly DisplayBlurb: import("react").FC<{
63
+ readonly DisplayBlurb: React.FC<{
64
64
  model: {
65
65
  id: string;
66
66
  type: string;
@@ -85,7 +85,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
85
85
  readonly parentTrack: any;
86
86
  renderProps(): any;
87
87
  readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType;
88
- readonly DisplayMessageComponent: undefined | import("react").FC<any>;
88
+ readonly DisplayMessageComponent: undefined | React.FC<any>;
89
89
  trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
90
90
  readonly viewMenuActions: import("@jbrowse/core/ui").MenuItem[];
91
91
  regionCannotBeRendered(): null;
@@ -122,7 +122,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
122
122
  error: unknown;
123
123
  message: string | undefined;
124
124
  } & {
125
- readonly RenderingComponent: import("react").FC<{
125
+ readonly RenderingComponent: React.FC<{
126
126
  model: {
127
127
  id: string;
128
128
  type: string;
@@ -143,7 +143,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
143
143
  onHorizontalScroll?: () => void;
144
144
  blockState?: Record<string, any>;
145
145
  }>;
146
- readonly DisplayBlurb: import("react").FC<{
146
+ readonly DisplayBlurb: React.FC<{
147
147
  model: {
148
148
  id: string;
149
149
  type: string;
@@ -168,7 +168,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
168
168
  readonly parentTrack: any;
169
169
  renderProps(): any;
170
170
  readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType;
171
- readonly DisplayMessageComponent: undefined | import("react").FC<any>;
171
+ readonly DisplayMessageComponent: undefined | React.FC<any>;
172
172
  trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
173
173
  readonly viewMenuActions: import("@jbrowse/core/ui").MenuItem[];
174
174
  regionCannotBeRendered(): null;
@@ -194,7 +194,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
194
194
  error: unknown;
195
195
  message: string | undefined;
196
196
  } & {
197
- readonly RenderingComponent: import("react").FC<{
197
+ readonly RenderingComponent: React.FC<{
198
198
  model: {
199
199
  id: string;
200
200
  type: string;
@@ -215,7 +215,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
215
215
  onHorizontalScroll?: () => void;
216
216
  blockState?: Record<string, any>;
217
217
  }>;
218
- readonly DisplayBlurb: import("react").FC<{
218
+ readonly DisplayBlurb: React.FC<{
219
219
  model: {
220
220
  id: string;
221
221
  type: string;
@@ -238,7 +238,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
238
238
  readonly parentTrack: any;
239
239
  renderProps(): any;
240
240
  readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType;
241
- readonly DisplayMessageComponent: undefined | import("react").FC<any>;
241
+ readonly DisplayMessageComponent: undefined | React.FC<any>;
242
242
  trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
243
243
  readonly viewMenuActions: import("@jbrowse/core/ui").MenuItem[];
244
244
  regionCannotBeRendered(): null;
@@ -2,10 +2,10 @@ import React from 'react';
2
2
  import { SnapshotIn } from 'mobx-state-tree';
3
3
  import { AnyConfigurationModel } from '@jbrowse/core/configuration';
4
4
  type Conf = SnapshotIn<AnyConfigurationModel>;
5
- declare const OpenTrack: ({ assembly1, assembly2, setSessionTrackData, }: {
5
+ declare const ImportCustomTrack: ({ assembly1, assembly2, setSessionTrackData, }: {
6
6
  sessionTrackData: Conf;
7
7
  assembly1: string;
8
8
  assembly2: string;
9
9
  setSessionTrackData: (arg: Conf) => void;
10
10
  }) => React.JSX.Element;
11
- export default OpenTrack;
11
+ export default ImportCustomTrack;
@@ -2,8 +2,8 @@ import React, { useState, useEffect } from 'react';
2
2
  import { FormControlLabel, Grid, Paper, Radio, RadioGroup, Typography, } from '@mui/material';
3
3
  import { ErrorMessage, FileSelector } from '@jbrowse/core/ui';
4
4
  import { observer } from 'mobx-react';
5
- import { extName, getName, stripGz, basename } from './util';
6
- function getAdapter({ radioOption, assembly1, assembly2, fileLocation, bed1Location, bed2Location, }) {
5
+ import { basename, extName, getName, stripGz } from './util';
6
+ function getAdapter({ radioOption, assembly1, assembly2, fileLocation, indexFileLocation, bed1Location, bed2Location, }) {
7
7
  if (radioOption === '.paf') {
8
8
  return {
9
9
  type: 'PAFAdapter',
@@ -54,14 +54,23 @@ function getAdapter({ radioOption, assembly1, assembly2, fileLocation, bed1Locat
54
54
  assemblyNames: [assembly1, assembly2],
55
55
  };
56
56
  }
57
+ else if (radioOption === '.pif.gz') {
58
+ return {
59
+ type: 'PairwiseIndexedPAFAdapter',
60
+ pifGzLocation: fileLocation,
61
+ index: { location: indexFileLocation },
62
+ assemblyNames: [assembly1, assembly2],
63
+ };
64
+ }
57
65
  else {
58
66
  throw new Error(`Unknown to detect type ${radioOption} from filename (select radio button to clarify)`);
59
67
  }
60
68
  }
61
- const OpenTrack = observer(({ assembly1, assembly2, setSessionTrackData, }) => {
69
+ const ImportCustomTrack = observer(function ({ assembly1, assembly2, setSessionTrackData, }) {
62
70
  const [bed2Location, setBed2Location] = useState();
63
71
  const [bed1Location, setBed1Location] = useState();
64
72
  const [fileLocation, setFileLocation] = useState();
73
+ const [indexFileLocation, setIndexFileLocation] = useState();
65
74
  const [value, setValue] = useState('');
66
75
  const [error, setError] = useState();
67
76
  const fileName = getName(fileLocation);
@@ -82,6 +91,7 @@ const OpenTrack = observer(({ assembly1, assembly2, setSessionTrackData, }) => {
82
91
  assembly1,
83
92
  assembly2,
84
93
  fileLocation,
94
+ indexFileLocation,
85
95
  bed1Location,
86
96
  bed2Location,
87
97
  }),
@@ -99,12 +109,13 @@ const OpenTrack = observer(({ assembly1, assembly2, setSessionTrackData, }) => {
99
109
  bed1Location,
100
110
  bed2Location,
101
111
  fileLocation,
112
+ indexFileLocation,
102
113
  radioOption,
103
114
  setSessionTrackData,
104
115
  ]);
105
116
  return (React.createElement(Paper, { style: { padding: 12 } },
106
117
  error ? React.createElement(ErrorMessage, { error: error }) : null,
107
- React.createElement(Typography, { style: { textAlign: 'center' } }, "Add a .paf, .out (MashMap), .delta (Mummer), .chain, .anchors or .anchors.simple (MCScan) file to view in the dotplot. These file types can also be gzipped. The first assembly should be the query sequence (e.g. left column of the PAF) and the second assembly should be the target sequence (e.g. right column of the PAF)"),
118
+ React.createElement(Typography, { style: { textAlign: 'center' } }, "Add a .paf, .out (MashMap), .delta (Mummer), .chain, .anchors or .anchors.simple (MCScan) file to view. These file types can also be gzipped. The first assembly should be the query sequence (e.g. left column of the PAF) and the second assembly should be the target sequence (e.g. right column of the PAF)"),
108
119
  React.createElement(RadioGroup, { value: radioOption, onChange: event => {
109
120
  setValue(event.target.value);
110
121
  } },
@@ -120,7 +131,9 @@ const OpenTrack = observer(({ assembly1, assembly2, setSessionTrackData, }) => {
120
131
  React.createElement(Grid, { item: true },
121
132
  React.createElement(FormControlLabel, { value: ".anchors", control: React.createElement(Radio, null), label: ".anchors" })),
122
133
  React.createElement(Grid, { item: true },
123
- React.createElement(FormControlLabel, { value: ".anchors.simple", control: React.createElement(Radio, null), label: ".anchors.simple" })))),
134
+ React.createElement(FormControlLabel, { value: ".anchors.simple", control: React.createElement(Radio, null), label: ".anchors.simple" })),
135
+ React.createElement(Grid, { item: true },
136
+ React.createElement(FormControlLabel, { value: ".pif.gz", control: React.createElement(Radio, null), label: ".pif.gz" })))),
124
137
  React.createElement(Grid, { container: true, justifyContent: "center" },
125
138
  React.createElement(Grid, { item: true }, value === '.anchors' || value === '.anchors.simple' ? (React.createElement("div", null,
126
139
  React.createElement("div", { style: { margin: 20 } },
@@ -141,8 +154,16 @@ const OpenTrack = observer(({ assembly1, assembly2, setSessionTrackData, }) => {
141
154
  React.createElement("div", null,
142
155
  React.createElement(FileSelector, { name: "genome 2 .bed (right column of anchors file)", description: "", location: bed2Location, setLocation: loc => {
143
156
  setBed2Location(loc);
144
- } }))))) : (React.createElement(FileSelector, { name: value ? `${value} location` : '', description: "", location: fileLocation, setLocation: loc => {
157
+ } }))))) : value === '.pif.gz' ? (React.createElement("div", { style: { display: 'flex' } },
158
+ React.createElement("div", null,
159
+ React.createElement(FileSelector, { name: `${value} location`, description: "", location: fileLocation, setLocation: loc => {
160
+ setFileLocation(loc);
161
+ } })),
162
+ React.createElement("div", null,
163
+ React.createElement(FileSelector, { name: `${value} index location`, description: "", location: indexFileLocation, setLocation: loc => {
164
+ setIndexFileLocation(loc);
165
+ } })))) : (React.createElement(FileSelector, { name: value ? `${value} location` : '', description: "", location: fileLocation, setLocation: loc => {
145
166
  setFileLocation(loc);
146
167
  } }))))));
147
168
  });
148
- export default OpenTrack;
169
+ export default ImportCustomTrack;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-linear-comparative-view",
3
- "version": "2.15.0",
3
+ "version": "2.15.2",
4
4
  "description": "JBrowse 2 linear comparative view",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -61,5 +61,5 @@
61
61
  "publishConfig": {
62
62
  "access": "public"
63
63
  },
64
- "gitHead": "87eeb1fbf8311dbf88d5e75b5a265f03beffdda8"
64
+ "gitHead": "8a58cefbfe39af4c97bcb6ead354d72c9fef9224"
65
65
  }