@jbrowse/core 2.11.0 → 2.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/BaseFeatureWidget/BaseFeatureDetail/index.js +10 -2
  2. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +7 -2
  3. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +80 -86
  4. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +8 -0
  5. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.js +67 -0
  6. package/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.d.ts +5 -3
  7. package/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +7 -7
  8. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.d.ts +7 -0
  9. package/BaseFeatureWidget/SequenceFeatureDetails/{SequenceFeatureSettingsDialog.js → dialogs/SettingsDialog.js} +20 -10
  10. package/BaseFeatureWidget/SequenceFeatureDetails/hooks.js +2 -8
  11. package/BaseFeatureWidget/SequenceFeatureDetails/index.d.ts +1 -3
  12. package/BaseFeatureWidget/SequenceFeatureDetails/index.js +3 -67
  13. package/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +14 -0
  14. package/BaseFeatureWidget/SequenceFeatureDetails/model.js +40 -0
  15. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.d.ts +15 -0
  16. package/BaseFeatureWidget/SequenceFeatureDetails/{CDNASequence.js → seqtypes/CDNASequence.js} +17 -8
  17. package/BaseFeatureWidget/SequenceFeatureDetails/{CDSSequence.d.ts → seqtypes/CDSSequence.d.ts} +1 -1
  18. package/BaseFeatureWidget/SequenceFeatureDetails/{CDSSequence.js → seqtypes/CDSSequence.js} +2 -2
  19. package/BaseFeatureWidget/SequenceFeatureDetails/{GenomicSequence.js → seqtypes/GenomicSequence.js} +1 -1
  20. package/BaseFeatureWidget/SequenceFeatureDetails/{ProteinSequence.d.ts → seqtypes/ProteinSequence.d.ts} +1 -1
  21. package/BaseFeatureWidget/SequenceFeatureDetails/{ProteinSequence.js → seqtypes/ProteinSequence.js} +2 -2
  22. package/BaseFeatureWidget/stateModelFactory.d.ts +32 -0
  23. package/BaseFeatureWidget/stateModelFactory.js +5 -0
  24. package/BaseFeatureWidget/types.d.ts +2 -7
  25. package/BaseFeatureWidget/util.d.ts +4 -2
  26. package/PluginManager.d.ts +1 -1
  27. package/ReExports/modules.d.ts +1 -1
  28. package/data_adapters/CytobandAdapter/index.d.ts +1 -2
  29. package/data_adapters/CytobandAdapter/index.js +3 -2
  30. package/package.json +2 -2
  31. package/tsconfig.build.tsbuildinfo +1 -1
  32. package/ui/index.d.ts +0 -1
  33. package/ui/index.js +1 -3
  34. package/util/index.d.ts +8 -0
  35. package/util/index.js +12 -2
  36. package/util/jexl.d.ts +1 -1
  37. package/util/jexl.js +2 -2
  38. package/util/simpleFeature.d.ts +4 -0
  39. package/BaseFeatureWidget/SequenceFeatureDetails/CDNASequence.d.ts +0 -13
  40. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureSettingsDialog.d.ts +0 -9
  41. package/ui/Tooltip.d.ts +0 -11
  42. package/ui/Tooltip.js +0 -54
  43. /package/BaseFeatureWidget/SequenceFeatureDetails/{SequenceHelpDialog.d.ts → dialogs/HelpDialog.d.ts} +0 -0
  44. /package/BaseFeatureWidget/SequenceFeatureDetails/{SequenceHelpDialog.js → dialogs/HelpDialog.js} +0 -0
  45. /package/BaseFeatureWidget/SequenceFeatureDetails/{GenomicSequence.d.ts → seqtypes/GenomicSequence.d.ts} +0 -0
