@jbrowse/core 3.2.0 → 3.4.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.
- package/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +2 -1
- package/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +4 -4
- package/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +2 -1
- package/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +10 -9
- package/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +3 -13
- package/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +2 -1
- package/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +2 -1
- package/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +2 -2
- package/BaseFeatureWidget/BaseFeatureDetail/index.js +2 -2
- package/BaseFeatureWidget/stateModelFactory.d.ts +15 -10
- package/BaseFeatureWidget/stateModelFactory.js +7 -12
- package/BaseFeatureWidget/types.d.ts +9 -1
- package/BaseFeatureWidget/util.d.ts +4 -1
- package/BaseFeatureWidget/util.js +11 -0
- package/PluginManager.d.ts +1 -143
- package/PluginManager.js +3 -2
- package/ReExports/BaseFeatureDetails.d.ts +1 -0
- package/ReExports/BaseFeatureDetails.js +45 -0
- package/ReExports/MuiDataGridReExports.d.ts +2 -0
- package/ReExports/MuiDataGridReExports.js +167 -0
- package/ReExports/MuiReExports.d.ts +133 -0
- package/ReExports/MuiReExports.js +150 -0
- package/ReExports/lazify.d.ts +2 -0
- package/ReExports/lazify.js +14 -0
- package/ReExports/list.js +1 -0
- package/ReExports/modules.d.ts +1 -173
- package/ReExports/modules.js +36 -329
- package/TextSearch/TextSearchManager.d.ts +17 -2
- package/TextSearch/TextSearchManager.js +23 -3
- package/assemblyManager/assemblyManager.js +1 -1
- package/data_adapters/BaseAdapter/BaseAdapter.d.ts +2 -2
- package/data_adapters/BaseAdapter/BaseAdapter.js +1 -0
- package/data_adapters/CytobandAdapter/CytobandAdapter.d.ts +0 -1
- package/data_adapters/CytobandAdapter/CytobandAdapter.js +1 -1
- package/package.json +10 -9
- package/pluggableElementTypes/models/baseTrackConfig.js +25 -8
- package/pluggableElementTypes/renderers/CircularChordRendererType.js +8 -9
- package/pluggableElementTypes/renderers/FeatureRendererType.js +8 -2
- package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.d.ts +2 -4
- package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.js +2 -30
- package/pluggableElementTypes/renderers/ServerSideRenderedContent.d.ts +1 -1
- package/pluggableElementTypes/renderers/ServerSideRenderedContent.js +2 -30
- package/pluggableElementTypes/renderers/ServerSideRendererType.js +6 -7
- package/tsconfig.build.tsbuildinfo +1 -1
- package/ui/DataGridFlexContainer.d.ts +3 -0
- package/ui/DataGridFlexContainer.js +15 -0
- package/ui/index.d.ts +1 -0
- package/ui/index.js +3 -1
- package/ui/theme.d.ts +2 -2
- package/ui/theme.js +18 -10
- package/util/cluster.d.ts +17 -0
- package/util/cluster.js +96 -0
- package/util/index.d.ts +3 -1
- package/util/index.js +13 -4
- package/util/offscreenCanvasUtils.d.ts +13 -12
- package/util/offscreenCanvasUtils.js +9 -6
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
export default function ArrayValue({ name, value, description, prefix, }: {
|
|
1
|
+
export default function ArrayValue({ name, value, description, formatter, prefix, }: {
|
|
2
2
|
description?: React.ReactNode;
|
|
3
3
|
name: string;
|
|
4
4
|
value: unknown[];
|
|
5
|
+
formatter?: (value: unknown, key: string) => React.ReactNode;
|
|
5
6
|
prefix?: string[];
|
|
6
7
|
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -24,15 +24,15 @@ const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
|
24
24
|
overflow: 'auto',
|
|
25
25
|
},
|
|
26
26
|
}));
|
|
27
|
-
function ArrayValue({ name, value, description, prefix = [], }) {
|
|
27
|
+
function ArrayValue({ name, value, description, formatter, prefix = [], }) {
|
|
28
28
|
const { classes } = useStyles();
|
|
29
29
|
if (value.length === 1) {
|
|
30
|
-
return (0, util_1.isObject)(value[0]) ? ((0, jsx_runtime_1.jsx)(Attributes_1.default, { attributes: value[0], prefix: [...prefix, name] })) : ((0, jsx_runtime_1.jsxs)("div", { className: classes.field, children: [(0, jsx_runtime_1.jsx)(FieldName_1.default, { prefix: prefix, description: description, name: name }), (0, jsx_runtime_1.jsx)(BasicValue_1.default, { value: value[0] })] }));
|
|
30
|
+
return (0, util_1.isObject)(value[0]) ? ((0, jsx_runtime_1.jsx)(Attributes_1.default, { formatter: formatter, attributes: value[0], prefix: [...prefix, name] })) : ((0, jsx_runtime_1.jsxs)("div", { className: classes.field, children: [(0, jsx_runtime_1.jsx)(FieldName_1.default, { prefix: prefix, description: description, name: name }), (0, jsx_runtime_1.jsx)(BasicValue_1.default, { value: formatter ? formatter(value[0], name) : value[0] })] }));
|
|
31
31
|
}
|
|
32
32
|
else if (value.every(val => (0, util_1.isObject)(val))) {
|
|
33
|
-
return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: value.map((val, i) => ((0, jsx_runtime_1.jsx)(Attributes_1.default, { attributes: val, prefix: [...prefix, `${name}-${i}`] }, `${JSON.stringify(val)}-${i}`))) }));
|
|
33
|
+
return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: value.map((val, i) => ((0, jsx_runtime_1.jsx)(Attributes_1.default, { formatter: formatter, attributes: val, prefix: [...prefix, `${name}-${i}`] }, `${JSON.stringify(val)}-${i}`))) }));
|
|
34
34
|
}
|
|
35
35
|
else {
|
|
36
|
-
return ((0, jsx_runtime_1.jsxs)("div", { className: classes.field, children: [(0, jsx_runtime_1.jsx)(FieldName_1.default, { prefix: prefix, description: description, name: name }), value.map((val, i) => ((0, jsx_runtime_1.jsx)("div", { className: classes.fieldSubvalue, children: (0, jsx_runtime_1.jsx)(BasicValue_1.default, { value: val }) }, `${JSON.stringify(val)}-${i}`)))] }));
|
|
36
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: classes.field, children: [(0, jsx_runtime_1.jsx)(FieldName_1.default, { prefix: prefix, description: description, name: name }), value.map((val, i) => ((0, jsx_runtime_1.jsx)("div", { className: classes.fieldSubvalue, children: (0, jsx_runtime_1.jsx)(BasicValue_1.default, { value: formatter ? formatter(val, name) : val }) }, `${JSON.stringify(val)}-${i}`)))] }));
|
|
37
37
|
}
|
|
38
38
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Descriptors } from '../types';
|
|
1
2
|
export default function Attributes(props: {
|
|
2
3
|
attributes: {
|
|
3
4
|
[key: string]: unknown;
|
|
@@ -6,7 +7,7 @@ export default function Attributes(props: {
|
|
|
6
7
|
omit?: string[];
|
|
7
8
|
omitSingleLevel?: string[];
|
|
8
9
|
formatter?: (val: unknown, key: string) => React.ReactNode;
|
|
9
|
-
descriptions?:
|
|
10
|
+
descriptions?: Descriptors;
|
|
10
11
|
prefix?: string[];
|
|
11
12
|
hideUris?: boolean;
|
|
12
13
|
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -24,24 +24,25 @@ const globalOmit = [
|
|
|
24
24
|
'thickEnd',
|
|
25
25
|
];
|
|
26
26
|
function Attributes(props) {
|
|
27
|
-
const { attributes, omit = [], omitSingleLevel = [], descriptions, formatter
|
|
27
|
+
const { attributes, omit = [], omitSingleLevel = [], descriptions, formatter, hideUris, prefix = [], } = props;
|
|
28
28
|
const omits = new Set([...omit, ...globalOmit, ...omitSingleLevel]);
|
|
29
29
|
const { __jbrowsefmt, ...rest } = attributes;
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
const filteredFormattedAttributes = Object.entries({
|
|
31
|
+
...rest,
|
|
32
|
+
...__jbrowsefmt,
|
|
33
|
+
}).filter(([k, v]) => v != null && !omits.has(k));
|
|
34
|
+
const maxLabelWidth = (0, util_1.generateMaxWidth)(filteredFormattedAttributes, prefix);
|
|
35
|
+
return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: filteredFormattedAttributes.map(([key, value]) => {
|
|
35
36
|
const description = (0, util_1.accessNested)([...prefix, key], descriptions);
|
|
36
37
|
if (Array.isArray(value)) {
|
|
37
|
-
return value.length > 1 && value.every(val => (0, util_2.isObject)(val)) ? ((0, jsx_runtime_1.jsx)(DataGridDetails_1.default, { name: key, prefix: prefix, value: value }, key)) : ((0, jsx_runtime_1.jsx)(ArrayValue_1.default, { name: key, value: value, description: description, prefix: prefix }, key));
|
|
38
|
+
return value.length > 1 && value.every(val => (0, util_2.isObject)(val)) ? ((0, jsx_runtime_1.jsx)(DataGridDetails_1.default, { name: key, prefix: prefix, value: value }, key)) : ((0, jsx_runtime_1.jsx)(ArrayValue_1.default, { name: key, value: value, formatter: formatter, description: description, prefix: prefix }, key));
|
|
38
39
|
}
|
|
39
40
|
else if ((0, util_2.isObject)(value)) {
|
|
40
41
|
const { omitSingleLevel, ...rest } = props;
|
|
41
|
-
return (0, util_2.isUriLocation)(value) ? (hideUris ? null : ((0, jsx_runtime_1.jsx)(UriField_1.default, { name: key, prefix: prefix, value: value }, key))) : ((0, jsx_runtime_1.jsx)(Attributes, { ...rest, attributes: value, descriptions: descriptions, prefix: [...prefix, key] }, key));
|
|
42
|
+
return (0, util_2.isUriLocation)(value) ? (hideUris ? null : ((0, jsx_runtime_1.jsx)(UriField_1.default, { name: key, prefix: prefix, value: value }, key))) : ((0, jsx_runtime_1.jsx)(Attributes, { ...rest, formatter: formatter, attributes: value, descriptions: descriptions, prefix: [...prefix, key] }, key));
|
|
42
43
|
}
|
|
43
44
|
else {
|
|
44
|
-
return ((0, jsx_runtime_1.jsx)(SimpleField_1.default, { name: key,
|
|
45
|
+
return ((0, jsx_runtime_1.jsx)(SimpleField_1.default, { name: key, formatter: formatter, value: value, description: description, prefix: prefix, width: Math.min(maxLabelWidth, MAX_FIELD_NAME_WIDTH) }, key));
|
|
45
46
|
}
|
|
46
47
|
}) }));
|
|
47
48
|
}
|
|
@@ -11,6 +11,7 @@ const x_data_grid_1 = require("@mui/x-data-grid");
|
|
|
11
11
|
const mui_1 = require("tss-react/mui");
|
|
12
12
|
const FieldName_1 = __importDefault(require("./FieldName"));
|
|
13
13
|
const ui_1 = require("../../ui");
|
|
14
|
+
const DataGridFlexContainer_1 = __importDefault(require("../../ui/DataGridFlexContainer"));
|
|
14
15
|
const util_1 = require("../../util");
|
|
15
16
|
const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
16
17
|
margin: {
|
|
@@ -52,21 +53,10 @@ function DataGridDetails({ value, prefix, name, }) {
|
|
|
52
53
|
if (unionKeys.size < keys.length + 5) {
|
|
53
54
|
return ((0, jsx_runtime_1.jsxs)("div", { className: classes.margin, children: [(0, jsx_runtime_1.jsx)(FieldName_1.default, { prefix: prefix, name: name }), (0, jsx_runtime_1.jsx)(material_1.FormControlLabel, { control: (0, jsx_runtime_1.jsx)(material_1.Checkbox, { checked: checked, onChange: event => {
|
|
54
55
|
setChecked(event.target.checked);
|
|
55
|
-
} }), label: (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "body2", children: "Show options" }) }), (0, jsx_runtime_1.jsx)(
|
|
56
|
-
toolbar: checked ? x_data_grid_1.GridToolbar : null,
|
|
57
|
-
}, slotProps: {
|
|
58
|
-
toolbar: {
|
|
59
|
-
printOptions: {
|
|
60
|
-
disableToolbarButton: true,
|
|
61
|
-
},
|
|
62
|
-
},
|
|
63
|
-
}, columns: colNames.map((val, index) => ({
|
|
56
|
+
} }), label: (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "body2", children: "Show options" }) }), (0, jsx_runtime_1.jsx)(DataGridFlexContainer_1.default, { children: (0, jsx_runtime_1.jsx)(x_data_grid_1.DataGrid, { rows: rows, rowHeight: 20, columnHeaderHeight: 35, hideFooter: rows.length < 25, showToolbar: checked, columns: colNames.map((val, index) => ({
|
|
64
57
|
field: val,
|
|
65
|
-
renderCell: params => {
|
|
66
|
-
const value = params.value;
|
|
67
|
-
return ((0, jsx_runtime_1.jsx)("div", { className: classes.cell, children: (0, jsx_runtime_1.jsx)(ui_1.SanitizedHTML, { html: (0, util_1.getStr)(value || '') }) }));
|
|
68
|
-
},
|
|
69
58
|
width: widths[index],
|
|
59
|
+
renderCell: ({ value }) => ((0, jsx_runtime_1.jsx)("div", { className: classes.cell, children: (0, jsx_runtime_1.jsx)(ui_1.SanitizedHTML, { html: (0, util_1.getStr)(value || '') }) })),
|
|
70
60
|
})) }) })] }));
|
|
71
61
|
}
|
|
72
62
|
return null;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { SimpleFeatureSerialized } from '../../util';
|
|
2
|
+
import type { Descriptors } from '../types';
|
|
2
3
|
import type { IAnyStateTreeNode } from 'mobx-state-tree';
|
|
3
4
|
export default function FeatureDetails(props: {
|
|
4
5
|
model: IAnyStateTreeNode;
|
|
5
6
|
feature: SimpleFeatureSerialized;
|
|
6
7
|
depth?: number;
|
|
7
8
|
omit?: string[];
|
|
8
|
-
descriptions?:
|
|
9
|
+
descriptions?: Descriptors;
|
|
9
10
|
formatter?: (val: unknown, key: string) => React.ReactNode;
|
|
10
11
|
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
export default function SimpleField({ name, value, description, prefix, width, }: {
|
|
1
|
+
export default function SimpleField({ name, value, description, prefix, width, formatter, }: {
|
|
2
2
|
description?: React.ReactNode;
|
|
3
3
|
name: string;
|
|
4
4
|
value: unknown;
|
|
5
5
|
prefix?: string[];
|
|
6
6
|
width?: number;
|
|
7
|
+
formatter?: (value: unknown, key: string) => React.ReactNode;
|
|
7
8
|
}): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -14,7 +14,7 @@ const useStyles = (0, mui_1.makeStyles)()({
|
|
|
14
14
|
flexWrap: 'wrap',
|
|
15
15
|
},
|
|
16
16
|
});
|
|
17
|
-
function SimpleField({ name, value, description, prefix, width, }) {
|
|
17
|
+
function SimpleField({ name, value, description, prefix, width, formatter, }) {
|
|
18
18
|
const { classes } = useStyles();
|
|
19
|
-
return value
|
|
19
|
+
return value != null ? ((0, jsx_runtime_1.jsxs)("div", { className: classes.field, children: [(0, jsx_runtime_1.jsx)(FieldName_1.default, { prefix: prefix, description: description, name: name, width: width }), (0, jsx_runtime_1.jsx)(BasicValue_1.default, { value: formatter ? formatter(value, name) : value })] })) : null;
|
|
20
20
|
}
|
|
@@ -11,7 +11,7 @@ const util_2 = require("../util");
|
|
|
11
11
|
const FeatureDetails_1 = __importDefault(require("./FeatureDetails"));
|
|
12
12
|
const ui_1 = require("../../ui");
|
|
13
13
|
const BaseFeatureDetail = (0, mobx_react_1.observer)(function ({ model }) {
|
|
14
|
-
const { error, featureData } = model;
|
|
14
|
+
const { error, descriptions, featureData } = model;
|
|
15
15
|
if (error) {
|
|
16
16
|
return (0, jsx_runtime_1.jsx)(ui_1.ErrorMessage, { error: error });
|
|
17
17
|
}
|
|
@@ -20,7 +20,7 @@ const BaseFeatureDetail = (0, mobx_react_1.observer)(function ({ model }) {
|
|
|
20
20
|
}
|
|
21
21
|
else {
|
|
22
22
|
const featureData2 = (0, util_2.replaceUndefinedWithNull)(featureData);
|
|
23
|
-
return (0, util_1.isEmpty)(featureData2) ? null : ((0, jsx_runtime_1.jsx)(FeatureDetails_1.default, { model: model, feature: featureData2 }));
|
|
23
|
+
return (0, util_1.isEmpty)(featureData2) ? null : ((0, jsx_runtime_1.jsx)(FeatureDetails_1.default, { model: model, feature: featureData2, descriptions: descriptions }));
|
|
24
24
|
}
|
|
25
25
|
});
|
|
26
26
|
exports.default = BaseFeatureDetail;
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type PluginManager from '../PluginManager';
|
|
2
|
+
import type { SimpleFeatureSerialized } from '../util';
|
|
3
|
+
import type { MaybeSerializedFeat } from './types';
|
|
2
4
|
import type { Instance } from 'mobx-state-tree';
|
|
3
5
|
export declare function stateModelFactory(pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
|
|
4
6
|
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
5
7
|
type: import("mobx-state-tree").ISimpleType<"BaseFeatureWidget">;
|
|
6
|
-
featureData: import("mobx-state-tree").IType<
|
|
8
|
+
featureData: import("mobx-state-tree").IType<MaybeSerializedFeat, MaybeSerializedFeat, MaybeSerializedFeat>;
|
|
7
9
|
formattedFields: import("mobx-state-tree").IType<any, any, any>;
|
|
8
|
-
unformattedFeatureData: import("mobx-state-tree").IType<
|
|
10
|
+
unformattedFeatureData: import("mobx-state-tree").IType<MaybeSerializedFeat, MaybeSerializedFeat, MaybeSerializedFeat>;
|
|
9
11
|
view: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IAnyType>>;
|
|
10
12
|
track: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IAnyType>>;
|
|
11
13
|
trackId: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
@@ -17,10 +19,10 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
17
19
|
upDownBp: number;
|
|
18
20
|
upperCaseCDS: boolean;
|
|
19
21
|
charactersPerRow: number;
|
|
20
|
-
feature:
|
|
22
|
+
feature: SimpleFeatureSerialized | undefined;
|
|
21
23
|
mode: string;
|
|
22
24
|
} & {
|
|
23
|
-
setFeature(f:
|
|
25
|
+
setFeature(f: SimpleFeatureSerialized): void;
|
|
24
26
|
setUpDownBp(f: number): void;
|
|
25
27
|
setIntronBp(f: number): void;
|
|
26
28
|
setUpperCaseCDS(f: boolean): void;
|
|
@@ -35,12 +37,13 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
35
37
|
} & {
|
|
36
38
|
afterAttach(): void;
|
|
37
39
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>, [undefined]>;
|
|
40
|
+
descriptions: import("mobx-state-tree").IType<Record<string, unknown> | undefined, Record<string, unknown> | undefined, Record<string, unknown> | undefined>;
|
|
38
41
|
}, {
|
|
39
42
|
error: unknown;
|
|
40
43
|
} & {
|
|
41
|
-
setFeatureData(featureData:
|
|
44
|
+
setFeatureData(featureData: SimpleFeatureSerialized): void;
|
|
42
45
|
clearFeatureData(): void;
|
|
43
|
-
setFormattedData(feat:
|
|
46
|
+
setFormattedData(feat: SimpleFeatureSerialized): void;
|
|
44
47
|
setExtra(type?: string, trackId?: string, maxDepth?: number): void;
|
|
45
48
|
setError(e: unknown): void;
|
|
46
49
|
} & {
|
|
@@ -48,9 +51,9 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
48
51
|
}, import("mobx-state-tree").ModelCreationType<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
|
|
49
52
|
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
50
53
|
type: import("mobx-state-tree").ISimpleType<"BaseFeatureWidget">;
|
|
51
|
-
featureData: import("mobx-state-tree").IType<
|
|
54
|
+
featureData: import("mobx-state-tree").IType<MaybeSerializedFeat, MaybeSerializedFeat, MaybeSerializedFeat>;
|
|
52
55
|
formattedFields: import("mobx-state-tree").IType<any, any, any>;
|
|
53
|
-
unformattedFeatureData: import("mobx-state-tree").IType<
|
|
56
|
+
unformattedFeatureData: import("mobx-state-tree").IType<MaybeSerializedFeat, MaybeSerializedFeat, MaybeSerializedFeat>;
|
|
54
57
|
view: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IAnyType>>;
|
|
55
58
|
track: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IAnyType>>;
|
|
56
59
|
trackId: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
@@ -62,10 +65,10 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
62
65
|
upDownBp: number;
|
|
63
66
|
upperCaseCDS: boolean;
|
|
64
67
|
charactersPerRow: number;
|
|
65
|
-
feature:
|
|
68
|
+
feature: SimpleFeatureSerialized | undefined;
|
|
66
69
|
mode: string;
|
|
67
70
|
} & {
|
|
68
|
-
setFeature(f:
|
|
71
|
+
setFeature(f: SimpleFeatureSerialized): void;
|
|
69
72
|
setUpDownBp(f: number): void;
|
|
70
73
|
setIntronBp(f: number): void;
|
|
71
74
|
setUpperCaseCDS(f: boolean): void;
|
|
@@ -80,6 +83,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
80
83
|
} & {
|
|
81
84
|
afterAttach(): void;
|
|
82
85
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>, [undefined]>;
|
|
86
|
+
descriptions: import("mobx-state-tree").IType<Record<string, unknown> | undefined, Record<string, unknown> | undefined, Record<string, unknown> | undefined>;
|
|
83
87
|
}>>, {
|
|
84
88
|
type: "BaseFeatureWidget";
|
|
85
89
|
id: string;
|
|
@@ -90,6 +94,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
90
94
|
maxDepth: number | undefined;
|
|
91
95
|
sequenceFeatureDetails: import("mobx-state-tree").ModelSnapshotType<{}>;
|
|
92
96
|
formattedFields: any;
|
|
97
|
+
descriptions: Record<string, unknown> | undefined;
|
|
93
98
|
finalizedFeatureData: any;
|
|
94
99
|
}>;
|
|
95
100
|
export type BaseFeatureWidgetStateModel = ReturnType<typeof stateModelFactory>;
|
|
@@ -8,16 +8,6 @@ const util_1 = require("../util");
|
|
|
8
8
|
const model_1 = require("./SequenceFeatureDetails/model");
|
|
9
9
|
const util_2 = require("./util");
|
|
10
10
|
const mst_1 = require("../util/types/mst");
|
|
11
|
-
function formatSubfeatures(obj, depth, parse, currentDepth = 0, returnObj = {}) {
|
|
12
|
-
var _a;
|
|
13
|
-
if (depth <= currentDepth) {
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
(_a = obj.subfeatures) === null || _a === void 0 ? void 0 : _a.map(sub => {
|
|
17
|
-
formatSubfeatures(sub, depth, parse, currentDepth + 1, returnObj);
|
|
18
|
-
parse(sub);
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
11
|
function stateModelFactory(pluginManager) {
|
|
22
12
|
return mobx_state_tree_1.types
|
|
23
13
|
.model('BaseFeatureWidget', {
|
|
@@ -32,6 +22,7 @@ function stateModelFactory(pluginManager) {
|
|
|
32
22
|
trackType: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
|
|
33
23
|
maxDepth: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.number),
|
|
34
24
|
sequenceFeatureDetails: mobx_state_tree_1.types.optional((0, model_1.SequenceFeatureDetailsF)(), {}),
|
|
25
|
+
descriptions: mobx_state_tree_1.types.frozen(),
|
|
35
26
|
})
|
|
36
27
|
.volatile(() => ({
|
|
37
28
|
error: undefined,
|
|
@@ -72,7 +63,7 @@ function stateModelFactory(pluginManager) {
|
|
|
72
63
|
});
|
|
73
64
|
if (track) {
|
|
74
65
|
feature.__jbrowsefmt = combine('feature', feature);
|
|
75
|
-
formatSubfeatures(feature, (0, configuration_1.getConf)(track, ['formatDetails', 'depth']), sub => {
|
|
66
|
+
(0, util_2.formatSubfeatures)(feature, (0, configuration_1.getConf)(track, ['formatDetails', 'depth']), sub => {
|
|
76
67
|
sub.__jbrowsefmt = combine('subfeatures', sub);
|
|
77
68
|
});
|
|
78
69
|
}
|
|
@@ -96,8 +87,12 @@ function stateModelFactory(pluginManager) {
|
|
|
96
87
|
})
|
|
97
88
|
.postProcessSnapshot(snap => {
|
|
98
89
|
const { unformattedFeatureData, featureData, ...rest } = snap;
|
|
90
|
+
const s2 = JSON.stringify(featureData, (_, v) => v === undefined ? null : v);
|
|
91
|
+
const featureTooLargeToBeSerialized = !s2 || s2.length > 2000000;
|
|
99
92
|
return {
|
|
100
|
-
finalizedFeatureData:
|
|
93
|
+
finalizedFeatureData: featureTooLargeToBeSerialized
|
|
94
|
+
? undefined
|
|
95
|
+
: JSON.parse(s2),
|
|
101
96
|
...rest,
|
|
102
97
|
};
|
|
103
98
|
});
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
2
|
import type { BaseFeatureWidgetModel } from './stateModelFactory';
|
|
3
3
|
import type { SimpleFeatureSerialized } from '../util/simpleFeature';
|
|
4
|
+
export interface Descriptors {
|
|
5
|
+
[key: string]: React.ReactNode | Descriptors;
|
|
6
|
+
}
|
|
4
7
|
export interface BaseProps extends BaseCardProps {
|
|
5
8
|
feature: SimpleFeatureSerialized;
|
|
6
9
|
formatter?: (val: unknown, key: string) => React.ReactNode;
|
|
7
|
-
descriptions?:
|
|
10
|
+
descriptions?: Descriptors;
|
|
8
11
|
model?: BaseFeatureWidgetModel;
|
|
9
12
|
}
|
|
10
13
|
export interface BaseCardProps {
|
|
@@ -12,3 +15,8 @@ export interface BaseCardProps {
|
|
|
12
15
|
defaultExpanded?: boolean;
|
|
13
16
|
children?: React.ReactNode;
|
|
14
17
|
}
|
|
18
|
+
export interface SerializedFeat {
|
|
19
|
+
[key: string]: unknown;
|
|
20
|
+
subfeatures?: Record<string, unknown>[];
|
|
21
|
+
}
|
|
22
|
+
export type MaybeSerializedFeat = SimpleFeatureSerialized | undefined;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { SimpleFeatureSerialized } from '../util';
|
|
2
|
+
import type { SerializedFeat } from './types';
|
|
1
3
|
export interface Feat {
|
|
2
4
|
start: number;
|
|
3
5
|
end: number;
|
|
@@ -42,4 +44,5 @@ export declare function calculateUTRs2(cds: Feat[], parentFeat: Feat): {
|
|
|
42
44
|
end: number;
|
|
43
45
|
}[];
|
|
44
46
|
export declare function ellipses(slug: string): string;
|
|
45
|
-
export declare function replaceUndefinedWithNull(obj:
|
|
47
|
+
export declare function replaceUndefinedWithNull(obj: SimpleFeatureSerialized): any;
|
|
48
|
+
export declare function formatSubfeatures(obj: SerializedFeat, depth: number, parse: (obj: Record<string, unknown>) => void, currentDepth?: number, returnObj?: Record<string, unknown>): void;
|
|
@@ -7,6 +7,7 @@ exports.calculateUTRs = calculateUTRs;
|
|
|
7
7
|
exports.calculateUTRs2 = calculateUTRs2;
|
|
8
8
|
exports.ellipses = ellipses;
|
|
9
9
|
exports.replaceUndefinedWithNull = replaceUndefinedWithNull;
|
|
10
|
+
exports.formatSubfeatures = formatSubfeatures;
|
|
10
11
|
function stitch(subfeats, sequence) {
|
|
11
12
|
return subfeats.map(sub => sequence.slice(sub.start, sub.end)).join('');
|
|
12
13
|
}
|
|
@@ -64,3 +65,13 @@ function ellipses(slug) {
|
|
|
64
65
|
function replaceUndefinedWithNull(obj) {
|
|
65
66
|
return JSON.parse(JSON.stringify(obj, (_, v) => (v === undefined ? null : v)));
|
|
66
67
|
}
|
|
68
|
+
function formatSubfeatures(obj, depth, parse, currentDepth = 0, returnObj = {}) {
|
|
69
|
+
var _a;
|
|
70
|
+
if (depth <= currentDepth) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
(_a = obj.subfeatures) === null || _a === void 0 ? void 0 : _a.map(sub => {
|
|
74
|
+
formatSubfeatures(sub, depth, parse, currentDepth + 1, returnObj);
|
|
75
|
+
parse(sub);
|
|
76
|
+
});
|
|
77
|
+
}
|
package/PluginManager.d.ts
CHANGED
|
@@ -108,149 +108,7 @@ export default class PluginManager {
|
|
|
108
108
|
pluggableMstType(groupName: PluggableElementTypeGroup, fieldName: PluggableElementMember, fallback?: IAnyType): IAnyType;
|
|
109
109
|
pluggableConfigSchemaType(typeGroup: PluggableElementTypeGroup, fieldName?: PluggableElementMember): IAnyModelType;
|
|
110
110
|
jbrequireCache: Map<any, any>;
|
|
111
|
-
lib:
|
|
112
|
-
'@material-ui/lab/ToggleButton': import("react").LazyExoticComponent<import("@mui/material").ExtendButtonBase<import("@mui/material").ToggleButtonTypeMap<{}, "button">>>;
|
|
113
|
-
'@material-ui/lab/ToggleButtonGroup': import("react").LazyExoticComponent<typeof import("@mui/material").ToggleButtonGroup>;
|
|
114
|
-
'@material-ui/lab/Autocomplete': import("react").LazyExoticComponent<typeof import("@mui/material").Autocomplete>;
|
|
115
|
-
'@material-ui/lab/Alert': import("react").LazyExoticComponent<typeof import("@mui/material").Alert>;
|
|
116
|
-
'@material-ui/lab': {
|
|
117
|
-
Alert: import("react").LazyExoticComponent<typeof import("@mui/material").Alert>;
|
|
118
|
-
Autocomplete: import("react").LazyExoticComponent<typeof import("@mui/material").Autocomplete>;
|
|
119
|
-
ToggleButton: import("react").LazyExoticComponent<import("@mui/material").ExtendButtonBase<import("@mui/material").ToggleButtonTypeMap<{}, "button">>>;
|
|
120
|
-
ToggleButtonGroup: import("react").LazyExoticComponent<typeof import("@mui/material").ToggleButtonGroup>;
|
|
121
|
-
};
|
|
122
|
-
'@jbrowse/core/Plugin': typeof Plugin;
|
|
123
|
-
'@jbrowse/core/pluggableElementTypes': typeof import("./pluggableElementTypes");
|
|
124
|
-
'@jbrowse/core/pluggableElementTypes/ViewType': typeof ViewType;
|
|
125
|
-
'@jbrowse/core/pluggableElementTypes/AdapterType': typeof AdapterType;
|
|
126
|
-
'@jbrowse/core/pluggableElementTypes/DisplayType': typeof DisplayType;
|
|
127
|
-
'@jbrowse/core/pluggableElementTypes/TrackType': typeof TrackType;
|
|
128
|
-
'@jbrowse/core/pluggableElementTypes/WidgetType': typeof WidgetType;
|
|
129
|
-
'@jbrowse/core/pluggableElementTypes/models': typeof import("./pluggableElementTypes/models");
|
|
130
|
-
'@jbrowse/core/pluggableElementTypes/renderers/ServerSideRendererType': typeof import("./pluggableElementTypes/renderers/ServerSideRendererType");
|
|
131
|
-
'@jbrowse/core/pluggableElementTypes/renderers/CircularChordRendererType': typeof import("./pluggableElementTypes").CircularChordRendererType;
|
|
132
|
-
'@jbrowse/core/pluggableElementTypes/renderers/BoxRendererType': typeof import("./pluggableElementTypes/renderers/BoxRendererType");
|
|
133
|
-
'@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType': typeof import("./pluggableElementTypes/renderers/FeatureRendererType");
|
|
134
|
-
'@jbrowse/core/pluggableElementTypes/renderers/RendererType': typeof import("./pluggableElementTypes/renderers/RendererType");
|
|
135
|
-
'@jbrowse/core/configuration': typeof import("./configuration");
|
|
136
|
-
'@jbrowse/core/util/types/mst': typeof import("./util/types/mst");
|
|
137
|
-
'@jbrowse/core/ui': typeof import("./ui");
|
|
138
|
-
'@jbrowse/core/util': typeof import("./util");
|
|
139
|
-
'@jbrowse/core/util/color': typeof import("./util/color");
|
|
140
|
-
'@jbrowse/core/util/layouts': typeof import("./util/layouts");
|
|
141
|
-
'@jbrowse/core/util/tracks': typeof import("./util/tracks");
|
|
142
|
-
'@jbrowse/core/util/Base1DViewModel': import("mobx-state-tree").IModelType<{
|
|
143
|
-
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
144
|
-
displayedRegions: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<import("./util").Region[], import("./util").Region[], import("./util").Region[]>, [undefined]>;
|
|
145
|
-
bpPerPx: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
146
|
-
offsetPx: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
147
|
-
interRegionPaddingWidth: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
|
|
148
|
-
minimumBlockWidth: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
|
|
149
|
-
}, {
|
|
150
|
-
features: undefined | import("./util").Feature[];
|
|
151
|
-
volatileWidth: number;
|
|
152
|
-
} & {
|
|
153
|
-
setDisplayedRegions(regions: import("./util").Region[]): void;
|
|
154
|
-
setBpPerPx(val: number): void;
|
|
155
|
-
setVolatileWidth(width: number): void;
|
|
156
|
-
} & {
|
|
157
|
-
readonly width: number;
|
|
158
|
-
readonly assemblyNames: string[];
|
|
159
|
-
readonly displayedRegionsTotalPx: number;
|
|
160
|
-
readonly maxOffset: number;
|
|
161
|
-
readonly minOffset: number;
|
|
162
|
-
readonly totalBp: number;
|
|
163
|
-
} & {
|
|
164
|
-
readonly dynamicBlocks: import("./util/blockTypes").BlockSet;
|
|
165
|
-
readonly staticBlocks: import("./util/blockTypes").BlockSet;
|
|
166
|
-
readonly currBp: number;
|
|
167
|
-
} & {
|
|
168
|
-
pxToBp(px: number): {
|
|
169
|
-
coord: number;
|
|
170
|
-
index: number;
|
|
171
|
-
refName: string;
|
|
172
|
-
oob: boolean;
|
|
173
|
-
assemblyName: string;
|
|
174
|
-
offset: number;
|
|
175
|
-
start: number;
|
|
176
|
-
end: number;
|
|
177
|
-
reversed?: boolean;
|
|
178
|
-
};
|
|
179
|
-
bpToPx({ refName, coord, regionNumber, }: {
|
|
180
|
-
refName: string;
|
|
181
|
-
coord: number;
|
|
182
|
-
regionNumber?: number;
|
|
183
|
-
}): number | undefined;
|
|
184
|
-
} & {
|
|
185
|
-
setFeatures(features: import("./util").Feature[]): void;
|
|
186
|
-
showAllRegions(): void;
|
|
187
|
-
zoomOut(): void;
|
|
188
|
-
zoomIn(): void;
|
|
189
|
-
zoomTo(bpPerPx: number, offset?: number): number;
|
|
190
|
-
scrollTo(offsetPx: number): number;
|
|
191
|
-
centerAt(coord: number, refName: string | undefined, regionNumber: number): void;
|
|
192
|
-
scroll(distance: number): number;
|
|
193
|
-
} & {
|
|
194
|
-
moveTo(start?: import("./util/Base1DUtils").BpOffset, end?: import("./util/Base1DUtils").BpOffset): void;
|
|
195
|
-
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
196
|
-
'@jbrowse/core/util/io': typeof import("./util/io");
|
|
197
|
-
'@jbrowse/core/util/mst-reflection': typeof import("./util/mst-reflection");
|
|
198
|
-
'@jbrowse/core/util/rxjs': typeof import("./util/rxjs");
|
|
199
|
-
'@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail': {
|
|
200
|
-
Attributes: import("react").ForwardRefExoticComponent<Omit<any, "ref"> & import("react").RefAttributes<unknown>>;
|
|
201
|
-
FeatureDetails: import("react").ForwardRefExoticComponent<Omit<any, "ref"> & import("react").RefAttributes<unknown>>;
|
|
202
|
-
BaseCard: import("react").ForwardRefExoticComponent<Omit<any, "ref"> & import("react").RefAttributes<unknown>>;
|
|
203
|
-
BaseCoreDetails: import("react").LazyExoticComponent<typeof import("./BaseFeatureWidget/BaseFeatureDetail").BaseCoreDetails>;
|
|
204
|
-
BaseAttributes: import("react").LazyExoticComponent<typeof import("./BaseFeatureWidget/BaseFeatureDetail").BaseAttributes>;
|
|
205
|
-
};
|
|
206
|
-
'@jbrowse/core/data_adapters/BaseAdapter': typeof import("./data_adapters/BaseAdapter");
|
|
207
|
-
mobx: typeof import("mobx");
|
|
208
|
-
'mobx-state-tree': typeof import("mobx-state-tree");
|
|
209
|
-
react: typeof import("react");
|
|
210
|
-
'react/jsx-runtime': typeof import("react/jsx-runtime");
|
|
211
|
-
'react-dom': typeof import("react-dom");
|
|
212
|
-
'react-dom/client': typeof import("react-dom/client");
|
|
213
|
-
'mobx-react': typeof import("mobx-react");
|
|
214
|
-
'@mui/x-data-grid': {
|
|
215
|
-
useGridApiContext: typeof import("@mui/x-data-grid").useGridApiContext;
|
|
216
|
-
useGridApiRef: <Api extends import("@mui/x-data-grid").GridApiCommon = import("@mui/x-data-grid/internals").GridApiCommunity>() => import("@mui/x-internals/types").RefObject<Api>;
|
|
217
|
-
useGridRootProps: () => import("@mui/x-data-grid/internals").DataGridProcessedProps;
|
|
218
|
-
};
|
|
219
|
-
'@mui/material/utils': typeof import("@mui/material/utils");
|
|
220
|
-
'@material-ui/core/utils': typeof import("@mui/material/utils");
|
|
221
|
-
'tss-react/mui': {
|
|
222
|
-
makeStyles: <Params = void, RuleNameSubsetReferencableInNestedSelectors extends string = never>(params?: {
|
|
223
|
-
name?: string | Record<string, unknown> | undefined;
|
|
224
|
-
uniqId?: string | undefined;
|
|
225
|
-
} | 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?: {
|
|
226
|
-
props: Record<string, unknown>;
|
|
227
|
-
ownerState?: Record<string, unknown> | undefined;
|
|
228
|
-
} | undefined) => {
|
|
229
|
-
classes: Record<RuleName, string>;
|
|
230
|
-
theme: import("@mui/material").Theme;
|
|
231
|
-
css: import("tss-react").Css;
|
|
232
|
-
cx: import("tss-react").Cx;
|
|
233
|
-
};
|
|
234
|
-
};
|
|
235
|
-
'@material-ui/core': {
|
|
236
|
-
useTheme: typeof import("@mui/material").useTheme;
|
|
237
|
-
alpha: typeof import("@mui/system").alpha;
|
|
238
|
-
makeStyles: (args: any) => () => Record<string, string>;
|
|
239
|
-
};
|
|
240
|
-
'@mui/material': {
|
|
241
|
-
alpha: typeof import("@mui/system").alpha;
|
|
242
|
-
useTheme: typeof import("@mui/material").useTheme;
|
|
243
|
-
createTheme: typeof import("@mui/material").createTheme;
|
|
244
|
-
};
|
|
245
|
-
'@mui/material/styles': {
|
|
246
|
-
MUIStyles: typeof import("@mui/material/styles");
|
|
247
|
-
makeStyles: (args: any) => () => Record<string, string>;
|
|
248
|
-
};
|
|
249
|
-
'@material-ui/core/styles': {
|
|
250
|
-
MUIStyles: typeof import("@mui/material/styles");
|
|
251
|
-
makeStyles: (args: any) => () => Record<string, string>;
|
|
252
|
-
};
|
|
253
|
-
};
|
|
111
|
+
lib: any;
|
|
254
112
|
load: <FTYPE extends AnyFunction>(lib: FTYPE) => ReturnType<FTYPE>;
|
|
255
113
|
jbrequire: (lib: keyof typeof ReExports | AnyFunction | {
|
|
256
114
|
default: AnyFunction;
|
package/PluginManager.js
CHANGED
|
@@ -102,10 +102,11 @@ class PluginManager {
|
|
|
102
102
|
}
|
|
103
103
|
return pack;
|
|
104
104
|
}
|
|
105
|
-
if (typeof lib === 'function') {
|
|
105
|
+
else if (typeof lib === 'function') {
|
|
106
106
|
return this.load(lib);
|
|
107
107
|
}
|
|
108
|
-
if (lib.default) {
|
|
108
|
+
else if (lib.default) {
|
|
109
|
+
console.warn('initiated jbrequire on a {default:Function}');
|
|
109
110
|
return this.jbrequire(lib.default);
|
|
110
111
|
}
|
|
111
112
|
throw new TypeError('lib passed to jbrequire must be either a string or a function');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const BaseFeatureDetail: any;
|
|
@@ -0,0 +1,45 @@
|
|
|
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 () {
|
|
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
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.BaseFeatureDetail = void 0;
|
|
37
|
+
const react_1 = require("react");
|
|
38
|
+
const lazify_1 = require("./lazify");
|
|
39
|
+
exports.BaseFeatureDetail = (0, lazify_1.lazyMap)({
|
|
40
|
+
Attributes: (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('../BaseFeatureWidget/BaseFeatureDetail/Attributes')))),
|
|
41
|
+
FeatureDetails: (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('../BaseFeatureWidget/BaseFeatureDetail/FeatureDetails')))),
|
|
42
|
+
BaseCard: (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('../BaseFeatureWidget/BaseFeatureDetail/BaseCard')))),
|
|
43
|
+
BaseAttributes: (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('../BaseFeatureWidget/BaseFeatureDetail/BaseAttributes')))),
|
|
44
|
+
BaseCoreDetails: (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('../BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails')))),
|
|
45
|
+
}, '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/');
|