@jbrowse/plugin-gccontent 2.18.0 → 3.0.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.
@@ -30,31 +30,32 @@ class GCContentAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
30
30
  const sequenceAdapter = await this.configure();
31
31
  const windowSize = this.getConf('windowSize');
32
32
  const windowDelta = this.getConf('windowDelta');
33
- const hw = windowSize === 1 ? 1 : windowSize / 2;
34
- const f = windowSize === 1;
35
- let { start: queryStart, end: queryEnd } = query;
36
- queryStart = Math.max(0, queryStart - hw);
37
- queryEnd += hw;
38
- if (queryEnd < 0 || queryStart > queryEnd) {
33
+ const halfWindowSize = windowSize === 1 ? 1 : Math.ceil(windowSize / 2);
34
+ const isWindowSizeOneBp = windowSize === 1;
35
+ const qs = Math.max(0, Math.floor((query.start - halfWindowSize) / windowSize) * windowSize);
36
+ const qe = Math.ceil((query.end + halfWindowSize) / windowSize) * windowSize;
37
+ if (qe < 0 || qs > qe) {
39
38
  observer.complete();
40
39
  return;
41
40
  }
42
41
  const feats = await (0, rxjs_2.firstValueFrom)(sequenceAdapter
43
42
  .getFeatures({
44
43
  ...query,
45
- start: queryStart,
46
- end: queryEnd,
44
+ start: qs,
45
+ end: qe,
47
46
  }, opts)
48
47
  .pipe((0, operators_1.toArray)()));
49
48
  const residues = ((_a = feats[0]) === null || _a === void 0 ? void 0 : _a.get('seq')) || '';
50
49
  let start = performance.now();
51
50
  await (0, util_1.updateStatus)('Calculating GC', statusCallback, () => {
52
- for (let i = hw; i < residues.length - hw; i += windowDelta) {
51
+ for (let i = halfWindowSize; i < residues.length - halfWindowSize; i += windowDelta) {
53
52
  if (performance.now() - start > 400) {
54
53
  (0, stopToken_1.checkStopToken)(stopToken);
55
54
  start = performance.now();
56
55
  }
57
- const r = f ? residues[i] : residues.slice(i - hw, i + hw);
56
+ const r = isWindowSizeOneBp
57
+ ? residues[i]
58
+ : residues.slice(i - halfWindowSize, i + halfWindowSize);
58
59
  let nc = 0;
59
60
  let ng = 0;
60
61
  let len = 0;
@@ -69,7 +70,7 @@ class GCContentAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
69
70
  len++;
70
71
  }
71
72
  }
72
- const pos = queryStart;
73
+ const pos = qs;
73
74
  const score = this.gcMode === 'content'
74
75
  ? (ng + nc) / (len || 1)
75
76
  : this.gcMode === 'skew'
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
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
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
37
  };
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  declare const EditGCContentParamsDialog: ({ model, handleClose, }: {
3
2
  model: {
4
3
  windowSizeSetting: number;
@@ -9,5 +8,5 @@ declare const EditGCContentParamsDialog: ({ model, handleClose, }: {
9
8
  }) => void;
10
9
  };
11
10
  handleClose: () => void;
12
- }) => React.JSX.Element;
11
+ }) => import("react/jsx-runtime").JSX.Element;
13
12
  export default EditGCContentParamsDialog;
@@ -1,55 +1,25 @@
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
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
- const react_1 = __importStar(require("react"));
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ const react_1 = require("react");
27
5
  const ui_1 = require("@jbrowse/core/ui");
28
6
  const material_1 = require("@mui/material");
29
7
  const mobx_react_1 = require("mobx-react");
