@jbrowse/core 2.6.2 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +0 -9
  2. package/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +2 -3
  3. package/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +1 -3
  4. package/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +0 -9
  5. package/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +2 -3
  6. package/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.d.ts +0 -9
  7. package/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +11 -6
  8. package/BaseFeatureWidget/BaseFeatureDetail/FieldName.d.ts +0 -9
  9. package/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +2 -3
  10. package/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +0 -9
  11. package/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +2 -3
  12. package/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +0 -9
  13. package/BaseFeatureWidget/BaseFeatureDetail/UriField.js +2 -3
  14. package/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +2 -11
  15. package/BaseFeatureWidget/BaseFeatureDetail/index.js +5 -4
  16. package/BaseFeatureWidget/SequenceFeatureDetails/ProteinSequence.d.ts +1 -3
  17. package/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +1 -1
  18. package/BaseFeatureWidget/util.js +0 -4
  19. package/PluginManager.d.ts +9 -17
  20. package/ReExports/modules.d.ts +5 -5
  21. package/ReExports/modules.js +24 -18
  22. package/TextSearch/TextSearchManager.d.ts +1 -1
  23. package/assemblyManager/assembly.d.ts +2 -0
  24. package/assemblyManager/assembly.js +9 -4
  25. package/assemblyManager/assemblyManager.d.ts +123 -111
  26. package/assemblyManager/assemblyManager.js +1 -1
  27. package/configuration/configurationSchema.js +2 -2
  28. package/configuration/configurationSlot.js +3 -6
  29. package/data_adapters/BaseAdapter/index.d.ts +1 -3
  30. package/data_adapters/dataAdapterCache.js +2 -2
  31. package/package.json +5 -6
  32. package/pluggableElementTypes/AdapterType.d.ts +2 -2
  33. package/pluggableElementTypes/RpcMethodType.js +2 -3
  34. package/pluggableElementTypes/models/BaseTrackModel.d.ts +5 -5
  35. package/pluggableElementTypes/models/BaseTrackModel.js +1 -16
  36. package/pluggableElementTypes/models/InternetAccountModel.d.ts +2 -2
  37. package/pluggableElementTypes/models/InternetAccountModel.js +2 -2
  38. package/pluggableElementTypes/renderers/BoxRendererType.d.ts +1 -3
  39. package/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +3 -0
  40. package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.d.ts +7 -3
  41. package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.js +45 -2
  42. package/pluggableElementTypes/renderers/ServerSideRenderedContent.d.ts +2 -2
  43. package/pluggableElementTypes/renderers/ServerSideRenderedContent.js +49 -12
  44. package/pluggableElementTypes/renderers/util/serializableFilterChain.js +2 -2
  45. package/rpc/RpcManager.d.ts +2 -2
  46. package/rpc/WebWorkerRpcDriver.js +6 -3
  47. package/rpc/methods/CoreGetFeatureDensityStats.js +0 -1
  48. package/rpc/methods/CoreGetFeatureDetails.js +0 -1
  49. package/rpc/methods/CoreGetFeatures.js +0 -1
  50. package/rpc/methods/CoreRender.js +0 -1
  51. package/rpc/remoteAbortSignals.d.ts +2 -2
  52. package/tsconfig.build.tsbuildinfo +1 -1
  53. package/ui/ColorPicker.js +3 -6
  54. package/ui/Dialog.d.ts +2 -2
  55. package/ui/Dialog.js +2 -1
  56. package/ui/DropDownMenu.d.ts +3 -4
  57. package/ui/DropDownMenu.js +8 -12
  58. package/ui/EditableTypography.js +7 -5
  59. package/ui/FactoryResetDialog.d.ts +3 -4
  60. package/ui/FactoryResetDialog.js +3 -2
  61. package/ui/FileSelector/FileSelector.d.ts +2 -2
  62. package/ui/FileSelector/FileSelector.js +2 -1
  63. package/ui/FileSelector/LocalFileChooser.d.ts +2 -2
  64. package/ui/FileSelector/LocalFileChooser.js +4 -3
  65. package/ui/FileSelector/UrlChooser.d.ts +5 -5
  66. package/ui/FileSelector/UrlChooser.js +2 -2
  67. package/ui/Menu.js +1 -1
  68. package/ui/ResizeBar.d.ts +0 -4
  69. package/ui/ResizeBar.js +12 -31
  70. package/ui/ResizeHandle.d.ts +3 -2
  71. package/ui/ResizeHandle.js +10 -7
  72. package/ui/ReturnToImportFormDialog.d.ts +4 -5
  73. package/ui/ReturnToImportFormDialog.js +3 -3
  74. package/ui/SanitizedHTML.d.ts +0 -1
  75. package/ui/SanitizedHTML.js +0 -2
  76. package/ui/Snackbar.d.ts +2 -2
  77. package/ui/Snackbar.js +2 -1
  78. package/ui/Tooltip.d.ts +4 -7
  79. package/ui/Tooltip.js +3 -3
  80. package/ui/theme.d.ts +1 -3
  81. package/ui/theme.js +2 -2
  82. package/ui/useResizeBar.d.ts +5 -0
  83. package/ui/useResizeBar.js +22 -0
  84. package/util/Base1DUtils.js +0 -1
  85. package/util/blockTypes.d.ts +1 -9
  86. package/util/blockTypes.js +5 -21
  87. package/util/calculateDynamicBlocks.js +3 -2
  88. package/util/calculateStaticBlocks.js +3 -4
  89. package/util/colord.d.ts +1 -0
  90. package/util/colord.js +13 -0
  91. package/util/dedupe.js +1 -2
  92. package/util/index.d.ts +13 -16
  93. package/util/index.js +17 -10
  94. package/util/io/RemoteFileWithRangeCache.js +3 -3
  95. package/util/layouts/GranularRectLayout.js +1 -2
  96. package/util/map-obj.d.ts +1 -1
  97. package/util/nanoid.d.ts +5 -0
  98. package/util/nanoid.js +73 -0
  99. package/util/offscreenCanvasPonyfill.js +1 -2
  100. package/util/offscreenCanvasUtils.js +1 -0
  101. package/util/tracks.d.ts +2 -6
  102. package/util/types/index.d.ts +38 -10
  103. package/util/types/index.js +19 -1
  104. package/util/types/mst.js +2 -2
