@jbrowse/core 2.4.2 → 2.5.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 +16 -0
- package/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +46 -0
- package/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +15 -0
- package/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +69 -0
- package/BaseFeatureWidget/BaseFeatureDetail/BasicField.d.ts +17 -0
- package/BaseFeatureWidget/BaseFeatureDetail/BasicField.js +23 -0
- package/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +12 -0
- package/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +26 -0
- package/BaseFeatureWidget/BaseFeatureDetail/DataGrid.d.ts +14 -0
- package/BaseFeatureWidget/BaseFeatureDetail/DataGrid.js +98 -0
- package/BaseFeatureWidget/BaseFeatureDetail/FieldName.d.ts +16 -0
- package/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +32 -0
- package/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +17 -0
- package/BaseFeatureWidget/BaseFeatureDetail/UriField.js +31 -0
- package/BaseFeatureWidget/BaseFeatureDetail/UriLink.d.ts +6 -0
- package/BaseFeatureWidget/BaseFeatureDetail/UriLink.js +13 -0
- package/BaseFeatureWidget/{BaseFeatureDetail.d.ts → BaseFeatureDetail/index.d.ts} +4 -4
- package/BaseFeatureWidget/{BaseFeatureDetail.js → BaseFeatureDetail/index.js} +12 -9
- package/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +4 -0
- package/BaseFeatureWidget/BaseFeatureDetail/util.js +23 -0
- package/BaseFeatureWidget/SequenceFeatureDetails/CDNASequence.d.ts +12 -0
- package/BaseFeatureWidget/SequenceFeatureDetails/CDNASequence.js +25 -0
- package/BaseFeatureWidget/SequenceFeatureDetails/CDSSequence.d.ts +5 -0
- package/BaseFeatureWidget/SequenceFeatureDetails/CDSSequence.js +12 -0
- package/BaseFeatureWidget/SequenceFeatureDetails/GenomicSequence.d.ts +5 -0
- package/BaseFeatureWidget/SequenceFeatureDetails/GenomicSequence.js +14 -0
- package/BaseFeatureWidget/SequenceFeatureDetails/ProteinSequence.d.ts +8 -0
- package/BaseFeatureWidget/SequenceFeatureDetails/ProteinSequence.js +18 -0
- package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +2 -0
- package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +146 -0
- package/BaseFeatureWidget/{SequenceFeatureSettingsDialog.d.ts → SequenceFeatureDetails/SequenceFeatureSettingsDialog.d.ts} +0 -1
- package/BaseFeatureWidget/{SequenceFeatureSettingsDialog.js → SequenceFeatureDetails/SequenceFeatureSettingsDialog.js} +1 -1
- package/BaseFeatureWidget/{SequenceHelpDialog.d.ts → SequenceFeatureDetails/SequenceHelpDialog.d.ts} +0 -1
- package/BaseFeatureWidget/{SequenceHelpDialog.js → SequenceFeatureDetails/SequenceHelpDialog.js} +6 -9
- package/BaseFeatureWidget/{SequencePanel.d.ts → SequenceFeatureDetails/SequencePanel.d.ts} +1 -1
- package/BaseFeatureWidget/{SequencePanel.js → SequenceFeatureDetails/SequencePanel.js} +10 -8
- package/BaseFeatureWidget/SequenceFeatureDetails/hooks.d.ts +10 -0
- package/BaseFeatureWidget/SequenceFeatureDetails/hooks.js +73 -0
- package/BaseFeatureWidget/SequenceFeatureDetails/index.d.ts +2 -0
- package/BaseFeatureWidget/SequenceFeatureDetails/index.js +68 -0
- package/BaseFeatureWidget/SequenceFeatureDetails/util.d.ts +6 -0
- package/BaseFeatureWidget/SequenceFeatureDetails/util.js +11 -0
- package/BaseFeatureWidget/index.d.ts +4 -1
- package/BaseFeatureWidget/index.js +29 -17
- package/BaseFeatureWidget/types.d.ts +2 -2
- package/Plugin.d.ts +1 -1
- package/PluginLoader.js +17 -0
- package/PluginManager.d.ts +5 -2
- package/PluginManager.js +3 -0
- package/ReExports/list.js +1 -0
- package/ReExports/modules.d.ts +5 -2
- package/ReExports/modules.js +7 -4
- package/TextSearch/TextSearchManager.d.ts +2 -9
- package/assemblyManager/assembly.d.ts +91 -8
- package/assemblyManager/assembly.js +92 -8
- package/assemblyManager/assemblyConfigSchema.d.ts +50 -1
- package/assemblyManager/assemblyManager.d.ts +115 -58
- package/assemblyManager/assemblyManager.js +60 -12
- package/configuration/configurationSchema.d.ts +14 -16
- package/configuration/configurationSchema.js +4 -2
- package/configuration/index.d.ts +1 -1
- package/configuration/types.d.ts +13 -0
- package/configuration/types.js +2 -0
- package/configuration/util.d.ts +5 -3
- package/configuration/util.js +18 -18
- package/data_adapters/BaseAdapter/BaseAdapter.d.ts +23 -0
- package/data_adapters/BaseAdapter/BaseAdapter.js +37 -0
- package/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +128 -0
- package/data_adapters/{BaseAdapter.js → BaseAdapter/BaseFeatureDataAdapter.js} +58 -88
- package/data_adapters/BaseAdapter/BaseOptions.d.ts +16 -0
- package/data_adapters/BaseAdapter/BaseOptions.js +2 -0
- package/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +9 -0
- package/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.js +2 -0
- package/data_adapters/BaseAdapter/BaseSequenceAdapter.d.ts +13 -0
- package/data_adapters/BaseAdapter/BaseSequenceAdapter.js +10 -0
- package/data_adapters/BaseAdapter/BaseTextSearchAdapter.d.ts +6 -0
- package/data_adapters/BaseAdapter/BaseTextSearchAdapter.js +2 -0
- package/data_adapters/BaseAdapter/RegionsAdapter.d.ts +6 -0
- package/data_adapters/BaseAdapter/RegionsAdapter.js +2 -0
- package/data_adapters/BaseAdapter/index.d.ts +15 -0
- package/data_adapters/BaseAdapter/index.js +25 -0
- package/data_adapters/BaseAdapter/types.d.ts +21 -0
- package/data_adapters/BaseAdapter/types.js +2 -0
- package/data_adapters/BaseAdapter/util.d.ts +12 -0
- package/data_adapters/BaseAdapter/util.js +23 -0
- package/data_adapters/CytobandAdapter/configSchema.d.ts +11 -1
- package/package.json +4 -4
- package/pluggableElementTypes/AdapterType.d.ts +1 -1
- package/pluggableElementTypes/ConnectionType.d.ts +1 -1
- package/pluggableElementTypes/DisplayType.d.ts +1 -1
- package/pluggableElementTypes/InternetAccountType.d.ts +1 -1
- package/pluggableElementTypes/TextSearchAdapterType.d.ts +1 -1
- package/pluggableElementTypes/models/BaseTrackModel.d.ts +1 -1
- package/pluggableElementTypes/models/BaseTrackModel.js +3 -2
- package/pluggableElementTypes/models/InternetAccountModel.d.ts +30 -0
- package/pluggableElementTypes/models/InternetAccountModel.js +6 -1
- package/pluggableElementTypes/models/baseConnectionConfig.d.ts +18 -1
- package/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +42 -1
- package/pluggableElementTypes/models/baseTrackConfig.d.ts +118 -1
- package/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +0 -1
- package/pluggableElementTypes/renderers/FeatureRendererType.d.ts +1 -1
- package/pluggableElementTypes/renderers/RendererType.d.ts +1 -1
- package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.d.ts +0 -1
- package/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +1 -1
- package/rpc/RpcManager.d.ts +8 -1
- package/rpc/RpcManager.js +1 -1
- package/rpc/baseRpcConfig.d.ts +10 -1
- package/rpc/configSchema.d.ts +14 -1
- package/rpc/coreRpcMethods.d.ts +1 -1
- package/rpc/coreRpcMethods.js +3 -3
- package/rpc/mainThreadRpcConfig.d.ts +7 -1
- package/rpc/methods/{CoreEstimateRegionStats.d.ts → CoreGetFeatureDensityStats.d.ts} +2 -2
- package/rpc/methods/{CoreEstimateRegionStats.js → CoreGetFeatureDensityStats.js} +4 -4
- package/rpc/methods/CoreGetFeatureDetails.js +5 -5
- package/rpc/webWorkerRpcConfig.d.ts +7 -1
- package/tsconfig.build.tsbuildinfo +1 -1
- package/ui/AboutDialog.d.ts +0 -1
- package/ui/AppLogo.d.ts +0 -1
- package/ui/AssemblySelector.d.ts +0 -1
- package/ui/CascadingMenu.d.ts +0 -1
- package/ui/ColorPicker.d.ts +0 -1
- package/ui/Dialog.d.ts +0 -1
- package/ui/Dialog.js +14 -1
- package/ui/DrawerWidget.d.ts +1 -2
- package/ui/DrawerWidget.js +5 -3
- package/ui/DropDownMenu.d.ts +0 -1
- package/ui/ErrorMessage.d.ts +0 -1
- package/ui/FactoryResetDialog.d.ts +0 -1
- package/ui/FatalErrorDialog.d.ts +0 -1
- package/ui/FileSelector/FileSelector.d.ts +0 -1
- package/ui/FileSelector/LocalFileChooser.d.ts +0 -1
- package/ui/FileSelector/UrlChooser.d.ts +0 -1
- package/ui/Icons.d.ts +0 -1
- package/ui/LoadingEllipses.d.ts +0 -1
- package/ui/Logo.d.ts +0 -1
- package/ui/PrerenderedCanvas.d.ts +0 -1
- package/ui/ResizeBar.js +1 -1
- package/ui/ResizeHandle.d.ts +0 -1
- package/ui/ReturnToImportFormDialog.d.ts +0 -1
- package/ui/SanitizedHTML.d.ts +0 -1
- package/ui/SanitizedHTML.js +6 -0
- package/ui/Snackbar.d.ts +0 -1
- package/ui/Tooltip.d.ts +0 -1
- package/ui/ViewContainerTitle.d.ts +0 -1
- package/ui/ViewLauncher.d.ts +0 -1
- package/ui/ViewMenu.d.ts +1 -2
- package/ui/ViewPanel.d.ts +0 -1
- package/ui/react-colorful.d.ts +1 -1
- package/ui/theme.js +3 -18
- package/util/index.d.ts +4 -2
- package/util/index.js +13 -4
- package/util/layouts/PrecomputedMultiLayout.d.ts +1 -1
- package/util/stats.d.ts +5 -5
- package/util/types/index.d.ts +3 -1
- package/util/types/mst.d.ts +12 -9
- package/BaseFeatureWidget/SequenceBox.d.ts +0 -29
- package/BaseFeatureWidget/SequenceBox.js +0 -63
- package/BaseFeatureWidget/SequenceFeatureDetails.d.ts +0 -3
- package/BaseFeatureWidget/SequenceFeatureDetails.js +0 -230
- package/data_adapters/BaseAdapter.d.ts +0 -138
- /package/BaseFeatureWidget/{test_data → SequenceFeatureDetails/test_data}/DLGAP3.d.ts +0 -0
- /package/BaseFeatureWidget/{test_data → SequenceFeatureDetails/test_data}/DLGAP3.js +0 -0
- /package/BaseFeatureWidget/{test_data → SequenceFeatureDetails/test_data}/NCDN.d.ts +0 -0
- /package/BaseFeatureWidget/{test_data → SequenceFeatureDetails/test_data}/NCDN.js +0 -0
package/ui/AboutDialog.d.ts
CHANGED
package/ui/AppLogo.d.ts
CHANGED
package/ui/AssemblySelector.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import { InputProps as IIP, TextFieldProps as TFP } from '@mui/material';
|
|
3
2
|
import { AbstractSessionModel } from '../util';
|
|
4
3
|
declare const AssemblySelector: ({ session, onChange, selected, InputProps, TextFieldProps, localStorageKey, helperText, }: {
|
package/ui/CascadingMenu.d.ts
CHANGED
package/ui/ColorPicker.d.ts
CHANGED
package/ui/Dialog.d.ts
CHANGED
package/ui/Dialog.js
CHANGED
|
@@ -27,6 +27,7 @@ function DialogError({ error }) {
|
|
|
27
27
|
function JBrowseDialog(props) {
|
|
28
28
|
const { classes } = useStyles();
|
|
29
29
|
const { title, children, onClose } = props;
|
|
30
|
+
const theme = (0, material_1.useTheme)();
|
|
30
31
|
return (react_1.default.createElement(material_1.Dialog, { ...props },
|
|
31
32
|
react_1.default.createElement(material_1.ScopedCssBaseline, null,
|
|
32
33
|
react_1.default.createElement(material_1.DialogTitle, null,
|
|
@@ -37,6 +38,18 @@ function JBrowseDialog(props) {
|
|
|
37
38
|
} },
|
|
38
39
|
react_1.default.createElement(Close_1.default, null))) : null),
|
|
39
40
|
react_1.default.createElement(material_1.Divider, null),
|
|
40
|
-
react_1.default.createElement(react_error_boundary_1.ErrorBoundary, { FallbackComponent: DialogError },
|
|
41
|
+
react_1.default.createElement(react_error_boundary_1.ErrorBoundary, { FallbackComponent: DialogError },
|
|
42
|
+
react_1.default.createElement(material_1.ThemeProvider, { theme: (0, material_1.createTheme)(theme, {
|
|
43
|
+
components: {
|
|
44
|
+
MuiInputBase: {
|
|
45
|
+
styleOverrides: {
|
|
46
|
+
input: {
|
|
47
|
+
// xref https://github.com/GMOD/jbrowse-components/pull/3666
|
|
48
|
+
boxSizing: 'content-box!important',
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
}) }, children)))));
|
|
41
54
|
}
|
|
42
55
|
exports.default = (0, mobx_react_1.observer)(JBrowseDialog);
|
package/ui/DrawerWidget.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import { SessionWithDrawerWidgets } from '../util/types';
|
|
3
|
-
declare const DrawerWidget: ({ session }: {
|
|
2
|
+
declare const DrawerWidget: ({ session, }: {
|
|
4
3
|
session: SessionWithDrawerWidgets;
|
|
5
4
|
}) => JSX.Element;
|
|
6
5
|
export default DrawerWidget;
|
package/ui/DrawerWidget.js
CHANGED
|
@@ -59,7 +59,7 @@ const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
|
59
59
|
background: theme.palette.secondary.main,
|
|
60
60
|
},
|
|
61
61
|
}));
|
|
62
|
-
const DrawerHeader = (0, mobx_react_1.observer)(({ session, setToolbarHeight, })
|
|
62
|
+
const DrawerHeader = (0, mobx_react_1.observer)(function ({ session, setToolbarHeight, }) {
|
|
63
63
|
const { pluginManager } = (0, util_1.getEnv)(session);
|
|
64
64
|
const { visibleWidget, activeWidgets, drawerPosition } = session;
|
|
65
65
|
const { classes } = useStyles();
|
|
@@ -109,7 +109,7 @@ const DrawerHeader = (0, mobx_react_1.observer)(({ session, setToolbarHeight, })
|
|
|
109
109
|
setAnchorEl(null);
|
|
110
110
|
} }, option))))));
|
|
111
111
|
});
|
|
112
|
-
const DrawerWidget = (0, mobx_react_1.observer)(({ session })
|
|
112
|
+
const DrawerWidget = (0, mobx_react_1.observer)(function ({ session, }) {
|
|
113
113
|
const { visibleWidget } = session;
|
|
114
114
|
const { pluginManager } = (0, util_1.getEnv)(session);
|
|
115
115
|
const DrawerComponent = visibleWidget
|
|
@@ -125,6 +125,8 @@ const DrawerWidget = (0, mobx_react_1.observer)(({ session }) => {
|
|
|
125
125
|
return (react_1.default.createElement(Drawer_1.default, { session: session },
|
|
126
126
|
react_1.default.createElement(DrawerHeader, { session: session, setToolbarHeight: setToolbarHeight }),
|
|
127
127
|
react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement(LoadingEllipses_1.default, null) },
|
|
128
|
-
react_1.default.createElement(react_error_boundary_1.ErrorBoundary, { FallbackComponent: ({ error }) => react_1.default.createElement(ErrorMessage_1.default, { error: error }) }, DrawerComponent ? (react_1.default.createElement(
|
|
128
|
+
react_1.default.createElement(react_error_boundary_1.ErrorBoundary, { FallbackComponent: ({ error }) => react_1.default.createElement(ErrorMessage_1.default, { error: error }) }, DrawerComponent ? (react_1.default.createElement(react_1.default.Fragment, null,
|
|
129
|
+
react_1.default.createElement(DrawerComponent, { model: visibleWidget, session: session, toolbarHeight: toolbarHeight }),
|
|
130
|
+
react_1.default.createElement("div", { style: { height: 300 } }))) : null))));
|
|
129
131
|
});
|
|
130
132
|
exports.default = DrawerWidget;
|
package/ui/DropDownMenu.d.ts
CHANGED
package/ui/ErrorMessage.d.ts
CHANGED
package/ui/FatalErrorDialog.d.ts
CHANGED
package/ui/Icons.d.ts
CHANGED
package/ui/LoadingEllipses.d.ts
CHANGED
package/ui/Logo.d.ts
CHANGED
package/ui/ResizeBar.js
CHANGED
package/ui/ResizeHandle.d.ts
CHANGED
package/ui/SanitizedHTML.d.ts
CHANGED
package/ui/SanitizedHTML.js
CHANGED
|
@@ -53,6 +53,12 @@ function isHTML(str) {
|
|
|
53
53
|
return full.test(str);
|
|
54
54
|
}
|
|
55
55
|
exports.isHTML = isHTML;
|
|
56
|
+
// note this is mocked during testing, see
|
|
57
|
+
// packages/__mocks__/@jbrowse/core/ui/SanitizedHTML something about dompurify
|
|
58
|
+
// behavior causes errors during tests, was seen in
|
|
59
|
+
// products/jbrowse-web/src/tests/Connection.test.tsx test (can delete mock to
|
|
60
|
+
// see)
|
|
61
|
+
//
|
|
56
62
|
function SanitizedHTML({ html }) {
|
|
57
63
|
const value = isHTML(html) ? html : (0, escape_html_1.default)(html);
|
|
58
64
|
if (!added) {
|
package/ui/Snackbar.d.ts
CHANGED
package/ui/Tooltip.d.ts
CHANGED
package/ui/ViewLauncher.d.ts
CHANGED
package/ui/ViewMenu.d.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import { SvgIconProps, IconButtonProps as IconButtonPropsType } from '@mui/material';
|
|
3
2
|
import { IBaseViewModel } from '../pluggableElementTypes/models';
|
|
4
3
|
declare const ViewMenu: ({ model, IconButtonProps, IconProps, }: {
|
|
5
4
|
model: IBaseViewModel;
|
|
6
|
-
IconButtonProps?: IconButtonPropsType
|
|
5
|
+
IconButtonProps?: IconButtonPropsType | undefined;
|
|
7
6
|
IconProps: SvgIconProps;
|
|
8
7
|
}) => JSX.Element;
|
|
9
8
|
export default ViewMenu;
|
package/ui/ViewPanel.d.ts
CHANGED
package/ui/react-colorful.d.ts
CHANGED
|
@@ -13,5 +13,5 @@ declare function Ce(r: any): e.FunctionComponentElement<any>;
|
|
|
13
13
|
declare function me(r: any): e.FunctionComponentElement<any>;
|
|
14
14
|
declare function pe(r: any): e.FunctionComponentElement<any>;
|
|
15
15
|
declare function X(e: any): void;
|
|
16
|
-
import e from
|
|
16
|
+
import e from 'react';
|
|
17
17
|
export { Ne as HexColorInput, J as HexColorPicker, oe as HslColorPicker, le as HslStringColorPicker, Z as HslaColorPicker, re as HslaStringColorPicker, de as HsvColorPicker, he as HsvStringColorPicker, se as HsvaColorPicker, ue as HsvaStringColorPicker, _e as RgbColorPicker, Ce as RgbStringColorPicker, me as RgbaColorPicker, pe as RgbaStringColorPicker, X as setNonce };
|
package/ui/theme.js
CHANGED
|
@@ -246,11 +246,6 @@ function createDefaultProps(theme) {
|
|
|
246
246
|
transitionDuration: 0,
|
|
247
247
|
},
|
|
248
248
|
},
|
|
249
|
-
MuiMenuList: {
|
|
250
|
-
defaultProps: {
|
|
251
|
-
dense: true,
|
|
252
|
-
},
|
|
253
|
-
},
|
|
254
249
|
MuiMenuItem: {
|
|
255
250
|
defaultProps: {
|
|
256
251
|
dense: true,
|
|
@@ -266,8 +261,6 @@ function createDefaultProps(theme) {
|
|
|
266
261
|
styleOverrides: {
|
|
267
262
|
// the default link color uses theme.palette.primary.main which is
|
|
268
263
|
// very bad with dark mode+midnight primary
|
|
269
|
-
//
|
|
270
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
271
264
|
root: ({ theme }) => ({
|
|
272
265
|
color: theme.palette.text.secondary,
|
|
273
266
|
}),
|
|
@@ -282,10 +275,7 @@ function createDefaultProps(theme) {
|
|
|
282
275
|
// keeps the forest-green checkbox by default but for darkmode, uses
|
|
283
276
|
// a text-like coloring to ensure contrast
|
|
284
277
|
// xref https://stackoverflow.com/a/72546130/2129219
|
|
285
|
-
|
|
286
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
287
|
-
root: (props) => {
|
|
288
|
-
const { theme } = props;
|
|
278
|
+
root: ({ theme }) => {
|
|
289
279
|
return theme.palette.mode === 'dark'
|
|
290
280
|
? {
|
|
291
281
|
color: theme.palette.text.secondary,
|
|
@@ -306,10 +296,7 @@ function createDefaultProps(theme) {
|
|
|
306
296
|
// keeps the forest-green checkbox by default but for darkmode, uses
|
|
307
297
|
// a text-like coloring to ensure contrast
|
|
308
298
|
// xref https://stackoverflow.com/a/72546130/2129219
|
|
309
|
-
|
|
310
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
311
|
-
root: (props) => {
|
|
312
|
-
const { theme } = props;
|
|
299
|
+
root: ({ theme }) => {
|
|
313
300
|
return theme.palette.mode === 'dark'
|
|
314
301
|
? {
|
|
315
302
|
color: theme.palette.text.secondary,
|
|
@@ -331,9 +318,7 @@ function createDefaultProps(theme) {
|
|
|
331
318
|
// a text-like coloring to ensure contrast
|
|
332
319
|
// xref https://stackoverflow.com/a/72546130/2129219
|
|
333
320
|
//
|
|
334
|
-
|
|
335
|
-
root: (props) => {
|
|
336
|
-
const { theme } = props;
|
|
321
|
+
root: ({ theme }) => {
|
|
337
322
|
return theme.palette.mode === 'dark'
|
|
338
323
|
? {
|
|
339
324
|
color: theme.palette.text.secondary,
|
package/util/index.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import PluginManager from '../PluginManager';
|
|
3
|
-
import { IAnyStateTreeNode, IStateTreeNode } from 'mobx-state-tree';
|
|
3
|
+
import { IAnyStateTreeNode, IStateTreeNode, Instance } from 'mobx-state-tree';
|
|
4
4
|
import { IReactionPublic, IReactionOptions } from 'mobx';
|
|
5
5
|
import { Feature } from './simpleFeature';
|
|
6
6
|
import { AssemblyManager, Region, TypeTestedByPredicate } from './types';
|
|
7
|
+
import { Region as MUIRegion } from './types/mst';
|
|
7
8
|
import { BaseBlock } from './blockTypes';
|
|
8
9
|
export * from './types';
|
|
9
10
|
export * from './aborting';
|
|
@@ -165,6 +166,7 @@ export declare function iterMap<T, U>(iter: Iterable<T>, func: (arg: T) => U, si
|
|
|
165
166
|
* Otherwise, findLastIndex returns -1.
|
|
166
167
|
*/
|
|
167
168
|
export declare function findLastIndex<T>(array: Array<T>, predicate: (value: T, index: number, obj: T[]) => boolean): number;
|
|
169
|
+
export declare function findLast<T>(array: Array<T>, predicate: (value: T, index: number, obj: T[]) => boolean): T | undefined;
|
|
168
170
|
/**
|
|
169
171
|
* makes a mobx reaction with the given functions, that calls actions on the
|
|
170
172
|
* model for each stage of execution, and to abort the reaction function when
|
|
@@ -183,7 +185,7 @@ export declare function findLastIndex<T>(array: Array<T>, predicate: (value: T,
|
|
|
183
185
|
* @param errorFunction -
|
|
184
186
|
*/
|
|
185
187
|
export declare function makeAbortableReaction<T, U, V>(self: T, dataFunction: (arg: T) => U, asyncReactionFunction: (arg: U | undefined, signal: AbortSignal, model: T, handle: IReactionPublic) => Promise<V>, reactionOptions: IReactionOptions, startedFunction: (aborter: AbortController) => void, successFunction: (arg: V) => void, errorFunction: (err: unknown) => void): void;
|
|
186
|
-
export declare function renameRegionIfNeeded(refNameMap: Record<string, string>, region: Region): Region & {
|
|
188
|
+
export declare function renameRegionIfNeeded(refNameMap: Record<string, string>, region: Region | Instance<typeof MUIRegion>): Region & {
|
|
187
189
|
originalRefName?: string;
|
|
188
190
|
};
|
|
189
191
|
export declare function renameRegionsIfNeeded<ARGTYPE extends {
|
package/util/index.js
CHANGED
|
@@ -17,8 +17,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.
|
|
21
|
-
exports.isFeature = exports.SimpleFeature = exports.avg = exports.sum = exports.min = exports.max = exports.localStorageSetItem = exports.localStorageGetItem = exports.getEnv = exports.measureGridWidth = exports.getStr = exports.getUriLink = exports.useLocalStorage = exports.getLayoutId = exports.getViewParams = exports.getTickDisplayStr = exports.toLocale = exports.getBpDisplayStr = void 0;
|
|
20
|
+
exports.bytesForRegions = exports.objectHash = exports.hashCode = exports.updateStatus = exports.generateCodonTable = exports.defaultCodonTable = exports.defaultStops = exports.defaultStarts = exports.measureText = exports.rIC = exports.blobToDataURL = exports.complement = exports.reverse = exports.revcom = exports.isElectron = exports.stringify = exports.shorten = exports.minmax = exports.renameRegionsIfNeeded = exports.renameRegionIfNeeded = exports.makeAbortableReaction = exports.findLast = exports.findLastIndex = exports.iterMap = exports.bpSpanPx = exports.featureSpanPx = exports.cartesianToPolar = exports.polarToCartesian = exports.degToRad = exports.radToDeg = exports.bpToPx = exports.clamp = exports.compareLocStrings = exports.compareLocs = exports.parseLocString = exports.parseLocStringOneBased = exports.assembleLocStringFast = exports.assembleLocString = exports.getContainingDisplay = exports.getContainingTrack = exports.getContainingView = exports.getSession = exports.findParentThatIs = exports.springAnimate = exports.findParentThat = exports.useDebouncedCallback = exports.useWidthSetter = exports.useDebounce = exports.inProduction = exports.inDevelopment = void 0;
|
|
21
|
+
exports.isFeature = exports.SimpleFeature = exports.avg = exports.sum = exports.min = exports.max = exports.localStorageSetItem = exports.localStorageGetItem = exports.getEnv = exports.measureGridWidth = exports.getStr = exports.getUriLink = exports.useLocalStorage = exports.getLayoutId = exports.getViewParams = exports.getTickDisplayStr = exports.toLocale = exports.getBpDisplayStr = exports.supportedIndexingAdapters = void 0;
|
|
22
22
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
23
23
|
const react_1 = require("react");
|
|
24
24
|
const is_object_1 = __importDefault(require("is-object"));
|
|
@@ -534,6 +534,16 @@ function findLastIndex(array, predicate) {
|
|
|
534
534
|
return -1;
|
|
535
535
|
}
|
|
536
536
|
exports.findLastIndex = findLastIndex;
|
|
537
|
+
function findLast(array, predicate) {
|
|
538
|
+
let l = array.length;
|
|
539
|
+
while (l--) {
|
|
540
|
+
if (predicate(array[l], l, array)) {
|
|
541
|
+
return array[l];
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
return undefined;
|
|
545
|
+
}
|
|
546
|
+
exports.findLast = findLast;
|
|
537
547
|
/**
|
|
538
548
|
* makes a mobx reaction with the given functions, that calls actions on the
|
|
539
549
|
* model for each stage of execution, and to abort the reaction function when
|
|
@@ -613,8 +623,7 @@ function renameRegionIfNeeded(refNameMap, region) {
|
|
|
613
623
|
if (region && (refNameMap === null || refNameMap === void 0 ? void 0 : refNameMap[region.refName])) {
|
|
614
624
|
// clone the region so we don't modify it
|
|
615
625
|
region = (0, mobx_state_tree_1.isStateTreeNode)(region)
|
|
616
|
-
?
|
|
617
|
-
{ ...(0, mobx_state_tree_1.getSnapshot)(region) }
|
|
626
|
+
? { ...(0, mobx_state_tree_1.getSnapshot)(region) }
|
|
618
627
|
: { ...region };
|
|
619
628
|
// modify it directly in the container
|
|
620
629
|
const newRef = refNameMap[region.refName];
|
package/util/stats.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
2
|
import { NoAssemblyRegion } from './types';
|
|
3
3
|
import { Feature } from './simpleFeature';
|
|
4
|
-
export interface
|
|
4
|
+
export interface UnrectifiedQuantitativeStats {
|
|
5
5
|
scoreMin: number;
|
|
6
6
|
scoreMax: number;
|
|
7
7
|
scoreSum: number;
|
|
@@ -9,7 +9,7 @@ export interface UnrectifiedFeatureStats {
|
|
|
9
9
|
featureCount: number;
|
|
10
10
|
basesCovered: number;
|
|
11
11
|
}
|
|
12
|
-
export interface
|
|
12
|
+
export interface QuantitativeStats extends UnrectifiedQuantitativeStats {
|
|
13
13
|
featureDensity: number;
|
|
14
14
|
scoreMean: number;
|
|
15
15
|
scoreStdDev: number;
|
|
@@ -31,7 +31,7 @@ export declare function calcStdFromSums(sum: number, sumSquares: number, n: numb
|
|
|
31
31
|
* @returns - a summary stats object with
|
|
32
32
|
* scoreMean, scoreStdDev, and featureDensity added
|
|
33
33
|
*/
|
|
34
|
-
export declare function rectifyStats(s:
|
|
34
|
+
export declare function rectifyStats(s: UnrectifiedQuantitativeStats): QuantitativeStats;
|
|
35
35
|
/**
|
|
36
36
|
* calculates per-base scores for variable width features over a region
|
|
37
37
|
*
|
|
@@ -47,5 +47,5 @@ export declare function calcPerBaseStats(region: NoAssemblyRegion, features: Fea
|
|
|
47
47
|
* @param features - array of features which are possibly summary features
|
|
48
48
|
* @returns - object with scoreMax, scoreMin, scoreSum, scoreSumSquares, etc
|
|
49
49
|
*/
|
|
50
|
-
export declare function scoresToStats(region: NoAssemblyRegion, feats: Observable<Feature>): Promise<
|
|
51
|
-
export declare function blankStats():
|
|
50
|
+
export declare function scoresToStats(region: NoAssemblyRegion, feats: Observable<Feature>): Promise<QuantitativeStats>;
|
|
51
|
+
export declare function blankStats(): QuantitativeStats;
|
package/util/types/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Instance, SnapshotIn, IAnyStateTreeNode, IStateTreeNode, IType } from 'mobx-state-tree';
|
|
3
|
-
import { AnyConfigurationModel } from '../../configuration
|
|
3
|
+
import { AnyConfigurationModel } from '../../configuration';
|
|
4
4
|
import assemblyManager from '../../assemblyManager';
|
|
5
5
|
import TextSearchManager from '../../TextSearch/TextSearchManager';
|
|
6
6
|
import { MenuItem } from '../../ui';
|
|
@@ -65,6 +65,7 @@ export interface AbstractSessionModel extends AbstractViewContainer {
|
|
|
65
65
|
name: string;
|
|
66
66
|
connectionId: string;
|
|
67
67
|
tracks: AnyConfigurationModel[];
|
|
68
|
+
configuration: AnyConfigurationModel;
|
|
68
69
|
}[];
|
|
69
70
|
makeConnection?: Function;
|
|
70
71
|
adminMode?: boolean;
|
|
@@ -144,6 +145,7 @@ export interface AbstractViewModel {
|
|
|
144
145
|
export declare function isViewModel(thing: unknown): thing is AbstractViewModel;
|
|
145
146
|
export interface AbstractTrackModel {
|
|
146
147
|
displays: AbstractDisplayModel[];
|
|
148
|
+
configuration: AnyConfigurationModel;
|
|
147
149
|
}
|
|
148
150
|
export declare function isTrackModel(thing: unknown): thing is AbstractTrackModel;
|
|
149
151
|
export interface AbstractDisplayModel {
|
package/util/types/mst.d.ts
CHANGED
|
@@ -99,7 +99,17 @@ export declare const FileLocation: import("mobx-state-tree").ISnapshotProcessor<
|
|
|
99
99
|
}> | import("mobx-state-tree").ModelSnapshotType<{
|
|
100
100
|
locationType: import("mobx-state-tree").ISimpleType<"LocalPathLocation">;
|
|
101
101
|
localPath: import("mobx-state-tree").ISimpleType<string>;
|
|
102
|
-
}>, import("mobx-state-tree").
|
|
102
|
+
}>, import("mobx-state-tree").ModelInstanceType<{
|
|
103
|
+
locationType: import("mobx-state-tree").ISimpleType<"BlobLocation">;
|
|
104
|
+
name: import("mobx-state-tree").ISimpleType<string>;
|
|
105
|
+
blobId: import("mobx-state-tree").ISimpleType<string>;
|
|
106
|
+
}, {}> | import("mobx-state-tree").ModelInstanceType<{
|
|
107
|
+
locationType: import("mobx-state-tree").ISimpleType<"LocalPathLocation">;
|
|
108
|
+
localPath: import("mobx-state-tree").ISimpleType<string>;
|
|
109
|
+
}, {}> | ({
|
|
110
|
+
locationType: "UriLocation";
|
|
111
|
+
uri: string;
|
|
112
|
+
} & Partial<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
|
|
103
113
|
locationType: import("mobx-state-tree").ISimpleType<"UriLocation">;
|
|
104
114
|
uri: import("mobx-state-tree").ISimpleType<string>;
|
|
105
115
|
baseUri: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
@@ -108,11 +118,4 @@ export declare const FileLocation: import("mobx-state-tree").ISnapshotProcessor<
|
|
|
108
118
|
internetAccountType: import("mobx-state-tree").ISimpleType<string>;
|
|
109
119
|
authInfo: import("mobx-state-tree").IType<any, any, any>;
|
|
110
120
|
}, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
111
|
-
}>>
|
|
112
|
-
locationType: import("mobx-state-tree").ISimpleType<"BlobLocation">;
|
|
113
|
-
name: import("mobx-state-tree").ISimpleType<string>;
|
|
114
|
-
blobId: import("mobx-state-tree").ISimpleType<string>;
|
|
115
|
-
}, {}> | import("mobx-state-tree").ModelInstanceType<{
|
|
116
|
-
locationType: import("mobx-state-tree").ISimpleType<"LocalPathLocation">;
|
|
117
|
-
localPath: import("mobx-state-tree").ISimpleType<string>;
|
|
118
|
-
}, {}>>, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
121
|
+
}>> & import("mobx-state-tree/dist/internal").NonEmptyObject)>, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { Feat } from './util';
|
|
3
|
-
export declare function GeneCDS({ cds, sequence }: {
|
|
4
|
-
cds: Feat[];
|
|
5
|
-
sequence: string;
|
|
6
|
-
}): JSX.Element;
|
|
7
|
-
export declare function GeneProtein({ cds, sequence, codonTable, }: {
|
|
8
|
-
cds: Feat[];
|
|
9
|
-
sequence: string;
|
|
10
|
-
codonTable: {
|
|
11
|
-
[key: string]: string;
|
|
12
|
-
};
|
|
13
|
-
}): JSX.Element;
|
|
14
|
-
export declare function GenecDNA({ utr, cds, exons, sequence, upstream, downstream, includeIntrons, collapseIntron, intronBp, }: {
|
|
15
|
-
utr: Feat[];
|
|
16
|
-
cds: Feat[];
|
|
17
|
-
exons: Feat[];
|
|
18
|
-
sequence: string;
|
|
19
|
-
upstream?: string;
|
|
20
|
-
downstream?: string;
|
|
21
|
-
includeIntrons?: boolean;
|
|
22
|
-
collapseIntron?: boolean;
|
|
23
|
-
intronBp: number;
|
|
24
|
-
}): JSX.Element;
|
|
25
|
-
export declare function Genomic({ sequence, upstream, downstream, }: {
|
|
26
|
-
sequence: string;
|
|
27
|
-
upstream?: string;
|
|
28
|
-
downstream?: string;
|
|
29
|
-
}): JSX.Element;
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Genomic = exports.GenecDNA = exports.GeneProtein = exports.GeneCDS = void 0;
|
|
7
|
-
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const util_1 = require("./util");
|
|
9
|
-
// note that these are currently put into the style section instead of being
|
|
10
|
-
// defined in classes to aid copy and paste to an external document e.g. word
|
|
11
|
-
const proteinColor = 'rgb(220,160,220)';
|
|
12
|
-
const intronColor = undefined;
|
|
13
|
-
const cdsColor = 'rgb(220,220,180)';
|
|
14
|
-
const updownstreamColor = 'rgba(250,200,200)';
|
|
15
|
-
const utrColor = 'rgb(200,240,240)';
|
|
16
|
-
const genomeColor = 'rgb(200,280,200)';
|
|
17
|
-
function GeneCDS({ cds, sequence }) {
|
|
18
|
-
return react_1.default.createElement("span", { style: { background: cdsColor } }, (0, util_1.stitch)(cds, sequence));
|
|
19
|
-
}
|
|
20
|
-
exports.GeneCDS = GeneCDS;
|
|
21
|
-
function GeneProtein({ cds, sequence, codonTable, }) {
|
|
22
|
-
const str = (0, util_1.stitch)(cds, sequence);
|
|
23
|
-
let protein = '';
|
|
24
|
-
for (let i = 0; i < str.length; i += 3) {
|
|
25
|
-
// use & symbol for undefined codon, or partial slice
|
|
26
|
-
protein += codonTable[str.slice(i, i + 3)] || '&';
|
|
27
|
-
}
|
|
28
|
-
return react_1.default.createElement("span", { style: { background: proteinColor } }, protein);
|
|
29
|
-
}
|
|
30
|
-
exports.GeneProtein = GeneProtein;
|
|
31
|
-
function GenecDNA({ utr, cds, exons, sequence, upstream, downstream, includeIntrons, collapseIntron, intronBp, }) {
|
|
32
|
-
const chunks = (cds.length ? [...cds, ...utr].sort((a, b) => a.start - b.start) : exons).filter(f => f.start !== f.end);
|
|
33
|
-
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
34
|
-
upstream ? (react_1.default.createElement("span", { style: {
|
|
35
|
-
background: updownstreamColor,
|
|
36
|
-
} }, upstream)) : null,
|
|
37
|
-
chunks.map((chunk, idx) => {
|
|
38
|
-
var _a;
|
|
39
|
-
const intron = sequence.slice(chunk.end, (_a = chunks[idx + 1]) === null || _a === void 0 ? void 0 : _a.start);
|
|
40
|
-
return (react_1.default.createElement(react_1.default.Fragment, { key: JSON.stringify(chunk) },
|
|
41
|
-
react_1.default.createElement("span", { style: {
|
|
42
|
-
background: chunk.type === 'CDS' ? cdsColor : utrColor,
|
|
43
|
-
} }, sequence.slice(chunk.start, chunk.end)),
|
|
44
|
-
includeIntrons && idx < chunks.length - 1 ? (react_1.default.createElement("span", { style: { background: intronColor } }, collapseIntron && intron.length > intronBp * 2
|
|
45
|
-
? `${intron.slice(0, intronBp)}...${intron.slice(-intronBp)}`
|
|
46
|
-
: intron)) : null));
|
|
47
|
-
}),
|
|
48
|
-
downstream ? (react_1.default.createElement("span", { style: { background: updownstreamColor } }, downstream)) : null));
|
|
49
|
-
}
|
|
50
|
-
exports.GenecDNA = GenecDNA;
|
|
51
|
-
function Genomic({ sequence, upstream, downstream, }) {
|
|
52
|
-
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
53
|
-
upstream ? (react_1.default.createElement("span", { style: {
|
|
54
|
-
background: updownstreamColor,
|
|
55
|
-
} }, upstream)) : null,
|
|
56
|
-
react_1.default.createElement("span", { style: {
|
|
57
|
-
background: genomeColor,
|
|
58
|
-
} }, sequence),
|
|
59
|
-
downstream ? (react_1.default.createElement("span", { style: {
|
|
60
|
-
background: updownstreamColor,
|
|
61
|
-
} }, downstream)) : null));
|
|
62
|
-
}
|
|
63
|
-
exports.Genomic = Genomic;
|