30
8
  const EditGCContentParamsDialog = (0, mobx_react_1.observer)(function ({ model, handleClose, }) {
31
9
  const [windowSize, setWindowSize] = (0, react_1.useState)(`${model.windowSizeSetting}`);
32
10
  const [windowDelta, setWindowDelta] = (0, react_1.useState)(`${model.windowDeltaSetting}`);
33
- return (react_1.default.createElement(ui_1.Dialog, { open: true, onClose: handleClose, title: "Edit GC content params" },
34
- react_1.default.createElement(material_1.DialogContent, null,
35
- react_1.default.createElement(material_1.Typography, null, "GC content is calculated in a particular sliding window of size N, and then the sliding window moves (steps) some number of bases M forward. Note that small step sizes can result in high CPU over large areas, and it is not recommended to make the step size larger than the window size as then the sliding window will miss contents."),
36
- +windowDelta > +windowSize ? (react_1.default.createElement(ui_1.ErrorMessage, { error: "It is not recommended to make the step size larger than the window size" })) : null,
37
- react_1.default.createElement(material_1.TextField, { label: "Size of sliding window (bp)", value: windowSize, onChange: event => {
38
- setWindowSize(event.target.value);
39
- } }),
40
- react_1.default.createElement(material_1.TextField, { label: "Step size of sliding window (bp)", value: windowDelta, onChange: event => {
41
- setWindowDelta(event.target.value);
42
- } }),
43
- react_1.default.createElement(material_1.DialogActions, null,
44
- react_1.default.createElement(material_1.Button, { variant: "contained", onClick: () => {
45
- model.setGCContentParams({
46
- windowSize: +windowSize,
47
- windowDelta: +windowDelta,
48
- });
49
- handleClose();
50
- } }, "Submit"),
51
- react_1.default.createElement(material_1.Button, { variant: "contained", color: "secondary", onClick: () => {
52
- handleClose();
53
- } }, "Cancel")))));
11
+ return ((0, jsx_runtime_1.jsx)(ui_1.Dialog, { open: true, onClose: handleClose, title: "Edit GC content params", children: (0, jsx_runtime_1.jsxs)(material_1.DialogContent, { children: [(0, jsx_runtime_1.jsx)(material_1.Typography, { children: "GC content is calculated in a particular sliding window of size N, and then the sliding window moves (steps) some number of bases M forward. Note that small step sizes can result in high CPU over large areas, and it is not recommended to make the step size larger than the window size as then the sliding window will miss contents." }), +windowDelta > +windowSize ? ((0, jsx_runtime_1.jsx)(ui_1.ErrorMessage, { error: "It is not recommended to make the step size larger than the window size" })) : null, (0, jsx_runtime_1.jsx)(material_1.TextField, { label: "Size of sliding window (bp)", value: windowSize, onChange: event => {
12
+ setWindowSize(event.target.value);
13
+ } }), (0, jsx_runtime_1.jsx)(material_1.TextField, { label: "Step size of sliding window (bp)", value: windowDelta, onChange: event => {
14
+ setWindowDelta(event.target.value);
15
+ } }), (0, jsx_runtime_1.jsxs)(material_1.DialogActions, { children: [(0, jsx_runtime_1.jsx)(material_1.Button, { variant: "contained", onClick: () => {
16
+ model.setGCContentParams({
17
+ windowSize: +windowSize,
18
+ windowDelta: +windowDelta,
19
+ });
20
+ handleClose();
21
+ }, children: "Submit" }), (0, jsx_runtime_1.jsx)(material_1.Button, { variant: "contained", color: "secondary", onClick: () => {
22
+ handleClose();
23
+ }, children: "Cancel" })] })] }) }));
54
24
  });
55
25
  exports.default = EditGCContentParamsDialog;
@@ -35,7 +35,7 @@ export default function SharedModelF(pluginManager: PluginManager, configSchema:
35
35
  status?: string;
36
36
  reactElement?: React.ReactElement;
37
37
  };
38
- }) => import("react").JSX.Element | undefined;
38
+ }) => import("react/jsx-runtime").JSX.Element | undefined;
39
39
  renderProps: any;