@@ -4,22 +4,31 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const react_1 = __importDefault(require("react"));
7
- const util_1 = require("./util");
8
- function CDNASequence({ utr, cds, exons, sequence, upstream, downstream, includeIntrons, collapseIntron, intronBp, }) {
7
+ const mobx_react_1 = require("mobx-react");
8
+ const util_1 = require("../util");
9
+ const CDNASequence = (0, mobx_react_1.observer)(function ({ utr, cds, exons, sequence, upstream, downstream, includeIntrons, collapseIntron, model, }) {
10
+ const { upperCaseCDS, intronBp } = model;
11
+ const hasCds = cds.length > 0;
9
12
  const chunks = (cds.length ? [...cds, ...utr].sort((a, b) => a.start - b.start) : exons).filter(f => f.start !== f.end);
13
+ const toLower = (s) => (upperCaseCDS ? s.toLowerCase() : s);
14
+ const toUpper = (s) => (upperCaseCDS ? s.toUpperCase() : s);
10
15
  return (react_1.default.createElement(react_1.default.Fragment, null,
11
- upstream ? (react_1.default.createElement("span", { style: { background: util_1.updownstreamColor } }, upstream)) : null,
16
+ upstream ? (react_1.default.createElement("span", { style: { background: util_1.updownstreamColor } }, toLower(upstream))) : null,
12
17
  chunks.map((chunk, idx) => {
13
18
  var _a;
14
19
  const intron = sequence.slice(chunk.end, (_a = chunks[idx + 1]) === null || _a === void 0 ? void 0 : _a.start);
15
20
  return (react_1.default.createElement(react_1.default.Fragment, { key: JSON.stringify(chunk) },
16
21
  react_1.default.createElement("span", { style: {
17
22
  background: chunk.type === 'CDS' ? util_1.cdsColor : util_1.utrColor,
18
- } }, sequence.slice(chunk.start, chunk.end)),
19
- includeIntrons && idx < chunks.length - 1 ? (react_1.default.createElement("span", { style: { background: util_1.intronColor } }, collapseIntron && intron.length > intronBp * 2
23
+ } }, hasCds
24
+ ? chunk.type === 'CDS'
25
+ ? toUpper(sequence.slice(chunk.start, chunk.end))
26
+ : toLower(sequence.slice(chunk.start, chunk.end))
27
+ : toUpper(sequence.slice(chunk.start, chunk.end))),
28
+ includeIntrons && idx < chunks.length - 1 ? (react_1.default.createElement("span", { style: { background: util_1.intronColor } }, toLower(collapseIntron && intron.length > intronBp * 2
20
29
  ? `${intron.slice(0, intronBp)}...${intron.slice(-intronBp)}`
21
- : intron)) : null));
30
+ : intron))) : null));
22
31
  }),
23
- downstream ? (react_1.default.createElement("span", { style: { background: util_1.updownstreamColor } }, downstream)) : null));
24
- }
32
+ downstream ? (react_1.default.createElement("span", { style: { background: util_1.updownstreamColor } }, toLower(downstream))) : null));
33
+ });
25
34
  exports.default = CDNASequence;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { Feat } from '../util';
