@jbrowse/plugin-linear-genome-view 2.7.2 → 2.8.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.
@@ -69,7 +69,11 @@ export declare const BaseLinearDisplay: import("mobx-state-tree").IModelType<{
69
69
  setMessage(messageText: string): void;
70
70
  setRendered(props: {
71
71
  reactElement: React.ReactElement<any, string | React.JSXElementConstructor<any>>;
72
- features: Map<string, Feature>;
72
+ features: Map<string, Feature>; /**
73
+ * #getter
74
+ * a CompositeMap of `featureId -> feature obj` that
75
+ * just looks in all the block data for that feature
76
+ */
73
77
  layout: any;
74
78
  maxHeightReached: boolean;
75
79
  renderProps: any;
@@ -128,7 +132,9 @@ export declare const BaseLinearDisplay: import("mobx-state-tree").IModelType<{
128
132
  message: string | undefined;
129
133
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
130
134
  onHorizontalScroll?: Function | undefined;
131
- blockState?: Record<string, any> | undefined;
135
+ blockState?: Record<string, any> | undefined; /**
136
+ * #property
137
+ */
132
138
  }>;
133
139
  readonly DisplayBlurb: React.FC<{
134
140
  model: {
@@ -136,7 +142,9 @@ export declare const BaseLinearDisplay: import("mobx-state-tree").IModelType<{
136
142
  type: string;
137
143
  rpcDriverName: string | undefined;
138
144
  } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
139
- rendererTypeName: string;
145
+ rendererTypeName: string; /**
146
+ * #getter
147
+ */
140
148
  error: unknown;
141
149
  message: string | undefined;
142
150
  } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
@@ -144,9 +152,7 @@ export declare const BaseLinearDisplay: import("mobx-state-tree").IModelType<{
144
152
  type: import("mobx-state-tree").ISimpleType<string>;
145
153
  rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
146
154
  }, {
147
- rendererTypeName: string; /**
148
- * #getter
149
- */
155
+ rendererTypeName: string;
150
156
  error: unknown;
151
157
  message: string | undefined;
152
158
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
@@ -179,10 +185,7 @@ export declare const BaseLinearDisplay: import("mobx-state-tree").IModelType<{
179
185
  } & {
180
186
  readonly currentBytesRequested: number;
181
187
  readonly currentFeatureScreenDensity: number;
182
- readonly maxFeatureScreenDensity: any; /**
183
- * #property
184
- * updated via autorun
185
- */
188
+ readonly maxFeatureScreenDensity: any;
186
189
  readonly featureDensityStatsReady: boolean;
187
190
  readonly maxAllowableBytes: number;
188
191
  } & {
@@ -358,7 +361,11 @@ export declare const BaseLinearDisplay: import("mobx-state-tree").IModelType<{
358
361
  setMessage(messageText: string): void;
359
362
  setRendered(props: {
360
363
  reactElement: React.ReactElement<any, string | React.JSXElementConstructor<any>>;
361
- features: Map<string, Feature>;
364
+ features: Map<string, Feature>; /**
365
+ * #getter
366
+ * a CompositeMap of `featureId -> feature obj` that
367
+ * just looks in all the block data for that feature
368
+ */
362
369
  layout: any;
363
370
  maxHeightReached: boolean;
364
371
  renderProps: any;
@@ -1,4 +1,27 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
27
  };
@@ -16,7 +39,6 @@ const MenuOpen_1 = __importDefault(require("@mui/icons-material/MenuOpen"));
16
39
  const BaseLinearDisplay_1 = require("../components/BaseLinearDisplay");
17
40
  const serverSideRenderedBlock_1 = __importDefault(require("./serverSideRenderedBlock"));
18
41
  const configSchema_1 = __importDefault(require("./configSchema"));
19
- const renderSvg_1 = __importDefault(require("./renderSvg"));
20
42
  const TrackHeightMixin_1 = __importDefault(require("./TrackHeightMixin"));
21
43
  const FeatureDensityMixin_1 = __importDefault(require("./FeatureDensityMixin"));
22
44
  /**
@@ -296,7 +318,8 @@ function stateModelFactory() {
296
318
  * #method
297
319
  */
298
320
  async renderSvg(opts) {
299
- return (0, renderSvg_1.default)(self, opts);
321
+ const { renderBaseLinearDisplaySvg } = await Promise.resolve().then(() => __importStar(require('./renderSvg')));
322
+ return renderBaseLinearDisplaySvg(self, opts);
300
323
  },
301
324
  afterAttach() {
302
325
  // watch the parent's blocks to update our block state when they change,
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { ThemeOptions } from '@mui/material';
3
3
  import { ExportSvgOptions } from '../../LinearGenomeView';
4
4
  import { BaseLinearDisplayModel } from './BaseLinearDisplayModel';
5
- export default function renderBaseLinearDisplaySvg(self: BaseLinearDisplayModel, opts: ExportSvgOptions & {
5
+ export declare function renderBaseLinearDisplaySvg(self: BaseLinearDisplayModel, opts: ExportSvgOptions & {
6
6
  overrideHeight: number;
7
7
  theme: ThemeOptions;
8
8
  }): Promise<React.JSX.Element>;
@@ -26,6 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.renderBaseLinearDisplaySvg = void 0;
29
30
  const react_1 = __importDefault(require("react"));
30
31
  const util_1 = require("@jbrowse/core/util");
31
32
  const serverSideRenderedBlock_1 = __importStar(require("./serverSideRenderedBlock"));
@@ -79,4 +80,4 @@ async function renderBaseLinearDisplaySvg(self, opts) {
79
80
  react_1.default.createElement(util_1.ReactRendering, { rendering: rendering })))));
80
81
  })));
81
82
  }
82
- exports.default = renderBaseLinearDisplaySvg;
83
+ exports.renderBaseLinearDisplaySvg = renderBaseLinearDisplaySvg;
@@ -219,7 +219,9 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
219
219
  featureIdUnderMouse: string | undefined;
220
220
  contextMenuFeature: import("@jbrowse/core/util").Feature | undefined;
221
221
  } & {
222
- readonly blockType: "dynamicBlocks" | "staticBlocks";
222
+ readonly blockType: "dynamicBlocks" | "staticBlocks"; /**
223
+ * #getter
224
+ */
223
225
  readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
224
226
  } & {
225
227
  readonly renderDelay: number;
@@ -17,6 +17,11 @@ const useStyles = (0, mui_1.makeStyles)()(() => ({
17
17
  minWidth: 100,
18
18
  },
19
19
  }));
20
+ function checkRef(str, allRefs) {
21
+ const [ref, rest] = (0, util_2.splitLast)(str, ':');
22
+ return (allRefs.includes(str) ||
23
+ (allRefs.includes(ref) && !Number.isNaN(Number.parseInt(rest, 10))));
24
+ }
20
25
  const SearchBox = (0, mobx_react_1.observer)(function ({ model, showHelp, }) {
21
26
  const { classes } = useStyles();
22
27
  const theme = (0, material_1.useTheme)();
@@ -44,38 +49,34 @@ const SearchBox = (0, mobx_react_1.observer)(function ({ model, showHelp, }) {
44
49
  async function handleSelectedRegion(option) {
45
50
  var _a;
46
51
  try {
52
+ const input = option.getLabel();
53
+ const allRefs = (assembly === null || assembly === void 0 ? void 0 : assembly.allRefNamesWithLowerCase) || [];
47
54
  if (option.hasLocation()) {
48
55
  await navToOption(option);
49
56
  }
50
57
  else if ((_a = option.results) === null || _a === void 0 ? void 0 : _a.length) {
51
58
  model.setSearchResults(option.results, option.getLabel());
52
59
  }
60
+ else if (input.split(' ').every(entry => checkRef(entry, allRefs))) {
61
+ await model.navToLocString(input, assemblyName);
62
+ }
53
63
  else {
54
- const input = option.getLabel();
55
- const [ref, rest] = (0, util_2.splitLast)(input, ':');
56
- const allRefs = (assembly === null || assembly === void 0 ? void 0 : assembly.allRefNamesWithLowerCase) || [];
57
- if (allRefs.includes(input) ||
58
- (allRefs.includes(ref) && !Number.isNaN(Number.parseInt(rest, 10)))) {
59
- await model.navToLocString(input, assemblyName);
64
+ const results = await (0, util_2.fetchResults)({
65
+ queryString: input,
66
+ searchType: 'exact',
67
+ searchScope,
68
+ rankSearchResults,
69
+ textSearchManager,
70
+ assembly,
71
+ });
72
+ if (results.length > 1) {
73
+ model.setSearchResults(results, input.toLowerCase());
74
+ }
75
+ else if (results.length === 1) {
76
+ await navToOption(results[0]);
60
77
  }
61
78
  else {
62
- const results = await (0, util_2.fetchResults)({
63
- queryString: input,
64
- searchType: 'exact',
65
- searchScope,
66
- rankSearchResults,
67
- textSearchManager,
68
- assembly,
69
- });
70
- if (results.length > 1) {
71
- model.setSearchResults(results, input.toLowerCase());
72
- }
73
- else if (results.length === 1) {
74
- await navToOption(results[0]);
75
- }
76
- else {
77
- await model.navToLocString(input, assemblyName);
78
- }
79
+ await model.navToLocString(input, assemblyName);
79
80
  }
80
81
  }
81
82
  }
@@ -69,7 +69,11 @@ export declare const BaseLinearDisplay: import("mobx-state-tree").IModelType<{
69
69
  setMessage(messageText: string): void;
70
70
  setRendered(props: {
71
71
  reactElement: React.ReactElement<any, string | React.JSXElementConstructor<any>>;
72
- features: Map<string, Feature>;
72
+ features: Map<string, Feature>; /**
73
+ * #getter
74
+ * a CompositeMap of `featureId -> feature obj` that
75
+ * just looks in all the block data for that feature
76
+ */
73
77
  layout: any;
74
78
  maxHeightReached: boolean;
75
79
  renderProps: any;
@@ -128,7 +132,9 @@ export declare const BaseLinearDisplay: import("mobx-state-tree").IModelType<{
128
132
  message: string | undefined;
129
133
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
130
134
  onHorizontalScroll?: Function | undefined;
131
- blockState?: Record<string, any> | undefined;
135
+ blockState?: Record<string, any> | undefined; /**
136
+ * #property
137
+ */
132
138
  }>;
133
139
  readonly DisplayBlurb: React.FC<{
134
140
  model: {
@@ -136,7 +142,9 @@ export declare const BaseLinearDisplay: import("mobx-state-tree").IModelType<{
136
142
  type: string;
137
143
  rpcDriverName: string | undefined;
138
144
  } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
139
- rendererTypeName: string;
145
+ rendererTypeName: string; /**
146
+ * #getter
147
+ */
140
148
  error: unknown;
141
149
  message: string | undefined;
142
150
  } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
@@ -144,9 +152,7 @@ export declare const BaseLinearDisplay: import("mobx-state-tree").IModelType<{
144
152
  type: import("mobx-state-tree").ISimpleType<string>;
145
153
  rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
146
154
  }, {
147
- rendererTypeName: string; /**
148
- * #getter
149
- */
155
+ rendererTypeName: string;
150
156
  error: unknown;
151
157
  message: string | undefined;
152
158
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
@@ -179,10 +185,7 @@ export declare const BaseLinearDisplay: import("mobx-state-tree").IModelType<{
179
185
  } & {
180
186
  readonly currentBytesRequested: number;
181
187
  readonly currentFeatureScreenDensity: number;
182
- readonly maxFeatureScreenDensity: any; /**
183
- * #property
184
- * updated via autorun
185
- */
188
+ readonly maxFeatureScreenDensity: any;
186
189
  readonly featureDensityStatsReady: boolean;
187
190
  readonly maxAllowableBytes: number;
188
191
  } & {
@@ -358,7 +361,11 @@ export declare const BaseLinearDisplay: import("mobx-state-tree").IModelType<{
358
361
  setMessage(messageText: string): void;
359
362
  setRendered(props: {
360
363
  reactElement: React.ReactElement<any, string | React.JSXElementConstructor<any>>;
361
- features: Map<string, Feature>;
364
+ features: Map<string, Feature>; /**
365
+ * #getter
366
+ * a CompositeMap of `featureId -> feature obj` that
367
+ * just looks in all the block data for that feature
368
+ */
362
369
  layout: any;
363
370
  maxHeightReached: boolean;
364
371
  renderProps: any;
@@ -10,7 +10,6 @@ import MenuOpenIcon from '@mui/icons-material/MenuOpen';
10
10
  import { Tooltip } from '../components/BaseLinearDisplay';
11
11
  import BlockState from './serverSideRenderedBlock';
12
12
  import configSchema from './configSchema';
13
- import renderBaseLinearDisplaySvg from './renderSvg';
14
13
  import TrackHeightMixin from './TrackHeightMixin';
15
14
  import FeatureDensityMixin from './FeatureDensityMixin';
16
15
  /**
@@ -290,6 +289,7 @@ function stateModelFactory() {
290
289
  * #method
291
290
  */
292
291
  async renderSvg(opts) {
292
+ const { renderBaseLinearDisplaySvg } = await import('./renderSvg');
293
293
  return renderBaseLinearDisplaySvg(self, opts);
294
294
  },
295
295
  afterAttach() {
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { ThemeOptions } from '@mui/material';
3
3
  import { ExportSvgOptions } from '../../LinearGenomeView';
4
4
  import { BaseLinearDisplayModel } from './BaseLinearDisplayModel';
5
- export default function renderBaseLinearDisplaySvg(self: BaseLinearDisplayModel, opts: ExportSvgOptions & {
5
+ export declare function renderBaseLinearDisplaySvg(self: BaseLinearDisplayModel, opts: ExportSvgOptions & {
6
6
  overrideHeight: number;
7
7
  theme: ThemeOptions;
8
8
  }): Promise<React.JSX.Element>;
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { getContainingView, getViewParams, ReactRendering, } from '@jbrowse/core/util';
3
3
  import BlockState, { renderBlockData } from './serverSideRenderedBlock';
4
4
  import { getId } from './util';
5
- export default async function renderBaseLinearDisplaySvg(self, opts) {
5
+ export async function renderBaseLinearDisplaySvg(self, opts) {
6
6
  const { height, id } = self;
7
7
  const { overrideHeight } = opts;
8
8
  const view = getContainingView(self);
@@ -219,7 +219,9 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
219
219
  featureIdUnderMouse: string | undefined;
220
220
  contextMenuFeature: import("@jbrowse/core/util").Feature | undefined;
221
221
  } & {
222
- readonly blockType: "dynamicBlocks" | "staticBlocks";
222
+ readonly blockType: "dynamicBlocks" | "staticBlocks"; /**
223
+ * #getter
224
+ */
223
225
  readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
224
226
  } & {
225
227
  readonly renderDelay: number;
@@ -12,6 +12,11 @@ const useStyles = makeStyles()(() => ({
12
12
  minWidth: 100,
13
13
  },
14
14
  }));
15
+ function checkRef(str, allRefs) {
16
+ const [ref, rest] = splitLast(str, ':');
17
+ return (allRefs.includes(str) ||
18
+ (allRefs.includes(ref) && !Number.isNaN(Number.parseInt(rest, 10))));
19
+ }
15
20
  const SearchBox = observer(function ({ model, showHelp, }) {
16
21
  const { classes } = useStyles();
17
22
  const theme = useTheme();
@@ -39,38 +44,34 @@ const SearchBox = observer(function ({ model, showHelp, }) {
39
44
  async function handleSelectedRegion(option) {
40
45
  var _a;
41
46
  try {
47
+ const input = option.getLabel();
48
+ const allRefs = (assembly === null || assembly === void 0 ? void 0 : assembly.allRefNamesWithLowerCase) || [];
42
49
  if (option.hasLocation()) {
43
50
  await navToOption(option);
44
51
  }
45
52
  else if ((_a = option.results) === null || _a === void 0 ? void 0 : _a.length) {
46
53
  model.setSearchResults(option.results, option.getLabel());
47
54
  }
55
+ else if (input.split(' ').every(entry => checkRef(entry, allRefs))) {
56
+ await model.navToLocString(input, assemblyName);
57
+ }
48
58
  else {
49
- const input = option.getLabel();
50
- const [ref, rest] = splitLast(input, ':');
51
- const allRefs = (assembly === null || assembly === void 0 ? void 0 : assembly.allRefNamesWithLowerCase) || [];
52
- if (allRefs.includes(input) ||
53
- (allRefs.includes(ref) && !Number.isNaN(Number.parseInt(rest, 10)))) {
54
- await model.navToLocString(input, assemblyName);
59
+ const results = await fetchResults({
60
+ queryString: input,
61
+ searchType: 'exact',
62
+ searchScope,
63
+ rankSearchResults,
64
+ textSearchManager,
65
+ assembly,
66
+ });
67
+ if (results.length > 1) {
68
+ model.setSearchResults(results, input.toLowerCase());
69
+ }
70
+ else if (results.length === 1) {
71
+ await navToOption(results[0]);
55
72
  }
56
73
  else {
57
- const results = await fetchResults({
58
- queryString: input,
59
- searchType: 'exact',
60
- searchScope,
61
- rankSearchResults,
62
- textSearchManager,
63
- assembly,
64
- });
65
- if (results.length > 1) {
66
- model.setSearchResults(results, input.toLowerCase());
67
- }
68
- else if (results.length === 1) {
69
- await navToOption(results[0]);
70
- }
71
- else {
72
- await model.navToLocString(input, assemblyName);
73
- }
74
+ await model.navToLocString(input, assemblyName);
74
75
  }
75
76
  }
76
77
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-linear-genome-view",
3
- "version": "2.7.2",
3
+ "version": "2.8.0",
4
4
  "description": "JBrowse 2 linear genome view",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -65,5 +65,5 @@
65
65
  "access": "public"
66
66
  },
67
67
  "module": "esm/index.js",
68
- "gitHead": "9052b295f2d322e729254457ed9fe2231fb22cce"
68
+ "gitHead": "ee8c2bdc8bd4f1a70b1eefda984f04a2830d9ca0"
69
69
  }