40
40
  } & {
41
41
  doReload(): void;
@@ -190,13 +190,13 @@ export default function SharedModelF(pluginManager: PluginManager, configSchema:
190
190
  } & {
191
191
  readonly statsReadyAndRegionNotTooLarge: boolean;
192
192
  regionCannotBeRenderedText(_region: import("@jbrowse/core/util").Region): "" | "Force load to see features";
193
- regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react").JSX.Element | null;
193
+ regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react/jsx-runtime").JSX.Element | null;
194
194
  } & {
195
195
  featureIdUnderMouse: undefined | string;
196
196
  contextMenuFeature: undefined | import("@jbrowse/core/util").Feature;
197
197
  } & {
198
- readonly DisplayMessageComponent: import("react").FC<any> | undefined;
199
- readonly blockType: "dynamicBlocks" | "staticBlocks";
198
+ readonly DisplayMessageComponent: undefined | React.FC<any>;
199
+ readonly blockType: "staticBlocks" | "dynamicBlocks";
200
200
  readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
201
201
  } & {
202
202
  readonly renderDelay: number;
@@ -223,7 +223,7 @@ export default function SharedModelF(pluginManager: PluginManager, configSchema:
223
223
  contextMenuItems(): import("@jbrowse/core/ui").MenuItem[];
224
224
  renderProps(): any;
225
225
  } & {
226
- renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
226
+ renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
227
227
  afterAttach(): void;
228
228
  } & {
229
229
  message: undefined | string;
@@ -339,7 +339,17 @@ export default function SharedModelF(pluginManager: PluginManager, configSchema:
339
339
  readonly quantitativeStatsReady: boolean;
340
340
  } & {
341
341
  trackMenuItems(): (import("@jbrowse/core/ui").MenuDivider | import("@jbrowse/core/ui").MenuSubHeader | import("@jbrowse/core/ui").NormalMenuItem | import("@jbrowse/core/ui").CheckboxMenuItem | import("@jbrowse/core/ui").RadioMenuItem | import("@jbrowse/core/ui").SubMenuItem | {
342
+ type: string;
343
+ label?: undefined;
344
+ icon?: undefined;
345
+ subMenu?: undefined;
346
+ onClick?: undefined;
347
+ checked?: undefined;
348
+ } | {
342
349
  label: string;
350
+ icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
351
+ muiName: string;
352
+ };
343
353
  subMenu: ({
344
354
  label: string;
345
355
  subMenu: {
@@ -362,8 +372,8 @@ export default function SharedModelF(pluginManager: PluginManager, configSchema:
362
372
  subMenu?: undefined;
363
373
  })[];
364
374
  type?: undefined;
365
- checked?: undefined;
366
375
  onClick?: undefined;
376
+ checked?: undefined;
367
377
  } | {
368
378
  label: string;
369
379
  subMenu: {
@@ -373,10 +383,23 @@ export default function SharedModelF(pluginManager: PluginManager, configSchema:
373
383
  onClick: () => void;
374
384
  }[];
375
385
  type?: undefined;
376
- checked?: undefined;
386
+ icon?: undefined;
377
387
  onClick?: undefined;
388
+ checked?: undefined;
389
+ } | {
390
+ label: string;
391
+ icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
392
+ muiName: string;
393
+ };
394
+ onClick: () => void;
395
+ type?: undefined;
396
+ subMenu?: undefined;
397
+ checked?: undefined;
378
398
  } | {
379
399
  type: string;
400
+ icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
401
+ muiName: string;
402
+ };
380
403
  label: string;
381
404
  checked: boolean;
382
405
  onClick: () => void;
@@ -384,7 +407,7 @@ export default function SharedModelF(pluginManager: PluginManager, configSchema:
384
407
  })[];
385
408
  } & {
386
409
  afterAttach(): void;
387
- renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
410
+ renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
388
411
  } & {
389
412
  setGCContentParams({ windowSize, windowDelta, }: {
390
413
  windowSize: number;
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
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
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
36
  exports.default = SharedModelF;
27
37
  const react_1 = require("react");
@@ -35,7 +35,7 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
35
35
  status?: string;
36
36
  reactElement?: React.ReactElement;
37
37
  };
38
- }) => import("react").JSX.Element | undefined;
38
+ }) => import("react/jsx-runtime").JSX.Element | undefined;
39
39
  renderProps: any;
40
40
  } & {
41
41
  doReload(): void;
@@ -192,13 +192,13 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
192
192
  } & {
193
193
  readonly statsReadyAndRegionNotTooLarge: boolean;
194
194
  regionCannotBeRenderedText(_region: import("@jbrowse/core/util").Region): "" | "Force load to see features";
195
- regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react").JSX.Element | null;
195
+ regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react/jsx-runtime").JSX.Element | null;
196
196
  } & {
197
197
  featureIdUnderMouse: undefined | string;
198
198
  contextMenuFeature: undefined | import("@jbrowse/core/util").Feature;
199
199
  } & {
200
- readonly DisplayMessageComponent: import("react").FC<any> | undefined;
201
- readonly blockType: "dynamicBlocks" | "staticBlocks";
200
+ readonly DisplayMessageComponent: undefined | React.FC<any>;
201
+ readonly blockType: "staticBlocks" | "dynamicBlocks";
202
202
  readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
203
203
  } & {
204
204
  readonly renderDelay: number;
@@ -225,7 +225,7 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
225
225
  contextMenuItems(): import("@jbrowse/core/ui").MenuItem[];
226
226
  renderProps(): any;
227
227
  } & {
228
- renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
228
+ renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
229
229
  afterAttach(): void;
230
230
  } & {
231
231
  message: undefined | string;
@@ -341,7 +341,17 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
341
341
  readonly quantitativeStatsReady: boolean;
342
342
  } & {
343
343
  trackMenuItems(): (import("@jbrowse/core/ui").MenuDivider | import("@jbrowse/core/ui").MenuSubHeader | import("@jbrowse/core/ui").NormalMenuItem | import("@jbrowse/core/ui").CheckboxMenuItem | import("@jbrowse/core/ui").RadioMenuItem | import("@jbrowse/core/ui").SubMenuItem | {
344
+ type: string;
345
+ label?: undefined;
346
+ icon?: undefined;
347
+ subMenu?: undefined;
348
+ onClick?: undefined;
349
+ checked?: undefined;
350
+ } | {
344
351
  label: string;
352
+ icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
353
+ muiName: string;
354
+ };
345
355
  subMenu: ({
346
356
  label: string;
347
357
  subMenu: {
@@ -364,8 +374,8 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
364
374
  subMenu?: undefined;
365
375
  })[];
366
376
  type?: undefined;
367
- checked?: undefined;
368
377
  onClick?: undefined;
378
+ checked?: undefined;
369
379
  } | {
370
380
  label: string;
371
381
  subMenu: {
@@ -375,10 +385,23 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
375
385
  onClick: () => void;
376
386
  }[];
377
387
  type?: undefined;
378
- checked?: undefined;
388
+ icon?: undefined;
379
389
  onClick?: undefined;
390
+ checked?: undefined;
391
+ } | {
392
+ label: string;
393
+ icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
394
+ muiName: string;
395
+ };
396
+ onClick: () => void;
397
+ type?: undefined;
398
+ subMenu?: undefined;
399
+ checked?: undefined;
380
400
  } | {
381
401
  type: string;
402
+ icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
403
+ muiName: string;
404
+ };
382
405
  label: string;
383
406
  checked: boolean;
384
407
  onClick: () => void;
@@ -386,7 +409,7 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
386
409
  })[];