2
+ import { Feat } from '../../util';
3
3
  export default function CDSSequence({ cds, sequence, }: {
4
4
  cds: Feat[];
5
5
  sequence: string;
@@ -4,8 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const react_1 = __importDefault(require("react"));
7
- const util_1 = require("./util");
8
- const util_2 = require("../util");
7
+ const util_1 = require("../util");
8
+ const util_2 = require("../../util");
9
9
  function CDSSequence({ cds, sequence, }) {
10
10
  return react_1.default.createElement("span", { style: { background: util_1.cdsColor } }, (0, util_2.stitch)(cds, sequence));
11
11
  }
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const react_1 = __importDefault(require("react"));
7
- const util_1 = require("./util");
7
+ const util_1 = require("../util");
8
8
  function GenomicSequence({ sequence, upstream, downstream, }) {
9
9
  return (react_1.default.createElement(react_1.default.Fragment, null,
10
10
  upstream ? (react_1.default.createElement("span", { style: { background: util_1.updownstreamColor } }, upstream)) : null,
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { Feat } from '../util';
2
+ import { Feat } from '../../util';
3
3
  export default function ProteinSequence({ cds, sequence, codonTable, }: {
4
4
  cds: Feat[];
5
5
  sequence: string;
@@ -4,8 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const react_1 = __importDefault(require("react"));
7
- const util_1 = require("../util");
8
- const util_2 = require("./util");
7
+ const util_1 = require("../../util");
8
+ const util_2 = require("../util");
9
9
  function ProteinSequence({ cds, sequence, codonTable, }) {
10
10
  const str = (0, util_1.stitch)(cds, sequence);
11
11
  let protein = '';
@@ -1,3 +1,4 @@
1
+ import { Instance } from 'mobx-state-tree';
1
2
  import PluginManager from '../PluginManager';
2
3
  /**
3
4
  * #stateModel BaseFeatureWidget
@@ -47,6 +48,20 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
47
48
  * #property
48
49
  */
49
50
  maxDepth: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
51
+ /**
52
+ * #property
53
+ */
54
+ sequenceFeatureDetails: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IModelType<{}, {
55
+ intronBp: number;
56
+ upDownBp: number;
57
+ upperCaseCDS: boolean;
58
+ } & {
59
+ setUpDownBp(f: number): void;
60
+ setIntronBp(f: number): void;
61
+ setUpperCaseCDS(f: boolean): void;
62
+ } & {
63
+ afterAttach(): void;
64
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>, [undefined]>;
50
65
  }, {
51
66
  error: unknown;
52
67
  } & {
@@ -113,6 +128,20 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
113
128
  * #property
114
129
  */
115
130
  maxDepth: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
131
+ /**
132
+ * #property
133
+ */
134
+ sequenceFeatureDetails: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IModelType<{}, {
135
+ intronBp: number;
136
+ upDownBp: number;
137
+ upperCaseCDS: boolean;
138
+ } & {
139
+ setUpDownBp(f: number): void;
140
+ setIntronBp(f: number): void;
141
+ setUpperCaseCDS(f: boolean): void;
142
+ } & {
143
+ afterAttach(): void;
144
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>, [undefined]>;
116
145
  }>>, {
117
146
  id: string;
118
147
  type: "BaseFeatureWidget";
@@ -122,5 +151,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
122
151
  trackType: string | undefined;
123
152
  maxDepth: number | undefined;
124
153
  formattedFields: any;
154
+ sequenceFeatureDetails: import("mobx-state-tree").ModelSnapshotType<{}>;
125
155
  finalizedFeatureData: any;
126
156
  }>;
157
+ export type BaseFeatureWidgetStateModel = ReturnType<typeof stateModelFactory>;
158
+ export type BaseFeatureWidgetModel = Instance<BaseFeatureWidgetStateModel>;
@@ -10,6 +10,7 @@ const clone_1 = __importDefault(require("clone"));
10
10
  const configuration_1 = require("../configuration");
11
11
  const util_1 = require("../util");
12
12
  const mst_1 = require("../util/types/mst");
13
+ const model_1 = require("./SequenceFeatureDetails/model");
13
14
  function formatSubfeatures(obj, depth, parse, currentDepth = 0, returnObj = {}) {
14
15
  var _a;
15
16
  if (depth <= currentDepth) {
@@ -70,6 +71,10 @@ function stateModelFactory(pluginManager) {
70
71
  * #property
71
72
  */
72
73
  maxDepth: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.number),
74
+ /**
75
+ * #property
76
+ */
77
+ sequenceFeatureDetails: mobx_state_tree_1.types.optional((0, model_1.SequenceFeatureDetailsF)(), {}),
73
78
  })
74
79
  .volatile(() => ({
75
80
  error: undefined,
@@ -1,16 +1,11 @@
1
1
  import React from 'react';
2
- import { IAnyStateTreeNode } from 'mobx-state-tree';
3
2
  import { SimpleFeatureSerialized } from '../util/simpleFeature';
4
- import { AbstractViewModel } from '../util';
3
+ import { BaseFeatureWidgetModel } from './stateModelFactory';
5
4
  export interface BaseProps extends BaseCardProps {
6
5
  feature: SimpleFeatureSerialized;
7
6
  formatter?: (val: unknown, key: string) => React.ReactNode;
8
7
  descriptions?: Record<string, React.ReactNode>;
9
- model?: IAnyStateTreeNode & {
10
- view?: AbstractViewModel & {
11
- assemblyNames?: string[];
12
- };
13
- };
8
+ model?: BaseFeatureWidgetModel;
14
9
  }
15
10
  export interface BaseCardProps {
16
11
  title?: string;
@@ -1,7 +1,7 @@
1
1
  export interface Feat {
2
2
  start: number;
3
3
  end: number;
4
- type: string;
4
+ type?: string;
5
5
  name?: string;
6
6
  id?: string;
7
7
  }
@@ -25,7 +25,7 @@ export declare function dedupe(list: Feat[]): Feat[];
25
25
  export declare function revlist(list: Feat[], seqlen: number): {
26
26
  start: number;
27
27
  end: number;
28
- type: string;
28
+ type?: string | undefined;
29
29
  name?: string | undefined;
30
30
  id?: string | undefined;
31
31
  }[];
@@ -33,6 +33,8 @@ export declare function calculateUTRs(cds: Feat[], exons: Feat[]): {
33
33
  type: string;
34
34
  start: number;
35
35
  end: number;
36
+ name?: string | undefined;
37
+ id?: string | undefined;
36
38
  }[];
37
39
  export declare function calculateUTRs2(cds: Feat[], parentFeat: Feat): {
38
40
  type: string;
@@ -230,7 +230,7 @@ export default class PluginManager {
230
230
  '@mui/x-data-grid': {
231
231
  useGridApiContext: typeof import("@mui/x-data-grid").useGridApiContext;
232
232
  useGridApiRef: <Api extends import("@mui/x-data-grid").GridApiCommon<any, any> = import("@mui/x-data-grid/internals").GridApiCommunity>() => import("react").MutableRefObject<Api>;
233
- useGridRootProps: () => import("@mui/x-data-grid/models/props/DataGridProps").DataGridProcessedProps<any>;
233
+ useGridRootProps: () => import("@mui/x-data-grid/internals").DataGridProcessedProps<any>;
234
234
  };
235
235
  '@mui/material/utils': typeof import("@mui/material/utils");
236
236
  '@material-ui/core/utils': typeof import("@mui/material/utils");
@@ -138,7 +138,7 @@ declare const libs: {
138
138
  '@mui/x-data-grid': {
139
139
  useGridApiContext: typeof useGridApiContext;
140
140
  useGridApiRef: <Api extends import("@mui/x-data-grid").GridApiCommon<any, any> = import("@mui/x-data-grid/internals").GridApiCommunity>() => React.MutableRefObject<Api>;
141
- useGridRootProps: () => import("@mui/x-data-grid/models/props/DataGridProps").DataGridProcessedProps<any>;
141
+ useGridRootProps: () => import("@mui/x-data-grid/internals").DataGridProcessedProps<any>;
142
142
  };
143
143
  '@mui/material/utils': typeof MUIUtils;
144
144
  '@material-ui/core/utils': typeof MUIUtils;
@@ -1,3 +1,2 @@
1
1
  import PluginManager from '../../PluginManager';
2
- declare const _default: (pluginManager: PluginManager) => void;
3
- export default _default;
2
+ export default function CytobandAdapterF(pluginManager: PluginManager): void;
@@ -28,10 +28,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  const pluggableElementTypes_1 = require("../../pluggableElementTypes");
30
30
  const configSchema_1 = __importDefault(require("./configSchema"));
31
- exports.default = (pluginManager) => {
31
+ function CytobandAdapterF(pluginManager) {
32
32
  pluginManager.addAdapterType(() => new pluggableElementTypes_1.AdapterType({
33
33
  name: 'CytobandAdapter',
34
34
  configSchema: configSchema_1.default,
35
35
  getAdapterClass: () => Promise.resolve().then(() => __importStar(require('./CytobandAdapter'))).then(f => f.default),
36
36
  }));
37
- };
37
+ }
38
+ exports.default = CytobandAdapterF;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/core",
3
- "version": "2.11.0",
3
+ "version": "2.11.1",
4
4
  "description": "JBrowse 2 core libraries used by plugins",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -72,5 +72,5 @@
72
72
  "access": "public",
73
73
  "directory": "dist"
74
74
  },
75
- "gitHead": "3d43a820b9274a6160aa4dc15616147f390d9094"
75
+ "gitHead": "11b28d66d782eb06f92ccb993108bb6c3c82819e"
76
76
  }