@@ -1,13 +1,4 @@
1
1
  import React from 'react';
2
- export declare const useStyles: (params: void, styleOverrides?: {
3
- props: any;
4
- ownerState?: Record<string, unknown> | undefined;
5
- } | undefined) => {
6
- classes: Record<"field" | "fieldSubvalue", string>;
7
- theme: import("@mui/material").Theme;
8
- css: import("tss-react").Css;
9
- cx: import("tss-react").Cx;
10
- };
11
2
  export default function ArrayValue({ name, value, description, prefix, }: {
12
3
  description?: React.ReactNode;
13
4
  name: string;
@@ -3,7 +3,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.useStyles = void 0;
7
6
  const react_1 = __importDefault(require("react"));
8
7
  const is_object_1 = __importDefault(require("is-object"));
9
8
  const mui_1 = require("tss-react/mui");
@@ -11,7 +10,7 @@ const mui_1 = require("tss-react/mui");
11
10
  const Attributes_1 = __importDefault(require("./Attributes"));
12
11
  const FieldName_1 = __importDefault(require("./FieldName"));
13
12
  const BasicValue_1 = __importDefault(require("./BasicValue"));
14
- exports.useStyles = (0, mui_1.makeStyles)()(theme => ({
13
+ const useStyles = (0, mui_1.makeStyles)()(theme => ({
15
14
  field: {
16
15
  display: 'flex',
17
16
  flexWrap: 'wrap',
@@ -26,7 +25,7 @@ exports.useStyles = (0, mui_1.makeStyles)()(theme => ({
26
25
  },
27
26
  }));
28
27
  function ArrayValue({ name, value, description, prefix = [], }) {
29
- const { classes } = (0, exports.useStyles)();
28
+ const { classes } = useStyles();
30
29
  if (value.length === 1) {
31
30
  return (0, is_object_1.default)(value[0]) ? (react_1.default.createElement(Attributes_1.default, { attributes: value[0], prefix: [...prefix, name] })) : (react_1.default.createElement("div", { className: classes.field },
32
31
  react_1.default.createElement(FieldName_1.default, { prefix: prefix, description: description, name: name }),
@@ -2,9 +2,7 @@ import React from 'react';
2
2
  export default function Attributes(props: {
3
3
  attributes: {
4
4
  [key: string]: unknown;
5
- __jbrowsefmt?: {
6
- [key: string]: unknown;
7
- };
5
+ __jbrowsefmt?: Record<string, unknown>;
8
6
  };
9
7
  omit?: string[];
10
8
  omitSingleLevel?: string[];
@@ -1,13 +1,4 @@
1
1
  import React from 'react';
2
- export declare const useStyles: (params: void, styleOverrides?: {
3
- props: any;
4
- ownerState?: Record<string, unknown> | undefined;
5
- } | undefined) => {
6
- classes: Record<"fieldValue", string>;
7
- theme: import("@mui/material").Theme;
8
- css: import("tss-react").Css;
9
- cx: import("tss-react").Cx;
10
- };
11
2
  export default function BasicValue({ value }: {
12
3
  value: unknown;
13
4
  }): React.JSX.Element;
@@ -3,14 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.useStyles = void 0;
7
6
  const react_1 = __importDefault(require("react"));
8
7
  const mui_1 = require("tss-react/mui");
9
8
  const is_object_1 = __importDefault(require("is-object"));
10
9
  const material_1 = require("@mui/material");
11
10
  // locals
12
11
  const ui_1 = require("../../ui");
13
- exports.useStyles = (0, mui_1.makeStyles)()(theme => ({
12
+ const useStyles = (0, mui_1.makeStyles)()(theme => ({
14
13
  fieldValue: {
15
14
  wordBreak: 'break-word',
16
15
  maxHeight: 300,
@@ -20,7 +19,7 @@ exports.useStyles = (0, mui_1.makeStyles)()(theme => ({
20
19
  },
21
20
  }));
22
21
  function BasicValue({ value }) {
23
- const { classes } = (0, exports.useStyles)();
22
+ const { classes } = useStyles();
24
23
  const isLink = `${value}`.match(/^https?:\/\//);
25
24
  return (react_1.default.createElement("div", { className: classes.fieldValue }, react_1.default.isValidElement(value) ? (value) : isLink ? (react_1.default.createElement(material_1.Link, { href: `${value}` }, `${value}`)) : (react_1.default.createElement(ui_1.SanitizedHTML, { html: (0, is_object_1.default)(value) ? JSON.stringify(value) : String(value) }))));
26
25
  }
@@ -1,13 +1,4 @@
1
1
  import React from 'react';
2
- export declare const useStyles: (params: void, styleOverrides?: {
3
- props: any;
4
- ownerState?: Record<string, unknown> | undefined;
5
- } | undefined) => {
6
- classes: Record<"margin", string>;
7
- theme: import("@mui/material").Theme;
8
- css: import("tss-react").Css;
9
- cx: import("tss-react").Cx;
10
- };
11
2
  export default function DataGridDetails({ value, prefix, name, }: {
12
3
  name: string;
13
4
  prefix?: string[];
@@ -26,25 +26,30 @@ 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.useStyles = void 0;
30
29
  const react_1 = __importStar(require("react"));
31
30
  const mui_1 = require("tss-react/mui");
32
31
  const x_data_grid_1 = require("@mui/x-data-grid");
33
32
  const material_1 = require("@mui/material");
34
33
  // locals
35
34
  const util_1 = require("../../util");
36
- const ResizeBar_1 = __importStar(require("../../ui/ResizeBar"));
35
+ const ResizeBar_1 = __importDefault(require("../../ui/ResizeBar"));
37
36
  const FieldName_1 = __importDefault(require("./FieldName"));
38
37
  const UriLink_1 = __importDefault(require("./UriLink"));
39
- exports.useStyles = (0, mui_1.makeStyles)()(theme => ({
38
+ const useResizeBar_1 = require("../../ui/useResizeBar");
39
+ const useStyles = (0, mui_1.makeStyles)()(theme => ({
40
40
  margin: {
41
41
  margin: theme.spacing(1),
42
42
  width: '100%',
43
43
  },
44
+ cell: {
45
+ whiteSpace: 'nowrap',
46
+ overflow: 'hidden',
47
+ textOverflow: 'ellipsis',
48
+ },
44
49
  }));
45
50
  function DataGridDetails({ value, prefix, name, }) {
46
- const { classes } = (0, exports.useStyles)();
47
- const { ref, scrollLeft } = (0, ResizeBar_1.useResizeBar)();
51
+ const { classes } = useStyles();
52
+ const { ref, scrollLeft } = (0, useResizeBar_1.useResizeBar)();
48
53
  const [checked, setChecked] = (0, react_1.useState)(false);
49
54
  const keys = Object.keys(value[0]).sort();
50
55
  const unionKeys = new Set(keys);
@@ -88,7 +93,7 @@ function DataGridDetails({ value, prefix, name, }) {
88
93
  field: val,
89
94
  renderCell: params => {
90
95
  const value = params.value;
91
- return (0, util_1.isUriLocation)(value) ? (react_1.default.createElement(UriLink_1.default, { value: value })) : (react_1.default.createElement(react_1.default.Fragment, null, (0, util_1.getStr)(value)));
96
+ return (react_1.default.createElement("div", { className: classes.cell }, (0, util_1.isUriLocation)(value) ? (react_1.default.createElement(UriLink_1.default, { value: value })) : (react_1.default.createElement(react_1.default.Fragment, null, (0, util_1.getStr)(value)))));
92
97
  },
93
98
  width: widths[index],
94
99
  })) }))));
@@ -1,13 +1,4 @@
1
1
  import React from 'react';
2
- export declare const useStyles: (params: void, styleOverrides?: {
3
- props: any;
4
- ownerState?: Record<string, unknown> | undefined;
5
- } | undefined) => {
6
- classes: Record<"fieldDescription" | "fieldName", string>;
7
- theme: import("@mui/material").Theme;
8
- css: import("tss-react").Css;
9
- cx: import("tss-react").Cx;
10
- };
11
2
  export default function FieldName({ description, name, width, prefix, }: {
12
3
  description?: React.ReactNode;
13
4
  name: string;
@@ -3,11 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.useStyles = void 0;
7
6
  const react_1 = __importDefault(require("react"));
8
7
  const material_1 = require("@mui/material");
9
8
  const mui_1 = require("tss-react/mui");
10
- exports.useStyles = (0, mui_1.makeStyles)()(theme => ({
9
+ const useStyles = (0, mui_1.makeStyles)()(theme => ({
11
10
  fieldDescription: {
12
11
  '&:hover': {
13
12
  background: theme.palette.mode === 'dark' ? '#e65100' : 'yellow',
@@ -24,7 +23,7 @@ exports.useStyles = (0, mui_1.makeStyles)()(theme => ({
24
23
  },
25
24
  }));
26
25
  function FieldName({ description, name, width, prefix = [], }) {
27
- const { classes, cx } = (0, exports.useStyles)();
26
+ const { classes, cx } = useStyles();
28
27
  const val = [...prefix, name].join('.');
29
28
  return description ? (react_1.default.createElement(material_1.Tooltip, { title: description, placement: "left" },
30
29
  react_1.default.createElement("div", { className: cx(classes.fieldDescription, classes.fieldName) }, val))) : (react_1.default.createElement("div", { className: classes.fieldName, style: { width: width } }, val));
@@ -1,13 +1,4 @@
1
1
  import React from 'react';
2
- export declare const useStyles: (params: void, styleOverrides?: {
3
- props: any;
4
- ownerState?: Record<string, unknown> | undefined;
5
- } | undefined) => {
6
- classes: Record<"field", string>;
7
- theme: import("@mui/material").Theme;
8
- css: import("tss-react").Css;
9
- cx: import("tss-react").Cx;
10
- };
11
2
  export default function SimpleField({ name, value, description, prefix, width, }: {
12
3
  description?: React.ReactNode;
13
4
  name: string;
@@ -3,19 +3,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.useStyles = void 0;
7
6
  const react_1 = __importDefault(require("react"));
8
7
  const mui_1 = require("tss-react/mui");
9
8
  const FieldName_1 = __importDefault(require("./FieldName"));
10
9
  const BasicValue_1 = __importDefault(require("./BasicValue"));
11
- exports.useStyles = (0, mui_1.makeStyles)()({
10
+ const useStyles = (0, mui_1.makeStyles)()({
12
11
  field: {
13
12
  display: 'flex',
14
13
  flexWrap: 'wrap',
15
14
  },
16
15
  });
17
16
  function SimpleField({ name, value, description, prefix, width, }) {
18
- const { classes } = (0, exports.useStyles)();
17
+ const { classes } = useStyles();
19
18
  return value !== null && value !== undefined ? (react_1.default.createElement("div", { className: classes.field },
20
19
  react_1.default.createElement(FieldName_1.default, { prefix: prefix, description: description, name: name, width: width }),
21
20
  react_1.default.createElement(BasicValue_1.default, { value: value }))) : null;
@@ -1,13 +1,4 @@
1
1
  import React from 'react';
2
- export declare const useStyles: (params: void, styleOverrides?: {
3
- props: any;
4
- ownerState?: Record<string, unknown> | undefined;
5
- } | undefined) => {
6
- classes: Record<"field", string>;
7
- theme: import("@mui/material").Theme;
8
- css: import("tss-react").Css;
9
- cx: import("tss-react").Cx;
10
- };
11
2
  export default function UriField({ value, prefix, name, }: {
12
3
  value: {
13
4
  uri: string;
@@ -3,19 +3,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.useStyles = void 0;
7
6
  const react_1 = __importDefault(require("react"));
8
7
  const FieldName_1 = __importDefault(require("./FieldName"));
9
8
  const mui_1 = require("tss-react/mui");
10
9
  const BasicValue_1 = __importDefault(require("./BasicValue"));
11
- exports.useStyles = (0, mui_1.makeStyles)()({
10
+ const useStyles = (0, mui_1.makeStyles)()({
12
11
  field: {
13
12
  display: 'flex',
14
13
  flexWrap: 'wrap',
15
14
  },
16
15
  });
17
16
  function UriField({ value, prefix, name, }) {
18
- const { classes } = (0, exports.useStyles)();
17
+ const { classes } = useStyles();
19
18
  const { uri, baseUri = '' } = value;
20
19
  let href;
21
20
  try {
@@ -2,15 +2,6 @@ import React from 'react';
2
2
  import { IAnyStateTreeNode } from 'mobx-state-tree';
3
3
  import { BaseCardProps, BaseProps } from '../types';
4
4
  import { SimpleFeatureSerialized } from '../../util';
5
- export declare const useStyles: (params: void, styleOverrides?: {
6
- props: any;
7
- ownerState?: Record<string, unknown> | undefined;
8
- } | undefined) => {
9
- classes: Record<"expandIcon" | "expansionPanelDetails", string>;
10
- theme: import("@mui/material").Theme;
11
- css: import("tss-react").Css;
12
- cx: import("tss-react").Cx;
13
- };
14
5
  export declare function BaseCard({ children, title, defaultExpanded, }: BaseCardProps): React.JSX.Element;
15
6
  export declare const BaseCoreDetails: (props: BaseProps) => React.JSX.Element;
16
7
  export declare const BaseAttributes: (props: BaseProps) => React.JSX.Element;
@@ -28,6 +19,6 @@ export declare function FeatureDetails(props: {
28
19
  descriptions?: Record<string, React.ReactNode>;
29
20
  formatter?: (val: unknown, key: string) => React.ReactNode;
30
21
  }): React.JSX.Element;
31
- declare const _default: ({ model }: BaseInputProps) => React.JSX.Element | null;
32
- export default _default;
22
+ declare const BaseFeatureDetail: ({ model }: BaseInputProps) => React.JSX.Element | null;
23
+ export default BaseFeatureDetail;
33
24
  export { default as Attributes } from './Attributes';
@@ -26,7 +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.Attributes = exports.FeatureDetails = exports.BaseAttributes = exports.BaseCoreDetails = exports.BaseCard = exports.useStyles = void 0;
29
+ exports.Attributes = exports.FeatureDetails = exports.BaseAttributes = exports.BaseCoreDetails = exports.BaseCard = void 0;
30
30
  /* eslint-disable @typescript-eslint/no-explicit-any */
31
31
  const react_1 = __importStar(require("react"));
32
32
  const react_error_boundary_1 = require("react-error-boundary");
@@ -52,7 +52,7 @@ const coreDetails = [
52
52
  'description',
53
53
  'type',
54
54
  ];
55
- exports.useStyles = (0, mui_1.makeStyles)()(theme => {
55
+ const useStyles = (0, mui_1.makeStyles)()(theme => {
56
56
  var _a;
57
57
  return ({
58
58
  expansionPanelDetails: {
@@ -65,7 +65,7 @@ exports.useStyles = (0, mui_1.makeStyles)()(theme => {
65
65
  });
66
66
  });
67
67
  function BaseCard({ children, title, defaultExpanded = true, }) {
68
- const { classes } = (0, exports.useStyles)();
68
+ const { classes } = useStyles();
69
69
  const [expanded, setExpanded] = (0, react_1.useState)(defaultExpanded);
70
70
  return (react_1.default.createElement(material_1.Accordion, { expanded: expanded, onChange: () => setExpanded(s => !s), TransitionProps: { unmountOnExit: true, timeout: 150 } },
71
71
  react_1.default.createElement(material_1.AccordionSummary, { expandIcon: react_1.default.createElement(ExpandMore_1.default, { className: classes.expandIcon }) },
@@ -151,7 +151,7 @@ function FeatureDetails(props) {
151
151
  (subfeatures === null || subfeatures === void 0 ? void 0 : subfeatures.length) ? (react_1.default.createElement(BaseCard, { title: "Subfeatures", defaultExpanded: depth < 1 }, subfeatures.map((sub, idx) => (react_1.default.createElement(FeatureDetails, { key: JSON.stringify(sub), feature: { ...sub, uniqueId: `${uniqueId}_${idx}` }, model: model, depth: depth + 1 }))))) : null));
152
152
  }
153
153
  exports.FeatureDetails = FeatureDetails;
154
- exports.default = (0, mobx_react_1.observer)(function ({ model }) {
154
+ const BaseFeatureDetail = (0, mobx_react_1.observer)(function ({ model }) {
155
155
  const { error, featureData } = model;
156
156
  if (error) {
157
157
  return react_1.default.createElement(ui_1.ErrorMessage, { error: error });
@@ -166,5 +166,6 @@ exports.default = (0, mobx_react_1.observer)(function ({ model }) {
166
166
  const g = JSON.parse(JSON.stringify(featureData, (_, v) => (v === undefined ? null : v)));
167
167
  return (0, util_2.isEmpty)(g) ? null : react_1.default.createElement(FeatureDetails, { model: model, feature: g });
168
168
  });
169
+ exports.default = BaseFeatureDetail;
169
170
  var Attributes_2 = require("./Attributes");
170
171
  Object.defineProperty(exports, "Attributes", { enumerable: true, get: function () { return __importDefault(Attributes_2).default; } });
@@ -3,7 +3,5 @@ import { Feat } from '../util';
3
3
  export default function ProteinSequence({ cds, sequence, codonTable, }: {
4
4
  cds: Feat[];
5
5
  sequence: string;
6
- codonTable: {
7
- [key: string]: string;
8
- };
6
+ codonTable: Record<string, string>;
9
7
  }): React.JSX.Element;
@@ -10,7 +10,7 @@ const CDNASequence_1 = __importDefault(require("./CDNASequence"));
10
10
  const ProteinSequence_1 = __importDefault(require("./ProteinSequence"));
11
11
  const GenomicSequence_1 = __importDefault(require("./GenomicSequence"));
12
12
  const CDSSequence_1 = __importDefault(require("./CDSSequence"));
13
- const SeqPanel = react_1.default.forwardRef(function (props, ref) {
13
+ const SeqPanel = react_1.default.forwardRef(function SeqPanel2(props, ref) {
14
14
  const { feature, mode, intronBp = 10 } = props;
15
15
  let { sequence: { seq, upstream = '', downstream = '' }, } = props;
16
16
  const { subfeatures = [] } = feature;
@@ -29,9 +29,7 @@ function calculateUTRs(cds, exons) {
29
29
  if (!cds.length) {
30
30
  return [];
31
31
  }
32
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
33
32
  const firstCds = cds.at(0);
34
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
35
33
  const lastCds = cds.at(-1);
36
34
  const firstCdsIdx = exons.findIndex(exon => exon.end >= firstCds.start && exon.start <= firstCds.start);
37
35
  const lastCdsIdx = exons.findIndex(exon => exon.end >= lastCds.end && exon.start <= lastCds.end);
@@ -53,9 +51,7 @@ function calculateUTRs2(cds, parentFeat) {
53
51
  if (!cds.length) {
54
52
  return [];
55
53
  }
56
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
57
54
  const firstCds = cds.at(0);
58
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
59
55
  const lastCds = cds.at(-1);
60
56
  const fiveUTRs = [{ start: parentFeat.start, end: firstCds.start }].map(elt => ({ ...elt, type: 'five_prime_UTR' }));
61
57
  const threeUTRs = [{ start: lastCds.end, end: parentFeat.end }].map(elt => ({
@@ -30,17 +30,11 @@ type PluggableElementTypeGroup = 'renderer' | 'adapter' | 'display' | 'track' |
30
30
  /** internal class that holds the info for a certain element type */
31
31
  declare class TypeRecord<ElementClass extends PluggableElementBase> {
32
32
  typeName: string;
33
- baseClass: {
34
- new (...args: any[]): ElementClass;
35
- } | (Function & {
33
+ baseClass: (new (...args: unknown[]) => ElementClass) | (Function & {
36
34
  prototype: ElementClass;
37
35
  });
38
- registeredTypes: {
39
- [name: string]: ElementClass;
40
- };
41
- constructor(typeName: string, baseClass: {
42
- new (...args: any[]): ElementClass;
43
- } | (Function & {
36
+ registeredTypes: Record<string, ElementClass>;
37
+ constructor(typeName: string, baseClass: (new (...args: unknown[]) => ElementClass) | (Function & {
44
38
  prototype: ElementClass;
45
39
  }));
46
40
  add(name: string, t: ElementClass): void;
@@ -85,9 +79,7 @@ export default class PluginManager {
85
79
  rootModel?: AbstractRootModel;
86
80
  extensionPoints: Map<string, Function[]>;
87
81
  constructor(initialPlugins?: (Plugin | PluginLoadRecord)[]);
88
- pluginConfigurationSchemas(): {
89
- [key: string]: unknown;
90
- };
82
+ pluginConfigurationSchemas(): Record<string, unknown>;
91
83
  addPlugin(load: Plugin | PluginLoadRecord | RuntimePluginLoadRecord): this;
92
84
  getPlugin(name: string): Plugin | undefined;
93
85
  hasPlugin(name: string): boolean;
@@ -207,9 +199,9 @@ export default class PluginManager {
207
199
  '@jbrowse/core/util/mst-reflection': typeof import("./util/mst-reflection");
208
200
  '@jbrowse/core/util/rxjs': typeof import("./util/rxjs");
209
201
  '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail': {
210
- Attributes: (props: any) => import("react").JSX.Element;
211
- FeatureDetails: (props: any) => import("react").JSX.Element;
212
- BaseCard: (props: any) => import("react").JSX.Element;
202
+ Attributes: import("react").ForwardRefExoticComponent<Omit<any, "ref"> & import("react").RefAttributes<unknown>>;
203
+ FeatureDetails: import("react").ForwardRefExoticComponent<Omit<any, "ref"> & import("react").RefAttributes<unknown>>;
204
+ BaseCard: import("react").ForwardRefExoticComponent<Omit<any, "ref"> & import("react").RefAttributes<unknown>>;
213
205
  };
214
206
  '@jbrowse/core/data_adapters/BaseAdapter': typeof import("./data_adapters/BaseAdapter");
215
207
  mobx: typeof import("mobx");
@@ -229,8 +221,8 @@ export default class PluginManager {
229
221
  makeStyles: <Params = void, RuleNameSubsetReferencableInNestedSelectors extends string = never>(params?: {
230
222
  name?: string | Record<string, unknown> | undefined;
231
223
  uniqId?: string | undefined;
232
- } | undefined) => <RuleName extends string>(cssObjectByRuleNameOrGetCssObjectByRuleName: Record<RuleName, import("tss-react").CSSObject> | ((theme: import("@mui/material").Theme, params: Params, classes: Record<RuleNameSubsetReferencableInNestedSelectors, string>) => Record<RuleNameSubsetReferencableInNestedSelectors | RuleName, import("tss-react").CSSObject>)) => (params: Params, styleOverrides?: {
233
- props: any;
224
+ } | undefined) => <RuleName extends string>(cssObjectByRuleNameOrGetCssObjectByRuleName: Record<RuleName, import("tss-react").CSSObject> | ((theme: import("@mui/material").Theme, params: Params, classes: Record<RuleNameSubsetReferencableInNestedSelectors, string>) => Record<RuleNameSubsetReferencableInNestedSelectors | RuleName, import("tss-react").CSSObject>)) => (params: Params, muiStyleOverridesParams?: {
225
+ props: Record<string, unknown>;
234
226
  ownerState?: Record<string, unknown> | undefined;
235
227
  } | undefined) => {
236
228
  classes: Record<RuleName, string>;
@@ -124,9 +124,9 @@ declare const libs: {
124
124
  '@jbrowse/core/util/mst-reflection': typeof coreMstReflection;
125
125
  '@jbrowse/core/util/rxjs': typeof rxjs;
126
126
  '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail': {
127
- Attributes: (props: any) => React.JSX.Element;
128
- FeatureDetails: (props: any) => React.JSX.Element;
129
- BaseCard: (props: any) => React.JSX.Element;
127
+ Attributes: React.ForwardRefExoticComponent<Omit<any, "ref"> & React.RefAttributes<unknown>>;
128
+ FeatureDetails: React.ForwardRefExoticComponent<Omit<any, "ref"> & React.RefAttributes<unknown>>;
129
+ BaseCard: React.ForwardRefExoticComponent<Omit<any, "ref"> & React.RefAttributes<unknown>>;
130
130
  };
131
131
  '@jbrowse/core/data_adapters/BaseAdapter': typeof BaseAdapterExports;
132
132
  mobx: typeof mobx;
@@ -146,8 +146,8 @@ declare const libs: {
146
146
  makeStyles: <Params = void, RuleNameSubsetReferencableInNestedSelectors extends string = never>(params?: {
147
147
  name?: string | Record<string, unknown> | undefined;
148
148
  uniqId?: string | undefined;
149
- } | undefined) => <RuleName extends string>(cssObjectByRuleNameOrGetCssObjectByRuleName: Record<RuleName, import("tss-react").CSSObject> | ((theme: MUIStyles.Theme, params: Params, classes: Record<RuleNameSubsetReferencableInNestedSelectors, string>) => Record<RuleNameSubsetReferencableInNestedSelectors | RuleName, import("tss-react").CSSObject>)) => (params: Params, styleOverrides?: {
150
- props: any;
149
+ } | undefined) => <RuleName extends string>(cssObjectByRuleNameOrGetCssObjectByRuleName: Record<RuleName, import("tss-react").CSSObject> | ((theme: MUIStyles.Theme, params: Params, classes: Record<RuleNameSubsetReferencableInNestedSelectors, string>) => Record<RuleNameSubsetReferencableInNestedSelectors | RuleName, import("tss-react").CSSObject>)) => (params: Params, muiStyleOverridesParams?: {
150
+ props: Record<string, unknown>;
151
151
  ownerState?: Record<string, unknown> | undefined;
152
152
  } | undefined) => {
153
153
  classes: Record<RuleName, string>;
@@ -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
+ /* eslint-disable react-refresh/only-export-components */
29
30
  // this is all the stuff that the pluginManager re-exports for plugins to use
30
31
  const react_1 = __importStar(require("react"));
31
32
  const ReactJSXRuntime = __importStar(require("react/jsx-runtime"));
@@ -177,12 +178,13 @@ const Entries = {
177
178
  Tooltip: (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('@mui/material/Tooltip')))),
178
179
  Typography: (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('@mui/material/Typography')))),
179
180
  };
180
- const LazyMUICore = Object.fromEntries(Object.entries(Entries).map(([key, ReactComponent]) => [
181
- key,
181
+ const LazyMUICore = Object.fromEntries(Object.entries(Entries).map(([key, ReactComponent]) => {
182
182
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
183
- (props) => (react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement("div", null) },
184
- react_1.default.createElement(ReactComponent, { ...props }))),
185
- ]));
183
+ const Component = react_1.default.forwardRef((props, ref) => (react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement("div", null) },
184
+ react_1.default.createElement(ReactComponent, { ...props, ref: ref }))));
185
+ Component.displayName = key;
186
+ return [key, Component];
187
+ }));
186
188
  const MaterialPrefixMUI = Object.fromEntries(Object.entries(LazyMUICore).map(([key, value]) => [
187
189
  '@material-ui/core/' + key,
188
190
  value,
@@ -349,21 +351,25 @@ const DataGridEntries = {
349
351
  default: module.GridViewStreamIcon,
350
352
  }))),
351
353
  };
352
- const LazyDataGridComponents = Object.fromEntries(Object.entries(DataGridEntries).map(([key, ReactComponent]) => [
353
- key,
354
+ const LazyDataGridComponents = Object.fromEntries(Object.entries(DataGridEntries).map(([key, ReactComponent]) => {
354
355
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
355
- (props) => (react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement("div", null) },
356
- react_1.default.createElement(ReactComponent, { ...props }))),
357
- ]));
356
+ const Component = react_1.default.forwardRef((props, ref) => (react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement("div", null) },
357
+ react_1.default.createElement(ReactComponent, { ...props, ref: ref }))));
358
+ Component.displayName = key;
359
+ return [key, Component];
360
+ }));
358
361
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
359
- const LazyAttributes = (props) => (react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement("div", null) },
360
- react_1.default.createElement(Attributes, { ...props })));
362
+ const LazyAttributes = react_1.default.forwardRef((props, ref) => (react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement("div", null) },
363
+ react_1.default.createElement(Attributes, { ...props, ref: ref }))));
364
+ LazyAttributes.displayName = 'Attributes';
361
365
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
362
- const LazyFeatureDetails = (props) => (react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement("div", null) },
363
- react_1.default.createElement(FeatureDetails, { ...props })));
366
+ const LazyFeatureDetails = react_1.default.forwardRef((props, ref) => (react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement("div", null) },
367
+ react_1.default.createElement(FeatureDetails, { ...props, ref: ref }))));
368
+ LazyFeatureDetails.displayName = 'FeatureDetails';
364
369
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
365
- const LazyBaseCard = (props) => (react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement("div", null) },
366
- react_1.default.createElement(BaseCard, { ...props })));
370
+ const LazyBaseCard = react_1.default.forwardRef((props, ref) => (react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement("div", null) },
371
+ react_1.default.createElement(BaseCard, { ...props, ref: ref }))));
372
+ LazyBaseCard.displayName = 'BaseCard';
367
373
  const libs = {
368
374
  mobx,
369
375
  'mobx-state-tree': mst,
@@ -450,10 +456,10 @@ const libsList = Object.keys(libs);
450
456
  // systems and such) are included here, and vice versa
451
457
  const inLibsOnly = libsList.filter(mod => !list_1.default.includes(mod));
452
458
  if (inLibsOnly.length > 0) {
453
- throw new Error(`The following modules are in the re-exports list, but not the modules libs: ${inLibsOnly.join(', ')}`);
459
+ throw new Error(`The following modules are in the modules libs, but not the re-exports list: ${inLibsOnly.join(', ')}`);
454
460
  }
455
461
  const inReExportsOnly = list_1.default.filter(mod => !libsList.includes(mod));
456
462
  if (inReExportsOnly.length) {
457
- throw new Error(`The following modules are in the modules libs, but not the re-exports list: ${inReExportsOnly.join(', ')}`);
463
+ throw new Error(`The following modules are in the re-exports list, but not the modules libs: ${inReExportsOnly.join(', ')}`);
458
464
  }
459
465
  exports.default = libs;
@@ -6,7 +6,7 @@ import { AnyConfigurationModel } from '../configuration';
6
6
  export interface SearchScope {
7
7
  includeAggregateIndexes: boolean;
8
8
  assemblyName: string;
9
- tracks?: Array<string>;
9
+ tracks?: string[];
10
10
  }
11
11
  export default class TextSearchManager {
12
12
  pluginManager: PluginManager;
@@ -36,6 +36,8 @@ export default function assemblyFactory(assemblyConfigType: IAnyType, pm: Plugin
36
36
  refNameAliases: RefNameAliases | undefined;
37
37
  lowerCaseRefNameAliases: RefNameAliases | undefined;
38
38
  cytobands: Feature[] | undefined;
39
+ } & {
40
+ getConf(arg: string): any;
39
41
  } & {
40
42
  /**
41
43
  * #getter
@@ -108,6 +108,11 @@ function assemblyFactory(assemblyConfigType, pm) {
108
108
  refNameAliases: undefined,
109
109
  lowerCaseRefNameAliases: undefined,
110
110
  cytobands: undefined,
111
+ }))
112
+ .views(self => ({
113
+ getConf(arg) {
114
+ return self.configuration ? (0, configuration_1.getConf)(self, arg) : undefined;
115
+ },
111
116
  }))
112
117
  .views(self => ({
113
118
  /**
@@ -122,7 +127,7 @@ function assemblyFactory(assemblyConfigType, pm) {
122
127
  * #getter
123
128
  */
124
129
  get name() {
125
- return (0, configuration_1.getConf)(self, 'name');
130
+ return self.getConf('name') || '';
126
131
  },
127
132
  /**
128
133
  * #getter
@@ -136,13 +141,13 @@ function assemblyFactory(assemblyConfigType, pm) {
136
141
  * #getter
137
142
  */
138
143
  get aliases() {
139
- return (0, configuration_1.getConf)(self, 'aliases');
144
+ return self.getConf('aliases') || [];
140
145
  },
141
146
  /**
142
147
  * #getter
143
148
  */
144
149
  get displayName() {
145
- return (0, configuration_1.getConf)(self, 'displayName');
150
+ return self.getConf('displayName');
146
151
  },
147
152
  /**
148
153
  * #getter
@@ -194,7 +199,7 @@ function assemblyFactory(assemblyConfigType, pm) {
194
199
  * #getter
195
200
  */
196
201
  get refNameColors() {
197
- const colors = (0, configuration_1.getConf)(self, 'refNameColors');
202
+ const colors = self.getConf('refNameColors') || [];
198
203
  return colors.length === 0 ? refNameColors : colors;
199
204
  },
200
205
  }))