387
410
  } & {
388
411
  afterAttach(): void;
389
- renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
412
+ renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
390
413
  } & {
391
414
  setGCContentParams({ windowSize, windowDelta, }: {
392
415
  windowSize: number;
@@ -35,7 +35,7 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
35
35
  status?: string;
36
36
  reactElement?: React.ReactElement;
37
37
  };
38
- }) => import("react").JSX.Element | undefined;
38
+ }) => import("react/jsx-runtime").JSX.Element | undefined;
39
39
  renderProps: any;
40
40
  } & {
41
41
  doReload(): void;
@@ -192,13 +192,13 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
192
192
  } & {
193
193
  readonly statsReadyAndRegionNotTooLarge: boolean;
194
194
  regionCannotBeRenderedText(_region: import("@jbrowse/core/util").Region): "" | "Force load to see features";
195
- regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react").JSX.Element | null;
195
+ regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react/jsx-runtime").JSX.Element | null;
196
196
  } & {
197
197
  featureIdUnderMouse: undefined | string;
198
198
  contextMenuFeature: undefined | import("@jbrowse/core/util").Feature;
199
199
  } & {
200
- readonly DisplayMessageComponent: import("react").FC<any> | undefined;
201
- readonly blockType: "dynamicBlocks" | "staticBlocks";
200
+ readonly DisplayMessageComponent: undefined | React.FC<any>;
201
+ readonly blockType: "staticBlocks" | "dynamicBlocks";
202
202
  readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
203
203
  } & {
204
204
  readonly renderDelay: number;
@@ -225,7 +225,7 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
225
225
  contextMenuItems(): import("@jbrowse/core/ui").MenuItem[];
226
226
  renderProps(): any;
227
227
  } & {
228
- renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
228
+ renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
229
229
  afterAttach(): void;
230
230
  } & {
231
231
  message: undefined | string;
@@ -341,7 +341,17 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
341
341
  readonly quantitativeStatsReady: boolean;
342
342
  } & {
343
343
  trackMenuItems(): (import("@jbrowse/core/ui").MenuDivider | import("@jbrowse/core/ui").MenuSubHeader | import("@jbrowse/core/ui").NormalMenuItem | import("@jbrowse/core/ui").CheckboxMenuItem | import("@jbrowse/core/ui").RadioMenuItem | import("@jbrowse/core/ui").SubMenuItem | {
344
+ type: string;
345
+ label?: undefined;
346
+ icon?: undefined;
347
+ subMenu?: undefined;
348
+ onClick?: undefined;
349
+ checked?: undefined;
350
+ } | {
344
351
  label: string;
352
+ icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
353
+ muiName: string;
354
+ };
345
355
  subMenu: ({
346
356
  label: string;
347
357
  subMenu: {
@@ -364,8 +374,8 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
364
374
  subMenu?: undefined;
365
375
  })[];
366
376
  type?: undefined;
367
- checked?: undefined;
368
377
  onClick?: undefined;
378
+ checked?: undefined;
369
379
  } | {
370
380
  label: string;
371
381
  subMenu: {
@@ -375,10 +385,23 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
375
385
  onClick: () => void;
376
386
  }[];
377
387
  type?: undefined;
378
- checked?: undefined;
388
+ icon?: undefined;
379
389
  onClick?: undefined;
390
+ checked?: undefined;
391
+ } | {
392
+ label: string;
393
+ icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
394
+ muiName: string;
395
+ };
396
+ onClick: () => void;
397
+ type?: undefined;
398
+ subMenu?: undefined;
399
+ checked?: undefined;
380
400
  } | {
381
401
  type: string;
402
+ icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
403
+ muiName: string;
404
+ };
382
405
  label: string;
383
406
  checked: boolean;
384
407
  onClick: () => void;
@@ -386,7 +409,7 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
386
409
  })[];
