@jbrowse/core 2.16.1 → 2.18.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.js +1 -2
- package/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +4 -8
- package/BaseFeatureWidget/BaseFeatureDetail/BaseCard.d.ts +1 -1
- package/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +1 -2
- package/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +2 -3
- package/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
- package/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +2 -3
- package/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +22 -25
- package/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +2 -2
- package/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +6 -8
- package/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +1 -1
- package/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +1 -1
- package/BaseFeatureWidget/BaseFeatureDetail/UriField.js +1 -1
- package/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +3 -4
- package/BaseFeatureWidget/BaseFeatureDetail/index.js +5 -9
- package/BaseFeatureWidget/BaseFeatureDetail/util.js +0 -5
- package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +2 -2
- package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +0 -7
- package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +2 -2
- package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.js +1 -7
- package/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.d.ts +3 -3
- package/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +24 -33
- package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.js +1 -2
- package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.d.ts +2 -2
- package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.js +3 -4
- package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.d.ts +2 -2
- package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.js +3 -6
- package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.d.ts +1 -1
- package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.d.ts +1 -1
- package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.js +2 -2
- package/BaseFeatureWidget/SequenceFeatureDetails/hooks.d.ts +2 -2
- package/BaseFeatureWidget/SequenceFeatureDetails/hooks.js +1 -2
- package/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +2 -35
- package/BaseFeatureWidget/SequenceFeatureDetails/model.js +19 -44
- package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.d.ts +3 -3
- package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.d.ts +2 -2
- package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.js +5 -6
- package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.d.ts +2 -2
- package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.js +0 -1
- package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.d.ts +2 -2
- package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.js +0 -2
- package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.d.ts +1 -1
- package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.js +1 -3
- package/BaseFeatureWidget/SequenceFeatureDetails/util.js +1 -5
- package/BaseFeatureWidget/stateModelFactory.d.ts +3 -94
- package/BaseFeatureWidget/stateModelFactory.js +3 -73
- package/BaseFeatureWidget/types.d.ts +3 -3
- package/BaseFeatureWidget/util.js +0 -4
- package/CorePlugin.d.ts +1 -1
- package/CorePlugin.js +2 -5
- package/Plugin.d.ts +2 -5
- package/Plugin.js +0 -3
- package/PluginLoader.d.ts +1 -1
- package/PluginLoader.js +2 -19
- package/PluginManager.d.ts +15 -31
- package/PluginManager.js +11 -39
- package/ReExports/DataGrid.js +0 -1
- package/ReExports/list.d.ts +0 -5
- package/ReExports/list.js +0 -5
- package/ReExports/modules.d.ts +22 -20
- package/ReExports/modules.js +16 -25
- package/TextSearch/BaseResults.d.ts +3 -3
- package/TextSearch/TextSearchManager.d.ts +4 -16
- package/TextSearch/TextSearchManager.js +1 -13
- package/assemblyManager/assembly.d.ts +5 -100
- package/assemblyManager/assembly.js +27 -143
- package/assemblyManager/assemblyConfigSchema.d.ts +1 -34
- package/assemblyManager/assemblyConfigSchema.js +12 -46
- package/assemblyManager/assemblyManager.d.ts +7 -57
- package/assemblyManager/assemblyManager.js +2 -57
- package/configuration/configurationSchema.d.ts +4 -4
- package/configuration/configurationSchema.js +2 -14
- package/configuration/configurationSlot.d.ts +1 -12
- package/configuration/configurationSlot.js +2 -32
- package/configuration/index.d.ts +2 -2
- package/configuration/index.js +2 -2
- package/configuration/types.d.ts +2 -3
- package/configuration/util.d.ts +1 -25
- package/configuration/util.js +19 -56
- package/data_adapters/BaseAdapter/BaseAdapter.d.ts +4 -14
- package/data_adapters/BaseAdapter/BaseAdapter.js +1 -10
- package/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +10 -114
- package/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +13 -79
- package/data_adapters/BaseAdapter/BaseOptions.d.ts +2 -2
- package/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +2 -2
- package/data_adapters/BaseAdapter/BaseSequenceAdapter.d.ts +3 -6
- package/data_adapters/BaseAdapter/BaseTextSearchAdapter.d.ts +3 -3
- package/data_adapters/BaseAdapter/RegionsAdapter.d.ts +3 -3
- package/data_adapters/BaseAdapter/index.d.ts +4 -4
- package/data_adapters/BaseAdapter/types.d.ts +2 -2
- package/data_adapters/BaseAdapter/util.d.ts +6 -6
- package/data_adapters/CytobandAdapter/CytobandAdapter.d.ts +2 -1
- package/data_adapters/CytobandAdapter/CytobandAdapter.js +11 -12
- package/data_adapters/CytobandAdapter/configSchema.d.ts +0 -3
- package/data_adapters/CytobandAdapter/configSchema.js +1 -7
- package/data_adapters/CytobandAdapter/index.d.ts +1 -1
- package/data_adapters/CytobandAdapter/index.js +1 -1
- package/data_adapters/dataAdapterCache.d.ts +4 -21
- package/data_adapters/dataAdapterCache.js +0 -19
- package/package.json +4 -5
- package/pluggableElementTypes/AdapterType.d.ts +2 -2
- package/pluggableElementTypes/AddTrackWorkflowType.d.ts +2 -2
- package/pluggableElementTypes/ConnectionType.d.ts +3 -3
- package/pluggableElementTypes/DisplayType.d.ts +3 -9
- package/pluggableElementTypes/InternetAccountType.d.ts +2 -2
- package/pluggableElementTypes/PluggableElementBase.d.ts +1 -1
- package/pluggableElementTypes/PluggableElementBase.js +2 -2
- package/pluggableElementTypes/RpcMethodType.d.ts +5 -11
- package/pluggableElementTypes/RpcMethodType.js +7 -19
- package/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +9 -0
- package/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.js +35 -0
- package/pluggableElementTypes/TextSearchAdapterType.d.ts +2 -2
- package/pluggableElementTypes/TrackType.d.ts +3 -3
- package/pluggableElementTypes/ViewType.d.ts +3 -3
- package/pluggableElementTypes/WidgetType.d.ts +4 -3
- package/pluggableElementTypes/index.d.ts +11 -11
- package/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +2 -29
- package/pluggableElementTypes/models/BaseConnectionModelFactory.js +1 -28
- package/pluggableElementTypes/models/BaseDisplayModel.d.ts +3 -83
- package/pluggableElementTypes/models/BaseDisplayModel.js +2 -69
- package/pluggableElementTypes/models/BaseTrackModel.d.ts +4 -46
- package/pluggableElementTypes/models/BaseTrackModel.js +0 -58
- package/pluggableElementTypes/models/BaseViewModel.d.ts +2 -42
- package/pluggableElementTypes/models/BaseViewModel.js +2 -38
- package/pluggableElementTypes/models/InternetAccountModel.d.ts +3 -119
- package/pluggableElementTypes/models/InternetAccountModel.js +3 -123
- package/pluggableElementTypes/models/baseConnectionConfig.d.ts +0 -6
- package/pluggableElementTypes/models/baseConnectionConfig.js +1 -13
- package/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +0 -15
- package/pluggableElementTypes/models/baseInternetAccountConfig.js +1 -23
- package/pluggableElementTypes/models/baseTrackConfig.d.ts +2 -53
- package/pluggableElementTypes/models/baseTrackConfig.js +1 -58
- package/pluggableElementTypes/renderers/BoxRendererType.d.ts +7 -15
- package/pluggableElementTypes/renderers/BoxRendererType.js +3 -14
- package/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +3 -2
- package/pluggableElementTypes/renderers/CircularChordRendererType.js +1 -6
- package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.d.ts +6 -21
- package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.js +2 -25
- package/pluggableElementTypes/renderers/FeatureRendererType.d.ts +5 -47
- package/pluggableElementTypes/renderers/FeatureRendererType.js +15 -68
- package/pluggableElementTypes/renderers/RendererType.d.ts +4 -8
- package/pluggableElementTypes/renderers/RendererType.js +1 -5
- package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.d.ts +2 -2
- package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.js +3 -12
- package/pluggableElementTypes/renderers/ServerSideRenderedContent.d.ts +1 -1
- package/pluggableElementTypes/renderers/ServerSideRenderedContent.js +6 -14
- package/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +9 -49
- package/pluggableElementTypes/renderers/ServerSideRendererType.js +7 -57
- package/pluggableElementTypes/renderers/index.d.ts +1 -1
- package/pluggableElementTypes/renderers/util/serializableFilterChain.js +1 -3
- package/rpc/BaseRpcDriver.d.ts +3 -4
- package/rpc/BaseRpcDriver.js +20 -80
- package/rpc/MainThreadRpcDriver.d.ts +3 -7
- package/rpc/MainThreadRpcDriver.js +0 -5
- package/rpc/RpcManager.d.ts +3 -3
- package/rpc/RpcManager.js +2 -4
- package/rpc/WebWorkerRpcDriver.d.ts +3 -2
- package/rpc/WebWorkerRpcDriver.js +2 -13
- package/rpc/baseRpcConfig.d.ts +0 -3
- package/rpc/baseRpcConfig.js +1 -7
- package/rpc/configSchema.d.ts +0 -6
- package/rpc/configSchema.js +2 -11
- package/rpc/mainThreadRpcConfig.js +1 -7
- package/rpc/methods/CoreFreeResources.d.ts +0 -6
- package/rpc/methods/CoreFreeResources.js +2 -9
- package/rpc/methods/CoreGetFeatureDensityStats.d.ts +4 -5
- package/rpc/methods/CoreGetFeatureDensityStats.js +1 -1
- package/rpc/methods/CoreGetFeatureDetails.d.ts +2 -7
- package/rpc/methods/CoreGetFeatureDetails.js +0 -5
- package/rpc/methods/CoreGetFeatures.d.ts +5 -5
- package/rpc/methods/CoreGetFeatures.js +4 -5
- package/rpc/methods/CoreGetFileInfo.d.ts +1 -2
- package/rpc/methods/CoreGetFileInfo.js +1 -1
- package/rpc/methods/CoreGetMetadata.d.ts +1 -2
- package/rpc/methods/CoreGetMetadata.js +1 -1
- package/rpc/methods/CoreGetRefNames.d.ts +1 -2
- package/rpc/methods/CoreGetRefNames.js +1 -1
- package/rpc/methods/CoreRender.d.ts +2 -6
- package/rpc/methods/CoreRender.js +5 -7
- package/rpc/methods/util.d.ts +3 -3
- package/rpc/methods/util.js +0 -1
- package/rpc/webWorkerRpcConfig.js +1 -7
- package/stories/JBrowseCore.stories.d.ts +1 -1
- package/stories/JBrowseCore.stories.js +3 -3
- package/stories/examples/WithSequencePanel.d.ts +1 -1
- package/stories/examples/WithSequencePanel.js +3 -3
- package/tsconfig.build.tsbuildinfo +1 -1
- package/ui/AppLogo.d.ts +1 -1
- package/ui/AppLogo.js +0 -2
- package/ui/AssemblySelector.d.ts +2 -2
- package/ui/AssemblySelector.js +5 -5
- package/ui/BaseTooltip.js +2 -6
- package/ui/CascadingMenu.d.ts +2 -2
- package/ui/CascadingMenu.js +3 -4
- package/ui/CascadingMenuButton.d.ts +1 -1
- package/ui/CascadingMenuButton.js +1 -1
- package/ui/ColorPicker.js +1 -7
- package/ui/Dialog.d.ts +1 -1
- package/ui/Dialog.js +2 -6
- package/ui/DropDownMenu.d.ts +1 -1
- package/ui/DropDownMenu.js +2 -2
- package/ui/EditableTypography.d.ts +1 -1
- package/ui/EditableTypography.js +1 -5
- package/ui/ErrorBoundary.d.ts +2 -1
- package/ui/ErrorMessage.js +2 -9
- package/ui/ErrorMessageStackTraceDialog.js +2 -10
- package/ui/FactoryResetDialog.js +1 -1
- package/ui/FatalErrorDialog.js +1 -1
- package/ui/FileSelector/FileSelector.d.ts +4 -3
- package/ui/FileSelector/FileSelector.js +40 -40
- package/ui/FileSelector/LocalFileChooser.d.ts +1 -1
- package/ui/FileSelector/LocalFileChooser.js +0 -1
- package/ui/FileSelector/UrlChooser.d.ts +4 -3
- package/ui/FileSelector/UrlChooser.js +6 -2
- package/ui/Icons.d.ts +1 -1
- package/ui/Icons.js +1 -7
- package/ui/LoadingEllipses.d.ts +1 -1
- package/ui/LoadingEllipses.js +3 -3
- package/ui/Menu.d.ts +1 -1
- package/ui/Menu.js +3 -10
- package/ui/MenuButton.d.ts +1 -1
- package/ui/ResizeHandle.js +2 -2
- package/ui/ReturnToImportFormDialog.js +1 -1
- package/ui/SanitizedHTML.js +2 -19
- package/ui/Snackbar.d.ts +2 -2
- package/ui/Snackbar.js +1 -2
- package/ui/SnackbarModel.d.ts +1 -26
- package/ui/SnackbarModel.js +2 -30
- package/ui/colors.d.ts +1 -1
- package/ui/colors.js +1 -1
- package/ui/react-colorful.js +0 -3
- package/ui/theme.d.ts +1 -1
- package/ui/theme.js +24 -84
- package/util/Base1DUtils.d.ts +1 -1
- package/util/Base1DUtils.js +0 -12
- package/util/Base1DViewModel.d.ts +4 -81
- package/util/Base1DViewModel.js +4 -108
- package/util/QuickLRU.js +0 -9
- package/util/TimeTraveller.js +0 -4
- package/util/aborting.d.ts +0 -20
- package/util/aborting.js +0 -31
- package/util/analytics.js +1 -12
- package/util/blockTypes.d.ts +0 -11
- package/util/blockTypes.js +0 -13
- package/util/calculateDynamicBlocks.d.ts +1 -20
- package/util/calculateDynamicBlocks.js +1 -22
- package/util/calculateStaticBlocks.d.ts +2 -2
- package/util/calculateStaticBlocks.js +0 -2
- package/util/color/cssColorsLevel4.js +0 -1
- package/util/color/index.d.ts +0 -19
- package/util/color/index.js +0 -30
- package/util/compositeMap.js +0 -2
- package/util/dedupe.js +0 -1
- package/util/formatFastaStrings.d.ts +0 -13
- package/util/formatFastaStrings.js +0 -13
- package/util/idMaker.d.ts +1 -1
- package/util/idMaker.js +16 -12
- package/util/index.d.ts +25 -173
- package/util/index.js +87 -326
- package/util/io/RemoteFileWithRangeCache.d.ts +3 -2
- package/util/io/RemoteFileWithRangeCache.js +6 -10
- package/util/io/index.d.ts +3 -4
- package/util/io/index.js +3 -17
- package/util/jexl.js +3 -13
- package/util/jexlStrings.d.ts +0 -6
- package/util/jexlStrings.js +0 -8
- package/util/layouts/BaseLayout.d.ts +1 -1
- package/util/layouts/GranularRectLayout.d.ts +1 -17
- package/util/layouts/GranularRectLayout.js +4 -81
- package/util/layouts/MultiLayout.d.ts +1 -6
- package/util/layouts/MultiLayout.js +0 -6
- package/util/layouts/PrecomputedLayout.d.ts +1 -4
- package/util/layouts/PrecomputedLayout.js +0 -5
- package/util/layouts/PrecomputedMultiLayout.js +0 -2
- package/util/layouts/SceneGraph.d.ts +0 -12
- package/util/layouts/SceneGraph.js +0 -13
- package/util/makeAbortableReaction.d.ts +2 -0
- package/util/makeAbortableReaction.js +50 -0
- package/util/map-obj.js +0 -4
- package/util/mst-reflection.d.ts +1 -14
- package/util/mst-reflection.js +1 -28
- package/util/nanoid.js +0 -31
- package/util/nextTick.d.ts +1 -0
- package/util/nextTick.js +6 -0
- package/util/offscreenCanvasPonyfill.d.ts +0 -1
- package/util/offscreenCanvasPonyfill.js +1 -9
- package/util/offscreenCanvasUtils.js +1 -8
- package/util/range.d.ts +0 -25
- package/util/range.js +0 -34
- package/util/rxjs.d.ts +3 -7
- package/util/rxjs.js +2 -9
- package/util/simpleFeature.d.ts +0 -58
- package/util/simpleFeature.js +0 -35
- package/util/stats.d.ts +4 -34
- package/util/stats.js +0 -60
- package/util/stopToken.d.ts +3 -0
- package/util/stopToken.js +29 -0
- package/util/tracks.d.ts +3 -25
- package/util/tracks.js +0 -30
- package/util/types/index.d.ts +14 -30
- package/util/types/index.js +5 -14
- package/util/types/mst.js +0 -9
- package/util/types/util.d.ts +2 -9
- package/util/useMeasure.js +0 -1
- package/util/when.d.ts +1 -15
- package/util/when.js +3 -70
- package/rpc/remoteAbortSignals.d.ts +0 -36
- package/rpc/remoteAbortSignals.js +0 -79
|
@@ -7,10 +7,9 @@ exports.default = ArrayValue;
|
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const is_object_1 = __importDefault(require("is-object"));
|
|
9
9
|
const mui_1 = require("tss-react/mui");
|
|
10
|
-
// locals
|
|
11
10
|
const Attributes_1 = __importDefault(require("./Attributes"));
|
|
12
|
-
const FieldName_1 = __importDefault(require("./FieldName"));
|
|
13
11
|
const BasicValue_1 = __importDefault(require("./BasicValue"));
|
|
12
|
+
const FieldName_1 = __importDefault(require("./FieldName"));
|
|
14
13
|
const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
15
14
|
field: {
|
|
16
15
|
display: 'flex',
|
|
@@ -6,15 +6,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.default = Attributes;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const is_object_1 = __importDefault(require("is-object"));
|
|
9
|
-
// locals
|
|
10
|
-
const util_1 = require("./util");
|
|
11
|
-
const util_2 = require("../../util");
|
|
12
|
-
const DataGridDetails_1 = __importDefault(require("./DataGridDetails"));
|
|
13
9
|
const ArrayValue_1 = __importDefault(require("./ArrayValue"));
|
|
14
|
-
const
|
|
10
|
+
const DataGridDetails_1 = __importDefault(require("./DataGridDetails"));
|
|
15
11
|
const SimpleField_1 = __importDefault(require("./SimpleField"));
|
|
12
|
+
const UriField_1 = __importDefault(require("./UriField"));
|
|
13
|
+
const util_1 = require("./util");
|
|
14
|
+
const util_2 = require("../../util");
|
|
16
15
|
const MAX_FIELD_NAME_WIDTH = 170;
|
|
17
|
-
// these are always omitted as too detailed
|
|
18
16
|
const globalOmit = [
|
|
19
17
|
'__jbrowsefmt',
|
|
20
18
|
'length',
|
|
@@ -37,8 +35,6 @@ function Attributes(props) {
|
|
|
37
35
|
.map(([key, value]) => {
|
|
38
36
|
const description = (0, util_1.accessNested)([...prefix, key], descriptions);
|
|
39
37
|
if (Array.isArray(value)) {
|
|
40
|
-
// check if it looks like an array of objects, which could be used
|
|
41
|
-
// in data grid
|
|
42
38
|
return value.length > 1 && value.every(val => (0, is_object_1.default)(val)) ? (react_1.default.createElement(DataGridDetails_1.default, { key: key, name: key, prefix: prefix, value: value })) : (react_1.default.createElement(ArrayValue_1.default, { key: key, name: key, value: value, description: description, prefix: prefix }));
|
|
43
39
|
}
|
|
44
40
|
else if ((0, is_object_1.default)(value)) {
|
|
@@ -5,10 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.default = BaseCard;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const ExpandMore_1 = __importDefault(require("@mui/icons-material/ExpandMore"));
|
|
8
9
|
const material_1 = require("@mui/material");
|
|
9
10
|
const mui_1 = require("tss-react/mui");
|
|
10
|
-
// icons
|
|
11
|
-
const ExpandMore_1 = __importDefault(require("@mui/icons-material/ExpandMore"));
|
|
12
11
|
const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
13
12
|
expansionPanelDetails: {
|
|
14
13
|
display: 'block',
|
|
@@ -5,10 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.default = BasicValue;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const mui_1 = require("tss-react/mui");
|
|
9
|
-
const is_object_1 = __importDefault(require("is-object"));
|
|
10
8
|
const material_1 = require("@mui/material");
|
|
11
|
-
|
|
9
|
+
const is_object_1 = __importDefault(require("is-object"));
|
|
10
|
+
const mui_1 = require("tss-react/mui");
|
|
12
11
|
const ui_1 = require("../../ui");
|
|
13
12
|
const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
14
13
|
fieldValue: {
|
|
@@ -5,10 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.default = CoreDetails;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
|
-
// locals
|
|
9
|
-
const util_1 = require("../../util");
|
|
10
|
-
const SimpleField_1 = __importDefault(require("./SimpleField"));
|
|
11
8
|
const Position_1 = __importDefault(require("./Position"));
|
|
9
|
+
const SimpleField_1 = __importDefault(require("./SimpleField"));
|
|
10
|
+
const util_1 = require("../../util");
|
|
12
11
|
function CoreDetails(props) {
|
|
13
12
|
const { feature } = props;
|
|
14
13
|
const obj = feature;
|
|
@@ -28,13 +28,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
exports.default = DataGridDetails;
|
|
30
30
|
const react_1 = __importStar(require("react"));
|
|
31
|
-
const mui_1 = require("tss-react/mui");
|
|
32
|
-
const x_data_grid_1 = require("@mui/x-data-grid");
|
|
33
31
|
const material_1 = require("@mui/material");
|
|
34
|
-
|
|
35
|
-
const
|
|
32
|
+
const x_data_grid_1 = require("@mui/x-data-grid");
|
|
33
|
+
const mui_1 = require("tss-react/mui");
|
|
36
34
|
const FieldName_1 = __importDefault(require("./FieldName"));
|
|
37
35
|
const ui_1 = require("../../ui");
|
|
36
|
+
const util_1 = require("../../util");
|
|
38
37
|
const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
39
38
|
margin: {
|
|
40
39
|
marginBottom: theme.spacing(4),
|
|
@@ -50,12 +49,11 @@ function DataGridDetails({ value, prefix, name, }) {
|
|
|
50
49
|
const [checked, setChecked] = (0, react_1.useState)(false);
|
|
51
50
|
const keys = Object.keys(value[0]).sort();
|
|
52
51
|
const unionKeys = new Set(keys);
|
|
53
|
-
// avoids key 'id' from being used in row data
|
|
54
52
|
const rows = Object.entries(value).map(([k, val]) => {
|
|
55
53
|
const { id, ...rest } = val;
|
|
56
54
|
return {
|
|
57
|
-
id: k,
|
|
58
|
-
identifier: id,
|
|
55
|
+
id: k,
|
|
56
|
+
identifier: id,
|
|
59
57
|
...rest,
|
|
60
58
|
};
|
|
61
59
|
});
|
|
@@ -64,8 +62,6 @@ function DataGridDetails({ value, prefix, name, }) {
|
|
|
64
62
|
unionKeys.add(k);
|
|
65
63
|
}
|
|
66
64
|
}
|
|
67
|
-
// avoids key 'id' from being used in column names, and tries
|
|
68
|
-
// to make it at the start of the colNames array
|
|
69
65
|
let colNames;
|
|
70
66
|
if (unionKeys.has('id')) {
|
|
71
67
|
unionKeys.delete('id');
|
|
@@ -81,23 +77,24 @@ function DataGridDetails({ value, prefix, name, }) {
|
|
|
81
77
|
react_1.default.createElement(material_1.FormControlLabel, { control: react_1.default.createElement(material_1.Checkbox, { checked: checked, onChange: event => {
|
|
82
78
|
setChecked(event.target.checked);
|
|
83
79
|
} }), label: react_1.default.createElement(material_1.Typography, { variant: "body2" }, "Show options") }),
|
|
84
|
-
react_1.default.createElement(
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
80
|
+
react_1.default.createElement("div", { style: { display: 'flex', flexDirection: 'column' } },
|
|
81
|
+
react_1.default.createElement(x_data_grid_1.DataGrid, { disableRowSelectionOnClick: true, rows: rows, rowHeight: 20, columnHeaderHeight: 35, hideFooter: rows.length < 25, slots: {
|
|
82
|
+
toolbar: checked ? x_data_grid_1.GridToolbar : null,
|
|
83
|
+
}, slotProps: {
|
|
84
|
+
toolbar: {
|
|
85
|
+
printOptions: {
|
|
86
|
+
disableToolbarButton: true,
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
}, columns: colNames.map((val, index) => ({
|
|
90
|
+
field: val,
|
|
91
|
+
renderCell: params => {
|
|
92
|
+
const value = params.value;
|
|
93
|
+
return (react_1.default.createElement("div", { className: classes.cell },
|
|
94
|
+
react_1.default.createElement(ui_1.SanitizedHTML, { html: (0, util_1.getStr)(value || '') })));
|
|
90
95
|
},
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
field: val,
|
|
94
|
-
renderCell: params => {
|
|
95
|
-
const value = params.value;
|
|
96
|
-
return (react_1.default.createElement("div", { className: classes.cell },
|
|
97
|
-
react_1.default.createElement(ui_1.SanitizedHTML, { html: (0, util_1.getStr)(value || '') })));
|
|
98
|
-
},
|
|
99
|
-
width: widths[index],
|
|
100
|
-
})) })));
|
|
96
|
+
width: widths[index],
|
|
97
|
+
})) }))));
|
|
101
98
|
}
|
|
102
99
|
return null;
|
|
103
100
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import type { SimpleFeatureSerialized } from '../../util';
|
|
3
|
+
import type { IAnyStateTreeNode } from 'mobx-state-tree';
|
|
4
4
|
export default function FeatureDetails(props: {
|
|
5
5
|
model: IAnyStateTreeNode;
|
|
6
6
|
feature: SimpleFeatureSerialized;
|
|
@@ -7,15 +7,13 @@ exports.default = FeatureDetails;
|
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const ErrorBoundary_1 = require("@jbrowse/core/ui/ErrorBoundary");
|
|
9
9
|
const material_1 = require("@mui/material");
|
|
10
|
-
|
|
11
|
-
const util_1 = require("../../util");
|
|
12
|
-
const ui_1 = require("../../ui");
|
|
13
|
-
const util_2 = require("./util");
|
|
10
|
+
const util_1 = require("./util");
|
|
14
11
|
const SequenceFeatureDetails_1 = __importDefault(require("../SequenceFeatureDetails"));
|
|
15
12
|
const Attributes_1 = __importDefault(require("./Attributes"));
|
|
16
13
|
const BaseCard_1 = __importDefault(require("./BaseCard"));
|
|
17
14
|
const CoreDetails_1 = __importDefault(require("./CoreDetails"));
|
|
18
|
-
|
|
15
|
+
const ui_1 = require("../../ui");
|
|
16
|
+
const util_2 = require("../../util");
|
|
19
17
|
const coreDetails = [
|
|
20
18
|
'name',
|
|
21
19
|
'start',
|
|
@@ -29,15 +27,15 @@ function FeatureDetails(props) {
|
|
|
29
27
|
const { omit = [], model, feature, depth = 0 } = props;
|
|
30
28
|
const { maxDepth } = model;
|
|
31
29
|
const { mate, name = '', id = '', type = '', subfeatures, uniqueId } = feature;
|
|
32
|
-
const pm = (0,
|
|
33
|
-
const session = (0,
|
|
30
|
+
const pm = (0, util_2.getEnv)(model).pluginManager;
|
|
31
|
+
const session = (0, util_2.getSession)(model);
|
|
34
32
|
const ExtraPanel = pm.evaluateExtensionPoint('Core-extraFeaturePanel', null, {
|
|
35
33
|
session,
|
|
36
34
|
feature,
|
|
37
35
|
model,
|
|
38
36
|
});
|
|
39
37
|
const m = mate;
|
|
40
|
-
return (react_1.default.createElement(BaseCard_1.default, { title: (0,
|
|
38
|
+
return (react_1.default.createElement(BaseCard_1.default, { title: (0, util_1.generateTitle)(name, id, type) },
|
|
41
39
|
react_1.default.createElement(material_1.Typography, null, "Core details"),
|
|
42
40
|
react_1.default.createElement(CoreDetails_1.default, { ...props }),
|
|
43
41
|
m ? (react_1.default.createElement(react_1.default.Fragment, null,
|
|
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.default = SimpleField;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const mui_1 = require("tss-react/mui");
|
|
9
|
-
const FieldName_1 = __importDefault(require("./FieldName"));
|
|
10
9
|
const BasicValue_1 = __importDefault(require("./BasicValue"));
|
|
10
|
+
const FieldName_1 = __importDefault(require("./FieldName"));
|
|
11
11
|
const useStyles = (0, mui_1.makeStyles)()({
|
|
12
12
|
field: {
|
|
13
13
|
display: 'flex',
|
|
@@ -5,9 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.default = UriField;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const FieldName_1 = __importDefault(require("./FieldName"));
|
|
9
8
|
const mui_1 = require("tss-react/mui");
|
|
10
9
|
const BasicValue_1 = __importDefault(require("./BasicValue"));
|
|
10
|
+
const FieldName_1 = __importDefault(require("./FieldName"));
|
|
11
11
|
const useStyles = (0, mui_1.makeStyles)()({
|
|
12
12
|
field: {
|
|
13
13
|
display: 'flex',
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { BaseCardProps, BaseProps } from '../types';
|
|
3
|
-
import BaseCard from './BaseCard';
|
|
4
|
-
import FeatureDetails from './FeatureDetails';
|
|
2
|
+
import type { BaseCardProps, BaseProps } from '../types';
|
|
5
3
|
export declare const BaseCoreDetails: (props: BaseProps) => React.JSX.Element;
|
|
6
4
|
export declare const BaseAttributes: (props: BaseProps) => React.JSX.Element;
|
|
7
5
|
export interface BaseInputProps extends BaseCardProps {
|
|
@@ -12,4 +10,5 @@ export interface BaseInputProps extends BaseCardProps {
|
|
|
12
10
|
}
|
|
13
11
|
declare const BaseFeatureDetail: ({ model }: BaseInputProps) => React.JSX.Element | null;
|
|
14
12
|
export default BaseFeatureDetail;
|
|
15
|
-
export { BaseCard
|
|
13
|
+
export { default as BaseCard } from './BaseCard';
|
|
14
|
+
export { default as FeatureDetails } from './FeatureDetails';
|
|
@@ -6,17 +6,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.FeatureDetails = exports.BaseCard = exports.BaseAttributes = exports.BaseCoreDetails = void 0;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const mobx_react_1 = require("mobx-react");
|
|
9
|
-
// utils
|
|
10
|
-
const ui_1 = require("../../ui");
|
|
11
9
|
const util_1 = require("./util");
|
|
12
10
|
const util_2 = require("../util");
|
|
13
|
-
// locals
|
|
14
11
|
const Attributes_1 = __importDefault(require("./Attributes"));
|
|
15
12
|
const BaseCard_1 = __importDefault(require("./BaseCard"));
|
|
16
|
-
exports.BaseCard = BaseCard_1.default;
|
|
17
13
|
const CoreDetails_1 = __importDefault(require("./CoreDetails"));
|
|
18
14
|
const FeatureDetails_1 = __importDefault(require("./FeatureDetails"));
|
|
19
|
-
|
|
15
|
+
const ui_1 = require("../../ui");
|
|
20
16
|
const BaseCoreDetails = (props) => {
|
|
21
17
|
const { title = 'Primary data' } = props;
|
|
22
18
|
return (react_1.default.createElement(BaseCard_1.default, { ...props, title: title },
|
|
@@ -38,12 +34,12 @@ const BaseFeatureDetail = (0, mobx_react_1.observer)(function ({ model }) {
|
|
|
38
34
|
return null;
|
|
39
35
|
}
|
|
40
36
|
else {
|
|
41
|
-
// replacing undefined with null helps with allowing fields to be hidden,
|
|
42
|
-
// setting null is not allowed by jexl so we set it to undefined to hide.
|
|
43
|
-
// see config guide. this replacement happens both here and when
|
|
44
|
-
// snapshotting the featureData
|
|
45
37
|
const featureData2 = (0, util_2.replaceUndefinedWithNull)(featureData);
|
|
46
38
|
return (0, util_1.isEmpty)(featureData2) ? null : (react_1.default.createElement(FeatureDetails_1.default, { model: model, feature: featureData2 }));
|
|
47
39
|
}
|
|
48
40
|
});
|
|
49
41
|
exports.default = BaseFeatureDetail;
|
|
42
|
+
var BaseCard_2 = require("./BaseCard");
|
|
43
|
+
Object.defineProperty(exports, "BaseCard", { enumerable: true, get: function () { return __importDefault(BaseCard_2).default; } });
|
|
44
|
+
var FeatureDetails_2 = require("./FeatureDetails");
|
|
45
|
+
Object.defineProperty(exports, "FeatureDetails", { enumerable: true, get: function () { return __importDefault(FeatureDetails_2).default; } });
|
|
@@ -21,11 +21,6 @@ function generateTitle(name, id, type) {
|
|
|
21
21
|
function generateMaxWidth(array, prefix) {
|
|
22
22
|
return (Math.ceil((0, util_1.max)(array.map(key => (0, util_1.measureText)([...prefix, key[0]].join('.'), 12)))) + 10);
|
|
23
23
|
}
|
|
24
|
-
// pick using a path from an object, similar to _.get from lodash with special
|
|
25
|
-
// logic for Descriptions from e.g. VCF headers
|
|
26
|
-
//
|
|
27
|
-
// @param arr example ['a','b'], obj = {a:{b:'hello}}
|
|
28
|
-
// @returns hello (with special addition to grab description also)
|
|
29
24
|
function accessNested(arr, obj = {}) {
|
|
30
25
|
let obj2 = obj;
|
|
31
26
|
arr.forEach(elt => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { SimpleFeatureSerialized } from '../../util';
|
|
3
|
-
import { BaseFeatureWidgetModel } from '../stateModelFactory';
|
|
2
|
+
import type { SimpleFeatureSerialized } from '../../util';
|
|
3
|
+
import type { BaseFeatureWidgetModel } from '../stateModelFactory';
|
|
4
4
|
declare const SequenceFeatureDetails: ({ model, feature, }: {
|
|
5
5
|
model: BaseFeatureWidgetModel;
|
|
6
6
|
feature: SimpleFeatureSerialized;
|
|
@@ -29,17 +29,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
29
|
const react_1 = __importStar(require("react"));
|
|
30
30
|
const material_1 = require("@mui/material");
|
|
31
31
|
const mobx_react_1 = require("mobx-react");
|
|
32
|
-
// locals
|
|
33
32
|
const hooks_1 = require("./hooks");
|
|
34
33
|
const ui_1 = require("../../ui");
|
|
35
|
-
// icons
|
|
36
34
|
const SequenceFeatureMenu_1 = __importDefault(require("./dialogs/SequenceFeatureMenu"));
|
|
37
35
|
const SequenceTypeSelector_1 = __importDefault(require("./dialogs/SequenceTypeSelector"));
|
|
38
|
-
// lazies
|
|
39
36
|
const SequencePanel = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./SequencePanel'))));
|
|
40
37
|
const SequenceDialog = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./dialogs/SequenceDialog'))));
|
|
41
|
-
// set the key on this component to feature.id to clear state after new feature
|
|
42
|
-
// is selected
|
|
43
38
|
const SequenceFeatureDetails = (0, mobx_react_1.observer)(function ({ model, feature, }) {
|
|
44
39
|
const { sequenceFeatureDetails } = model;
|
|
45
40
|
const { upDownBp } = sequenceFeatureDetails;
|
|
@@ -57,8 +52,6 @@ const SequenceFeatureDetails = (0, mobx_react_1.observer)(function ({ model, fea
|
|
|
57
52
|
{
|
|
58
53
|
label: 'Open in dialog',
|
|
59
54
|
onClick: () => {
|
|
60
|
-
// this is given a setTimeout because it allows the menu to
|
|
61
|
-
// close before dialog opens
|
|
62
55
|
setTimeout(() => {
|
|
63
56
|
setOpenInDialog(true);
|
|
64
57
|
}, 1);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import type { SimpleFeatureSerialized } from '../../util';
|
|
3
|
+
import type { BaseFeatureWidgetModel } from '../stateModelFactory';
|
|
4
4
|
declare const SequenceFeaturePanel: ({ model, feature, }: {
|
|
5
5
|
model: BaseFeatureWidgetModel;
|
|
6
6
|
feature: SimpleFeatureSerialized;
|
|
@@ -27,15 +27,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
const react_1 = __importStar(require("react"));
|
|
30
|
+
const Help_1 = __importDefault(require("@mui/icons-material/Help"));
|
|
30
31
|
const material_1 = require("@mui/material");
|
|
31
32
|
const mobx_react_1 = require("mobx-react");
|
|
32
33
|
const mui_1 = require("tss-react/mui");
|
|
33
|
-
// locals
|
|
34
34
|
const ui_1 = require("../../ui");
|
|
35
35
|
const util_1 = require("../../util");
|
|
36
|
-
// icons
|
|
37
|
-
const Help_1 = __importDefault(require("@mui/icons-material/Help"));
|
|
38
|
-
// lazies
|
|
39
36
|
const SequenceFeatureDetails = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./SequenceFeatureDetails'))));
|
|
40
37
|
const HelpDialog = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./dialogs/HelpDialog'))));
|
|
41
38
|
const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
@@ -47,9 +44,6 @@ const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
|
47
44
|
marginBottom: theme.spacing(4),
|
|
48
45
|
},
|
|
49
46
|
}));
|
|
50
|
-
// display the stitched-together sequence of a gene's CDS, cDNA, or protein
|
|
51
|
-
// sequence. this is a best effort and weird genomic phenomena could lead these
|
|
52
|
-
// to not be 100% accurate
|
|
53
47
|
const SequenceFeaturePanel = (0, mobx_react_1.observer)(function ({ model, feature, }) {
|
|
54
48
|
const { classes } = useStyles();
|
|
55
49
|
const [shown, setShown] = (0, react_1.useState)(false);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import type { SequenceFeatureDetailsModel } from './model';
|
|
3
|
+
import type { SimpleFeatureSerialized } from '../../util';
|
|
4
|
+
import type { SeqState } from '../util';
|
|
5
5
|
interface SequencePanelProps {
|
|
6
6
|
sequence: SeqState;
|
|
7
7
|
feature: SimpleFeatureSerialized;
|
|
@@ -5,14 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const react_1 = __importDefault(require("react"));
|
|
7
7
|
const mobx_react_1 = require("mobx-react");
|
|
8
|
-
// locals
|
|
9
8
|
const util_1 = require("../../util");
|
|
10
9
|
const util_2 = require("../util");
|
|
11
|
-
// panel types
|
|
12
10
|
const CDNASequence_1 = __importDefault(require("./seqtypes/CDNASequence"));
|
|
13
|
-
const ProteinSequence_1 = __importDefault(require("./seqtypes/ProteinSequence"));
|
|
14
|
-
const GenomicSequence_1 = __importDefault(require("./seqtypes/GenomicSequence"));
|
|
15
11
|
const CDSSequence_1 = __importDefault(require("./seqtypes/CDSSequence"));
|
|
12
|
+
const GenomicSequence_1 = __importDefault(require("./seqtypes/GenomicSequence"));
|
|
13
|
+
const ProteinSequence_1 = __importDefault(require("./seqtypes/ProteinSequence"));
|
|
16
14
|
function getStrand(strand) {
|
|
17
15
|
if (strand === -1) {
|
|
18
16
|
return '(-)';
|
|
@@ -26,7 +24,6 @@ function getStrand(strand) {
|
|
|
26
24
|
}
|
|
27
25
|
function WordWrap({ children }) {
|
|
28
26
|
return (react_1.default.createElement("pre", { style: {
|
|
29
|
-
/* raw styles instead of className so that html copy works */
|
|
30
27
|
fontFamily: 'monospace',
|
|
31
28
|
color: 'black',
|
|
32
29
|
fontSize: 11,
|
|
@@ -34,7 +31,6 @@ function WordWrap({ children }) {
|
|
|
34
31
|
}
|
|
35
32
|
function NoWordWrap({ children }) {
|
|
36
33
|
return (react_1.default.createElement("div", { style: {
|
|
37
|
-
/* raw styles instead of className so that html copy works */
|
|
38
34
|
fontFamily: 'monospace',
|
|
39
35
|
color: 'black',
|
|
40
36
|
fontSize: 11,
|
|
@@ -44,9 +40,27 @@ function NoWordWrap({ children }) {
|
|
|
44
40
|
} }, children));
|
|
45
41
|
}
|
|
46
42
|
const SequencePanel = (0, mobx_react_1.observer)(react_1.default.forwardRef(function S(props, ref) {
|
|
47
|
-
const { model, feature } = props;
|
|
43
|
+
const { sequence, model, feature } = props;
|
|
48
44
|
const { showCoordinates, mode } = model;
|
|
49
|
-
|
|
45
|
+
const Container = showCoordinates ? WordWrap : NoWordWrap;
|
|
46
|
+
return (react_1.default.createElement("div", { "data-testid": "sequence_panel", ref: ref, style: { maxHeight: 300, overflow: 'auto' } },
|
|
47
|
+
react_1.default.createElement(Container, null,
|
|
48
|
+
react_1.default.createElement(SequenceName, { model: model, mode: mode, feature: feature }),
|
|
49
|
+
react_1.default.createElement(SequenceContents, { model: model, mode: mode, feature: feature, sequence: sequence }))));
|
|
50
|
+
}));
|
|
51
|
+
function SequenceName({ mode, model, feature, }) {
|
|
52
|
+
return (react_1.default.createElement("div", { style: { background: 'white' } }, `>${[
|
|
53
|
+
[feature.name || feature.id, mode].filter(f => !!f).join('-'),
|
|
54
|
+
`${feature.refName}:${(0, util_1.toLocale)(feature.start + 1)}-${(0, util_1.toLocale)(feature.end)}${getStrand(feature.strand)}`,
|
|
55
|
+
mode.endsWith('updownstream')
|
|
56
|
+
? `+/- ${(0, util_1.toLocale)(model.upDownBp)} up/downstream bp`
|
|
57
|
+
: '',
|
|
58
|
+
]
|
|
59
|
+
.filter(f => !!f)
|
|
60
|
+
.join(' ')}\n`));
|
|
61
|
+
}
|
|
62
|
+
function SequenceContents({ mode, feature, sequence, model, }) {
|
|
63
|
+
let { seq, upstream = '', downstream = '' } = sequence;
|
|
50
64
|
const { subfeatures = [] } = feature;
|
|
51
65
|
const children = subfeatures
|
|
52
66
|
.sort((a, b) => a.start - b.start)
|
|
@@ -55,15 +69,6 @@ const SequencePanel = (0, mobx_react_1.observer)(react_1.default.forwardRef(func
|
|
|
55
69
|
start: sub.start - feature.start,
|
|
56
70
|
end: sub.end - feature.start,
|
|
57
71
|
}));
|
|
58
|
-
// we filter duplicate entries in cds and exon lists duplicate entries
|
|
59
|
-
// may be rare but was seen in Gencode v36 track NCList, likely a bug
|
|
60
|
-
// on GFF3 or probably worth ignoring here (produces broken protein
|
|
61
|
-
// translations if included)
|
|
62
|
-
//
|
|
63
|
-
// position 1:224,800,006..225,203,064 gene ENSG00000185842.15 first
|
|
64
|
-
// transcript ENST00000445597.6
|
|
65
|
-
//
|
|
66
|
-
// http://localhost:3000/?config=test_data%2Fconfig.json&session=share-FUl7G1isvF&password=HXh5Y
|
|
67
72
|
let cds = (0, util_2.dedupe)(children.filter(sub => sub.type === 'CDS'));
|
|
68
73
|
let utr = (0, util_2.dedupe)(children.filter(sub => { var _a; return (_a = sub.type) === null || _a === void 0 ? void 0 : _a.match(/utr/i); }));
|
|
69
74
|
let exons = (0, util_2.dedupe)(children.filter(sub => sub.type === 'exon'));
|
|
@@ -78,8 +83,6 @@ const SequencePanel = (0, mobx_react_1.observer)(react_1.default.forwardRef(func
|
|
|
78
83
|
});
|
|
79
84
|
}
|
|
80
85
|
if (feature.strand === -1) {
|
|
81
|
-
// doing this in a single assignment is needed because downstream and
|
|
82
|
-
// upstream are swapped so this avoids a temp variable
|
|
83
86
|
;
|
|
84
87
|
[seq, upstream, downstream] = [
|
|
85
88
|
(0, util_1.revcom)(seq),
|
|
@@ -91,18 +94,6 @@ const SequencePanel = (0, mobx_react_1.observer)(react_1.default.forwardRef(func
|
|
|
91
94
|
utr = (0, util_2.revlist)(utr, seq.length);
|
|
92
95
|
}
|
|
93
96
|
const codonTable = (0, util_1.generateCodonTable)(util_1.defaultCodonTable);
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
react_1.default.createElement(Container, null,
|
|
97
|
-
react_1.default.createElement("div", { style: { background: 'white' } }, `>${[
|
|
98
|
-
`${feature.name || feature.id}-${mode}`,
|
|
99
|
-
`${feature.refName}:${(0, util_1.toLocale)(feature.start + 1)}-${(0, util_1.toLocale)(feature.end)}${getStrand(feature.strand)}`,
|
|
100
|
-
mode.endsWith('updownstream')
|
|
101
|
-
? `+/- ${(0, util_1.toLocale)(model.upDownBp)} up/downstream bp`
|
|
102
|
-
: '',
|
|
103
|
-
]
|
|
104
|
-
.filter(f => !!f)
|
|
105
|
-
.join(' ')}\n`),
|
|
106
|
-
mode === 'genomic' ? (react_1.default.createElement(GenomicSequence_1.default, { feature: feature, model: model, sequence: seq })) : mode === 'genomic_sequence_updownstream' ? (react_1.default.createElement(GenomicSequence_1.default, { model: model, feature: feature, sequence: seq, upstream: upstream, downstream: downstream })) : mode === 'cds' ? (react_1.default.createElement(CDSSequence_1.default, { model: model, cds: cds, sequence: seq })) : mode === 'cdna' ? (react_1.default.createElement(CDNASequence_1.default, { model: model, exons: exons, feature: feature, cds: cds, utr: utr, sequence: seq })) : mode === 'protein' ? (react_1.default.createElement(ProteinSequence_1.default, { model: model, cds: cds, codonTable: codonTable, sequence: seq })) : mode === 'gene' ? (react_1.default.createElement(CDNASequence_1.default, { model: model, exons: exons, feature: feature, cds: cds, utr: utr, sequence: seq, includeIntrons: true })) : mode === 'gene_collapsed_intron' ? (react_1.default.createElement(CDNASequence_1.default, { model: model, exons: exons, feature: feature, cds: cds, sequence: seq, utr: utr, includeIntrons: true, collapseIntron: true })) : mode === 'gene_updownstream' ? (react_1.default.createElement(CDNASequence_1.default, { model: model, exons: exons, feature: feature, cds: cds, sequence: seq, utr: utr, upstream: upstream, downstream: downstream, includeIntrons: true })) : mode === 'gene_updownstream_collapsed_intron' ? (react_1.default.createElement(CDNASequence_1.default, { model: model, exons: exons, feature: feature, cds: cds, sequence: seq, utr: utr, upstream: upstream, downstream: downstream, includeIntrons: true, collapseIntron: true })) : (react_1.default.createElement("div", null, "Unknown type")))));
|
|
107
|
-
}));
|
|
97
|
+
return (react_1.default.createElement(react_1.default.Fragment, null, mode === 'genomic' ? (react_1.default.createElement(GenomicSequence_1.default, { feature: feature, model: model, sequence: seq })) : mode === 'genomic_sequence_updownstream' ? (react_1.default.createElement(GenomicSequence_1.default, { model: model, feature: feature, sequence: seq, upstream: upstream, downstream: downstream })) : mode === 'cds' ? (react_1.default.createElement(CDSSequence_1.default, { model: model, cds: cds, sequence: seq })) : mode === 'cdna' ? (react_1.default.createElement(CDNASequence_1.default, { model: model, exons: exons, feature: feature, cds: cds, utr: utr, sequence: seq })) : mode === 'protein' ? (react_1.default.createElement(ProteinSequence_1.default, { model: model, cds: cds, codonTable: codonTable, sequence: seq })) : mode === 'gene' ? (react_1.default.createElement(CDNASequence_1.default, { model: model, exons: exons, feature: feature, cds: cds, utr: utr, sequence: seq, includeIntrons: true })) : mode === 'gene_collapsed_intron' ? (react_1.default.createElement(CDNASequence_1.default, { model: model, exons: exons, feature: feature, cds: cds, sequence: seq, utr: utr, includeIntrons: true, collapseIntron: true })) : mode === 'gene_updownstream' ? (react_1.default.createElement(CDNASequence_1.default, { model: model, exons: exons, feature: feature, cds: cds, sequence: seq, utr: utr, upstream: upstream, downstream: downstream, includeIntrons: true })) : mode === 'gene_updownstream_collapsed_intron' ? (react_1.default.createElement(CDNASequence_1.default, { model: model, exons: exons, feature: feature, cds: cds, sequence: seq, utr: utr, upstream: upstream, downstream: downstream, includeIntrons: true, collapseIntron: true })) : (react_1.default.createElement("div", null, "Unknown type"))));
|
|
98
|
+
}
|
|
108
99
|
exports.default = SequencePanel;
|
|
@@ -5,10 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.default = HelpDialog;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const material_1 = require("@mui/material");
|
|
9
8
|
const ui_1 = require("@jbrowse/core/ui");
|
|
10
|
-
// icons
|
|
11
9
|
const Settings_1 = __importDefault(require("@mui/icons-material/Settings"));
|
|
10
|
+
const material_1 = require("@mui/material");
|
|
12
11
|
function HelpDialog({ handleClose, }) {
|
|
13
12
|
return (react_1.default.createElement(ui_1.Dialog, { maxWidth: "xl", open: true, onClose: () => {
|
|
14
13
|
handleClose();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { SimpleFeatureSerialized } from '../../../util';
|
|
3
|
-
import { BaseFeatureWidgetModel } from '../../stateModelFactory';
|
|
2
|
+
import type { SimpleFeatureSerialized } from '../../../util';
|
|
3
|
+
import type { BaseFeatureWidgetModel } from '../../stateModelFactory';
|
|
4
4
|
declare const SequenceDialog: ({ handleClose, model, feature, }: {
|
|
5
5
|
handleClose: () => void;
|
|
6
6
|
feature: SimpleFeatureSerialized;
|
|
@@ -27,13 +27,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
const react_1 = __importStar(require("react"));
|
|
30
|
-
const material_1 = require("@mui/material");
|
|
31
30
|
const ui_1 = require("@jbrowse/core/ui");
|
|
32
|
-
const
|
|
31
|
+
const material_1 = require("@mui/material");
|
|
33
32
|
const mobx_react_1 = require("mobx-react");
|
|
34
|
-
|
|
35
|
-
const hooks_1 = require("../hooks");
|
|
33
|
+
const mui_1 = require("tss-react/mui");
|
|
36
34
|
const SequencePanel_1 = __importDefault(require("../SequencePanel"));
|
|
35
|
+
const hooks_1 = require("../hooks");
|
|
37
36
|
const SequenceFeatureMenu_1 = __importDefault(require("./SequenceFeatureMenu"));
|
|
38
37
|
const SequenceTypeSelector_1 = __importDefault(require("./SequenceTypeSelector"));
|
|
39
38
|
const useStyles = (0, mui_1.makeStyles)()({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import type { MenuItem } from '../../../ui';
|
|
3
|
+
import type { SequenceFeatureDetailsModel } from '../model';
|
|
4
4
|
interface Props {
|
|
5
5
|
model: SequenceFeatureDetailsModel;
|
|
6
6
|
extraItems?: MenuItem[];
|
|
@@ -27,15 +27,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
const react_1 = __importStar(require("react"));
|
|
30
|
-
const
|
|
30
|
+
const MoreVert_1 = __importDefault(require("@mui/icons-material/MoreVert"));
|
|
31
|
+
const Settings_1 = __importDefault(require("@mui/icons-material/Settings"));
|
|
31
32
|
const copy_to_clipboard_1 = __importDefault(require("copy-to-clipboard"));
|
|
32
33
|
const file_saver_1 = require("file-saver");
|
|
33
|
-
|
|
34
|
+
const mobx_react_1 = require("mobx-react");
|
|
34
35
|
const CascadingMenuButton_1 = __importDefault(require("../../../ui/CascadingMenuButton"));
|
|
35
|
-
// icons
|
|
36
|
-
const MoreVert_1 = __importDefault(require("@mui/icons-material/MoreVert"));
|
|
37
|
-
const Settings_1 = __importDefault(require("@mui/icons-material/Settings"));
|
|
38
|
-
// lazies
|
|
39
36
|
const SequenceFeatureSettingsDialog = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./SettingsDialog'))));
|
|
40
37
|
const SequenceFeatureMenu = (0, mobx_react_1.observer)(react_1.default.forwardRef(function SequenceFeatureMenu2({ model, extraItems = [] }, ref) {
|
|
41
38
|
if (typeof ref === 'function') {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { SequenceFeatureDetailsModel } from '../model';
|
|
2
|
+
import type { SequenceFeatureDetailsModel } from '../model';
|
|
3
3
|
declare const SequenceFeatureSettingsDialog: ({ handleClose, model, }: {
|
|
4
4
|
handleClose: () => void;
|
|
5
5
|
model: SequenceFeatureDetailsModel;
|
|
@@ -24,10 +24,10 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
const react_1 = __importStar(require("react"));
|
|
27
|
-
const material_1 = require("@mui/material");
|
|
28
27
|
const ui_1 = require("@jbrowse/core/ui");
|
|
29
|
-
const
|
|
28
|
+
const material_1 = require("@mui/material");
|
|
30
29
|
const mobx_react_1 = require("mobx-react");
|
|
30
|
+
const mui_1 = require("tss-react/mui");
|
|
31
31
|
const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
32
32
|
formElt: {
|
|
33
33
|
margin: theme.spacing(3),
|