387
410
  } & {
388
411
  afterAttach(): void;
389
- renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
412
+ renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
390
413
  } & {
391
414
  setGCContentParams({ windowSize, windowDelta, }: {
392
415
  windowSize: number;
@@ -28,31 +28,32 @@ class GCContentAdapter extends BaseFeatureDataAdapter {
28
28
  const sequenceAdapter = await this.configure();
29
29
  const windowSize = this.getConf('windowSize');
30
30
  const windowDelta = this.getConf('windowDelta');
31
- const hw = windowSize === 1 ? 1 : windowSize / 2;
32
- const f = windowSize === 1;
33
- let { start: queryStart, end: queryEnd } = query;
34
- queryStart = Math.max(0, queryStart - hw);
35
- queryEnd += hw;
36
- if (queryEnd < 0 || queryStart > queryEnd) {
31
+ const halfWindowSize = windowSize === 1 ? 1 : Math.ceil(windowSize / 2);
32
+ const isWindowSizeOneBp = windowSize === 1;
33
+ const qs = Math.max(0, Math.floor((query.start - halfWindowSize) / windowSize) * windowSize);
34
+ const qe = Math.ceil((query.end + halfWindowSize) / windowSize) * windowSize;
35
+ if (qe < 0 || qs > qe) {
37
36
  observer.complete();
38
37
  return;
39
38
  }
40
39
  const feats = await firstValueFrom(sequenceAdapter
41
40
  .getFeatures({
42
41
  ...query,
43
- start: queryStart,
44
- end: queryEnd,
42
+ start: qs,
43
+ end: qe,
45
44
  }, opts)
46
45
  .pipe(toArray()));
47
46
  const residues = ((_a = feats[0]) === null || _a === void 0 ? void 0 : _a.get('seq')) || '';
48
47
  let start = performance.now();
49
48
  await updateStatus('Calculating GC', statusCallback, () => {
50
- for (let i = hw; i < residues.length - hw; i += windowDelta) {
49
+ for (let i = halfWindowSize; i < residues.length - halfWindowSize; i += windowDelta) {
51
50
  if (performance.now() - start > 400) {
52
51
  checkStopToken(stopToken);
53
52
  start = performance.now();
54
53
  }
55
- const r = f ? residues[i] : residues.slice(i - hw, i + hw);
54
+ const r = isWindowSizeOneBp
55
+ ? residues[i]
56
+ : residues.slice(i - halfWindowSize, i + halfWindowSize);
56
57
  let nc = 0;
57
58
  let ng = 0;
58
59
  let len = 0;
@@ -67,7 +68,7 @@ class GCContentAdapter extends BaseFeatureDataAdapter {
67
68
  len++;
68
69
  }
69
70
  }
70
- const pos = queryStart;
71
+ const pos = qs;
71
72
  const score = this.gcMode === 'content'
72
73
  ? (ng + nc) / (len || 1)
73
74
  : this.gcMode === 'skew'
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  declare const EditGCContentParamsDialog: ({ model, handleClose, }: {
3
2
  model: {
4
3
  windowSizeSetting: number;
@@ -9,5 +8,5 @@ declare const EditGCContentParamsDialog: ({ model, handleClose, }: {
9
8
  }) => void;
10
9
  };
11
10
  handleClose: () => void;
12
- }) => React.JSX.Element;
11
+ }) => import("react/jsx-runtime").JSX.Element;
13
12
  export default EditGCContentParamsDialog;
@@ -1,30 +1,23 @@
1
- import React, { useState } from 'react';
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
2
3
  import { Dialog, ErrorMessage } from '@jbrowse/core/ui';
3
4
  import { Button, DialogActions, DialogContent, TextField, Typography, } from '@mui/material';
4
5
  import { observer } from 'mobx-react';
5
6
  const EditGCContentParamsDialog = observer(function ({ model, handleClose, }) {
6
7
  const [windowSize, setWindowSize] = useState(`${model.windowSizeSetting}`);
7
8
  const [windowDelta, setWindowDelta] = useState(`${model.windowDeltaSetting}`);
8
- return (React.createElement(Dialog, { open: true, onClose: handleClose, title: "Edit GC content params" },
9
- React.createElement(DialogContent, null,
10
- React.createElement(Typography, null, "GC content is calculated in a particular sliding window of size N, and then the sliding window moves (steps) some number of bases M forward. Note that small step sizes can result in high CPU over large areas, and it is not recommended to make the step size larger than the window size as then the sliding window will miss contents."),
11
- +windowDelta > +windowSize ? (React.createElement(ErrorMessage, { error: "It is not recommended to make the step size larger than the window size" })) : null,
12
- React.createElement(TextField, { label: "Size of sliding window (bp)", value: windowSize, onChange: event => {
13
- setWindowSize(event.target.value);
14
- } }),
15
- React.createElement(TextField, { label: "Step size of sliding window (bp)", value: windowDelta, onChange: event => {
16
- setWindowDelta(event.target.value);
17
- } }),
18
- React.createElement(DialogActions, null,
19
- React.createElement(Button, { variant: "contained", onClick: () => {
20
- model.setGCContentParams({
21
- windowSize: +windowSize,
22
- windowDelta: +windowDelta,
23
- });
24
- handleClose();
25
- } }, "Submit"),
26
- React.createElement(Button, { variant: "contained", color: "secondary", onClick: () => {
27
- handleClose();
28
- } }, "Cancel")))));
9
+ return (_jsx(Dialog, { open: true, onClose: handleClose, title: "Edit GC content params", children: _jsxs(DialogContent, { children: [_jsx(Typography, { children: "GC content is calculated in a particular sliding window of size N, and then the sliding window moves (steps) some number of bases M forward. Note that small step sizes can result in high CPU over large areas, and it is not recommended to make the step size larger than the window size as then the sliding window will miss contents." }), +windowDelta > +windowSize ? (_jsx(ErrorMessage, { error: "It is not recommended to make the step size larger than the window size" })) : null, _jsx(TextField, { label: "Size of sliding window (bp)", value: windowSize, onChange: event => {
10
+ setWindowSize(event.target.value);
11
+ } }), _jsx(TextField, { label: "Step size of sliding window (bp)", value: windowDelta, onChange: event => {
12
+ setWindowDelta(event.target.value);
13
+ } }), _jsxs(DialogActions, { children: [_jsx(Button, { variant: "contained", onClick: () => {
14
+ model.setGCContentParams({
15
+ windowSize: +windowSize,
16
+ windowDelta: +windowDelta,
17
+ });
18
+ handleClose();
19
+ }, children: "Submit" }), _jsx(Button, { variant: "contained", color: "secondary", onClick: () => {
20
+ handleClose();
21
+ }, children: "Cancel" })] })] }) }));
29
22
  });
30
23
  export default EditGCContentParamsDialog;
@@ -35,7 +35,7 @@ export default function SharedModelF(pluginManager: PluginManager, configSchema:
35
35
  status?: string;
36
36
  reactElement?: React.ReactElement;
37
37
  };
38
- }) => import("react").JSX.Element | undefined;
38
+ }) => import("react/jsx-runtime").JSX.Element | undefined;
39
39
  renderProps: any;
40
40
  } & {
41
41
  doReload(): void;
@@ -190,13 +190,13 @@ export default function SharedModelF(pluginManager: PluginManager, configSchema:
190
190
  } & {
191
191
  readonly statsReadyAndRegionNotTooLarge: boolean;
192
192
  regionCannotBeRenderedText(_region: import("@jbrowse/core/util").Region): "" | "Force load to see features";
193
- regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react").JSX.Element | null;
193
+ regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react/jsx-runtime").JSX.Element | null;
194
194
  } & {
195
195
  featureIdUnderMouse: undefined | string;
196
196
  contextMenuFeature: undefined | import("@jbrowse/core/util").Feature;
197
197
  } & {
198
- readonly DisplayMessageComponent: import("react").FC<any> | undefined;
199
- readonly blockType: "dynamicBlocks" | "staticBlocks";
198
+ readonly DisplayMessageComponent: undefined | React.FC<any>;
199
+ readonly blockType: "staticBlocks" | "dynamicBlocks";
200
200
  readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
201
201
  } & {
202
202
  readonly renderDelay: number;
@@ -223,7 +223,7 @@ export default function SharedModelF(pluginManager: PluginManager, configSchema:
223
223
  contextMenuItems(): import("@jbrowse/core/ui").MenuItem[];
224
224
  renderProps(): any;
225
225
  } & {
226
- renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
226
+ renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
227
227
  afterAttach(): void;
228
228
  } & {
229
229
  message: undefined | string;
@@ -339,7 +339,17 @@ export default function SharedModelF(pluginManager: PluginManager, configSchema:
339
339
  readonly quantitativeStatsReady: boolean;
340
340
  } & {
341
341
  trackMenuItems(): (import("@jbrowse/core/ui").MenuDivider | import("@jbrowse/core/ui").MenuSubHeader | import("@jbrowse/core/ui").NormalMenuItem | import("@jbrowse/core/ui").CheckboxMenuItem | import("@jbrowse/core/ui").RadioMenuItem | import("@jbrowse/core/ui").SubMenuItem | {
342
+ type: string;
343
+ label?: undefined;
344
+ icon?: undefined;
345
+ subMenu?: undefined;
346
+ onClick?: undefined;
347
+ checked?: undefined;
348
+ } | {
342
349
  label: string;
350
+ icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
351
+ muiName: string;
352
+ };
343
353
  subMenu: ({
344
354
  label: string;
345
355
  subMenu: {
@@ -362,8 +372,8 @@ export default function SharedModelF(pluginManager: PluginManager, configSchema:
362
372
  subMenu?: undefined;
363
373
  })[];
364
374
  type?: undefined;
365
- checked?: undefined;
366
375
  onClick?: undefined;
376
+ checked?: undefined;
367
377
  } | {
368
378
  label: string;
369
379
  subMenu: {
@@ -373,10 +383,23 @@ export default function SharedModelF(pluginManager: PluginManager, configSchema:
373
383
  onClick: () => void;
374
384
  }[];
375
385
  type?: undefined;
376
- checked?: undefined;
386
+ icon?: undefined;
377
387
  onClick?: undefined;
388
+ checked?: undefined;
389
+ } | {
390
+ label: string;
391
+ icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
392
+ muiName: string;
393
+ };
394
+ onClick: () => void;
395
+ type?: undefined;
396
+ subMenu?: undefined;
397
+ checked?: undefined;
378
398
  } | {
379
399
  type: string;
400
+ icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
401
+ muiName: string;
402
+ };
380
403
  label: string;
381
404
  checked: boolean;
382
405
  onClick: () => void;
@@ -384,7 +407,7 @@ export default function SharedModelF(pluginManager: PluginManager, configSchema:
384
407
  })[];
385
408
  } & {
386
409
  afterAttach(): void;
387
- renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
410
+ renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
388
411
  } & {
389
412
  setGCContentParams({ windowSize, windowDelta, }: {
390
413
  windowSize: number;
@@ -35,7 +35,7 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
35
35
  status?: string;
36
36
  reactElement?: React.ReactElement;
37
37
  };
38
- }) => import("react").JSX.Element | undefined;
38
+ }) => import("react/jsx-runtime").JSX.Element | undefined;
39
39
  renderProps: any;
40
40
  } & {
41
41
  doReload(): void;
@@ -192,13 +192,13 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
192
192
  } & {
193
193
  readonly statsReadyAndRegionNotTooLarge: boolean;
194
194
  regionCannotBeRenderedText(_region: import("@jbrowse/core/util").Region): "" | "Force load to see features";
195
- regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react").JSX.Element | null;
195
+ regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react/jsx-runtime").JSX.Element | null;
196
196
  } & {
197
197
  featureIdUnderMouse: undefined | string;
198
198
  contextMenuFeature: undefined | import("@jbrowse/core/util").Feature;
199
199
  } & {
200
- readonly DisplayMessageComponent: import("react").FC<any> | undefined;
201
- readonly blockType: "dynamicBlocks" | "staticBlocks";
200
+ readonly DisplayMessageComponent: undefined | React.FC<any>;
201
+ readonly blockType: "staticBlocks" | "dynamicBlocks";
202
202
  readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
203
203
  } & {
204
204
  readonly renderDelay: number;
@@ -225,7 +225,7 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
225
225
  contextMenuItems(): import("@jbrowse/core/ui").MenuItem[];
226
226
  renderProps(): any;
227
227
  } & {
228
- renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
228
+ renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
229
229
  afterAttach(): void;
230
230
  } & {
231
231
  message: undefined | string;
@@ -341,7 +341,17 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
341
341
  readonly quantitativeStatsReady: boolean;
342
342
  } & {
343
343
  trackMenuItems(): (import("@jbrowse/core/ui").MenuDivider | import("@jbrowse/core/ui").MenuSubHeader | import("@jbrowse/core/ui").NormalMenuItem | import("@jbrowse/core/ui").CheckboxMenuItem | import("@jbrowse/core/ui").RadioMenuItem | import("@jbrowse/core/ui").SubMenuItem | {
344
+ type: string;
345
+ label?: undefined;
346
+ icon?: undefined;
347
+ subMenu?: undefined;
348
+ onClick?: undefined;
349
+ checked?: undefined;
350
+ } | {
344
351
  label: string;
352
+ icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
353
+ muiName: string;
354
+ };
345
355
  subMenu: ({
346
356
  label: string;
347
357
  subMenu: {
@@ -364,8 +374,8 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
364
374
  subMenu?: undefined;
365
375
  })[];
366
376
  type?: undefined;
367
- checked?: undefined;
368
377
  onClick?: undefined;
378
+ checked?: undefined;
369
379
  } | {
370
380
  label: string;
371
381
  subMenu: {
@@ -375,10 +385,23 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
375
385
  onClick: () => void;
376
386
  }[];
377
387
  type?: undefined;
378
- checked?: undefined;
388
+ icon?: undefined;
379
389
  onClick?: undefined;
390
+ checked?: undefined;
391
+ } | {
392
+ label: string;
393
+ icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
394
+ muiName: string;
395
+ };
396
+ onClick: () => void;
397
+ type?: undefined;
398
+ subMenu?: undefined;
399
+ checked?: undefined;
380
400
  } | {
381
401
  type: string;
402
+ icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
403
+ muiName: string;
404
+ };
382
405
  label: string;
383
406
  checked: boolean;
384
407
  onClick: () => void;
@@ -386,7 +409,7 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
386
409
  })[];
387
410
  } & {
388
411
  afterAttach(): void;
389
- renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
412
+ renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
390
413
  } & {
391
414
  setGCContentParams({ windowSize, windowDelta, }: {
392
415
  windowSize: number;
@@ -35,7 +35,7 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
35
35
  status?: string;
36
36
  reactElement?: React.ReactElement;
37
37
  };
38
- }) => import("react").JSX.Element | undefined;
38
+ }) => import("react/jsx-runtime").JSX.Element | undefined;
39
39
  renderProps: any;
40
40
  } & {
41
41
  doReload(): void;
@@ -192,13 +192,13 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
192
192
  } & {
193
193
  readonly statsReadyAndRegionNotTooLarge: boolean;
194
194
  regionCannotBeRenderedText(_region: import("@jbrowse/core/util").Region): "" | "Force load to see features";
195
- regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react").JSX.Element | null;
195
+ regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react/jsx-runtime").JSX.Element | null;
196
196
  } & {
197
197
  featureIdUnderMouse: undefined | string;
198
198
  contextMenuFeature: undefined | import("@jbrowse/core/util").Feature;
199
199
  } & {
200
- readonly DisplayMessageComponent: import("react").FC<any> | undefined;
201
- readonly blockType: "dynamicBlocks" | "staticBlocks";
200
+ readonly DisplayMessageComponent: undefined | React.FC<any>;
201
+ readonly blockType: "staticBlocks" | "dynamicBlocks";
202
202
  readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
203
203
  } & {
204
204
  readonly renderDelay: number;
@@ -225,7 +225,7 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
225
225
  contextMenuItems(): import("@jbrowse/core/ui").MenuItem[];
226
226
  renderProps(): any;
227
227
  } & {
228
- renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
228
+ renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
229
229
  afterAttach(): void;
230
230
  } & {
231
231
  message: undefined | string;
@@ -341,7 +341,17 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
341
341
  readonly quantitativeStatsReady: boolean;
342
342
  } & {
343
343
  trackMenuItems(): (import("@jbrowse/core/ui").MenuDivider | import("@jbrowse/core/ui").MenuSubHeader | import("@jbrowse/core/ui").NormalMenuItem | import("@jbrowse/core/ui").CheckboxMenuItem | import("@jbrowse/core/ui").RadioMenuItem | import("@jbrowse/core/ui").SubMenuItem | {
344
+ type: string;
345
+ label?: undefined;
346
+ icon?: undefined;
347
+ subMenu?: undefined;
348
+ onClick?: undefined;
349
+ checked?: undefined;
350
+ } | {
344
351
  label: string;
352
+ icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
353
+ muiName: string;
354
+ };
345
355
  subMenu: ({
346
356
  label: string;
347
357
  subMenu: {
@@ -364,8 +374,8 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
364
374
  subMenu?: undefined;
365
375
  })[];
366
376
  type?: undefined;
367
- checked?: undefined;
368
377
  onClick?: undefined;
378
+ checked?: undefined;
369
379
  } | {
370
380
  label: string;
371
381
  subMenu: {
@@ -375,10 +385,23 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
375
385
  onClick: () => void;
376
386
  }[];
377
387
  type?: undefined;
378
- checked?: undefined;
388
+ icon?: undefined;
379
389
  onClick?: undefined;
390
+ checked?: undefined;
391
+ } | {
392
+ label: string;
393
+ icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
394
+ muiName: string;
395
+ };
396
+ onClick: () => void;
397
+ type?: undefined;
398
+ subMenu?: undefined;
399
+ checked?: undefined;
380
400
  } | {
381
401
  type: string;
402
+ icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
403
+ muiName: string;
404
+ };
382
405
  label: string;
383
406
  checked: boolean;
384
407
  onClick: () => void;
@@ -386,7 +409,7 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
386
409
  })[];
387
410
  } & {
388
411
  afterAttach(): void;
389
- renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
412
+ renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
390
413
  } & {
391
414
  setGCContentParams({ windowSize, windowDelta, }: {
392
415
  windowSize: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-gccontent",
3
- "version": "2.18.0",
3
+ "version": "3.0.0",
4
4
  "description": "JBrowse 2 gccontent concepts",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -53,5 +53,5 @@
53
53
  "distModule": "esm/index.js",
54
54
  "srcModule": "src/index.ts",
55
55
  "module": "esm/index.js",
56
- "gitHead": "c344ea60099cb7e460b77f15808946b24a7eee74"
56
+ "gitHead": "2c6897f1fa732b1db5b094d1dca197e333e95319"
57
57
  }