@jbrowse/app-core 2.9.0 → 2.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AppFocus/index.d.ts +3 -0
- package/dist/AppFocus/index.js +3 -0
- package/dist/JBrowseConfig/index.d.ts +20 -4
- package/dist/JBrowseConfig/index.js +19 -1
- package/dist/JBrowseModel/index.d.ts +15 -4
- package/dist/JBrowseModel/index.js +11 -0
- package/dist/RootMenu/index.d.ts +22 -0
- package/dist/RootMenu/index.js +22 -0
- package/dist/ui/App/ViewMenu.d.ts +2 -2
- package/dist/ui/App/ViewMenu.js +18 -4
- package/esm/AppFocus/index.d.ts +3 -0
- package/esm/AppFocus/index.js +3 -0
- package/esm/JBrowseConfig/index.d.ts +20 -4
- package/esm/JBrowseConfig/index.js +19 -1
- package/esm/JBrowseModel/index.d.ts +15 -4
- package/esm/JBrowseModel/index.js +11 -0
- package/esm/RootMenu/index.d.ts +22 -0
- package/esm/RootMenu/index.js +22 -0
- package/esm/ui/App/ViewMenu.d.ts +2 -2
- package/esm/ui/App/ViewMenu.js +18 -4
- package/package.json +3 -4
package/dist/AppFocus/index.d.ts
CHANGED
|
@@ -9,5 +9,8 @@ export declare function AppFocusMixin(): import("mobx-state-tree").IModelType<{
|
|
|
9
9
|
*/
|
|
10
10
|
focusedViewId: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
11
11
|
}, {
|
|
12
|
+
/**
|
|
13
|
+
* #action
|
|
14
|
+
*/
|
|
12
15
|
setFocusedViewId(viewId: string): void;
|
|
13
16
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
package/dist/AppFocus/index.js
CHANGED
|
@@ -4,7 +4,22 @@ import PluginManager from '@jbrowse/core/PluginManager';
|
|
|
4
4
|
/**
|
|
5
5
|
* #config JBrowseRootConfig
|
|
6
6
|
* #category root
|
|
7
|
-
*
|
|
7
|
+
*
|
|
8
|
+
* this is a config model representing a config.json (for jbrowse-web) or
|
|
9
|
+
* somefile.jbrowse (for jbrowse-desktop, where configs have the .jbrowse
|
|
10
|
+
* extension)
|
|
11
|
+
*
|
|
12
|
+
* includes
|
|
13
|
+
* - [FormatDetails](../formatdetails) for global (instead of per-track)
|
|
14
|
+
* feature detail formatters
|
|
15
|
+
* - [FormatAbout](../formatabout) for global (instead of per-track) about
|
|
16
|
+
* track formatters
|
|
17
|
+
* - [HierarchicalConfigSchema](../hierarchicalconfigschema) for track selector
|
|
18
|
+
* configs
|
|
19
|
+
*
|
|
20
|
+
* also includes any pluginManager.pluginConfigurationSchemas(), so plugins
|
|
21
|
+
* that have a configurationSchema field on their class are mixed into this
|
|
22
|
+
* object
|
|
8
23
|
*/
|
|
9
24
|
export declare function JBrowseConfigF({ pluginManager, assemblyConfigSchema, }: {
|
|
10
25
|
pluginManager: PluginManager;
|
|
@@ -90,9 +105,7 @@ export declare function JBrowseConfigF({ pluginManager, assemblyConfigSchema, }:
|
|
|
90
105
|
defaultCollapsed: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
|
|
91
106
|
categoryNames: {
|
|
92
107
|
type: string;
|
|
93
|
-
defaultValue: never[];
|
|
94
|
-
* #slot configuration.highResolutionScaling
|
|
95
|
-
*/
|
|
108
|
+
defaultValue: never[];
|
|
96
109
|
};
|
|
97
110
|
topLevelCategories: {
|
|
98
111
|
type: string;
|
|
@@ -161,10 +174,13 @@ export declare function JBrowseConfigF({ pluginManager, assemblyConfigSchema, }:
|
|
|
161
174
|
internetAccounts: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyModelType>;
|
|
162
175
|
/**
|
|
163
176
|
* #slot
|
|
177
|
+
* configuration for aggregate text search adapters (created by e.g.
|
|
178
|
+
* jbrowse text-index, but can be a pluggable TextSearchAdapter type)
|
|
164
179
|
*/
|
|
165
180
|
aggregateTextSearchAdapters: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyModelType>;
|
|
166
181
|
/**
|
|
167
182
|
* #slot
|
|
183
|
+
* configuration for connections
|
|
168
184
|
*/
|
|
169
185
|
connections: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyModelType>;
|
|
170
186
|
/**
|
|
@@ -11,7 +11,22 @@ const mobx_state_tree_1 = require("mobx-state-tree");
|
|
|
11
11
|
/**
|
|
12
12
|
* #config JBrowseRootConfig
|
|
13
13
|
* #category root
|
|
14
|
-
*
|
|
14
|
+
*
|
|
15
|
+
* this is a config model representing a config.json (for jbrowse-web) or
|
|
16
|
+
* somefile.jbrowse (for jbrowse-desktop, where configs have the .jbrowse
|
|
17
|
+
* extension)
|
|
18
|
+
*
|
|
19
|
+
* includes
|
|
20
|
+
* - [FormatDetails](../formatdetails) for global (instead of per-track)
|
|
21
|
+
* feature detail formatters
|
|
22
|
+
* - [FormatAbout](../formatabout) for global (instead of per-track) about
|
|
23
|
+
* track formatters
|
|
24
|
+
* - [HierarchicalConfigSchema](../hierarchicalconfigschema) for track selector
|
|
25
|
+
* configs
|
|
26
|
+
*
|
|
27
|
+
* also includes any pluginManager.pluginConfigurationSchemas(), so plugins
|
|
28
|
+
* that have a configurationSchema field on their class are mixed into this
|
|
29
|
+
* object
|
|
15
30
|
*/
|
|
16
31
|
function JBrowseConfigF({ pluginManager, assemblyConfigSchema, }) {
|
|
17
32
|
return mobx_state_tree_1.types.model('JBrowseConfig', {
|
|
@@ -99,10 +114,13 @@ function JBrowseConfigF({ pluginManager, assemblyConfigSchema, }) {
|
|
|
99
114
|
internetAccounts: mobx_state_tree_1.types.array(pluginManager.pluggableConfigSchemaType('internet account')),
|
|
100
115
|
/**
|
|
101
116
|
* #slot
|
|
117
|
+
* configuration for aggregate text search adapters (created by e.g.
|
|
118
|
+
* jbrowse text-index, but can be a pluggable TextSearchAdapter type)
|
|
102
119
|
*/
|
|
103
120
|
aggregateTextSearchAdapters: mobx_state_tree_1.types.array(pluginManager.pluggableConfigSchemaType('text search adapter')),
|
|
104
121
|
/**
|
|
105
122
|
* #slot
|
|
123
|
+
* configuration for connections
|
|
106
124
|
*/
|
|
107
125
|
connections: mobx_state_tree_1.types.array(pluginManager.pluggableConfigSchemaType('connection')),
|
|
108
126
|
/**
|
|
@@ -3,6 +3,17 @@ import { BaseAssemblyConfigSchema } from '@jbrowse/core/assemblyManager';
|
|
|
3
3
|
import RpcManager from '@jbrowse/core/rpc/RpcManager';
|
|
4
4
|
import { AnyConfigurationModel } from '@jbrowse/core/configuration';
|
|
5
5
|
import { PluginDefinition } from '@jbrowse/core/PluginLoader';
|
|
6
|
+
/**
|
|
7
|
+
* #stateModel AppCoreJBrowseModel
|
|
8
|
+
* note that JBrowseRootConfig is a config model, but config models are MST
|
|
9
|
+
* trees themselves, which is why this stateModel is allowed to extend it
|
|
10
|
+
*
|
|
11
|
+
* the AppCoreJBrowseModel is generally on a property named rootModel.jbrowse
|
|
12
|
+
*
|
|
13
|
+
* extends
|
|
14
|
+
* - [JBrowseRootConfig](/docs/config/jbrowserootconfig)
|
|
15
|
+
|
|
16
|
+
*/
|
|
6
17
|
export declare function JBrowseModelF({ pluginManager, assemblyConfigSchema, }: {
|
|
7
18
|
pluginManager: PluginManager;
|
|
8
19
|
assemblyConfigSchema: BaseAssemblyConfigSchema;
|
|
@@ -15,9 +26,7 @@ export declare function JBrowseModelF({ pluginManager, assemblyConfigSchema, }:
|
|
|
15
26
|
defaultValue: string;
|
|
16
27
|
};
|
|
17
28
|
drivers: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IMapType<import("mobx-state-tree").ITypeUnion<import("mobx-state-tree").ModelCreationType<import("mobx-state-tree/dist/internal").ExtractCFromProps<Record<string, any>>> | undefined, import("mobx-state-tree").ModelSnapshotType<Record<string, any>>, (Partial<import("mobx-state-tree/dist/internal").ExtractCFromProps<Record<string, any>>> & import("mobx-state-tree/dist/internal").NonEmptyObject) | undefined>>, [undefined]>;
|
|
18
|
-
}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
|
|
19
|
-
* #getter
|
|
20
|
-
*/
|
|
29
|
+
}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
|
|
21
30
|
highResolutionScaling: {
|
|
22
31
|
type: string;
|
|
23
32
|
defaultValue: number;
|
|
@@ -87,7 +96,9 @@ export declare function JBrowseModelF({ pluginManager, assemblyConfigSchema, }:
|
|
|
87
96
|
defaultValue: boolean;
|
|
88
97
|
};
|
|
89
98
|
subCategories: {
|
|
90
|
-
type: string;
|
|
99
|
+
type: string; /**
|
|
100
|
+
* #getter
|
|
101
|
+
*/
|
|
91
102
|
defaultValue: boolean;
|
|
92
103
|
};
|
|
93
104
|
}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
|
|
@@ -6,6 +6,17 @@ const configuration_1 = require("@jbrowse/core/configuration");
|
|
|
6
6
|
const mobx_1 = require("mobx");
|
|
7
7
|
// locals
|
|
8
8
|
const JBrowseConfig_1 = require("../JBrowseConfig");
|
|
9
|
+
/**
|
|
10
|
+
* #stateModel AppCoreJBrowseModel
|
|
11
|
+
* note that JBrowseRootConfig is a config model, but config models are MST
|
|
12
|
+
* trees themselves, which is why this stateModel is allowed to extend it
|
|
13
|
+
*
|
|
14
|
+
* the AppCoreJBrowseModel is generally on a property named rootModel.jbrowse
|
|
15
|
+
*
|
|
16
|
+
* extends
|
|
17
|
+
* - [JBrowseRootConfig](/docs/config/jbrowserootconfig)
|
|
18
|
+
|
|
19
|
+
*/
|
|
9
20
|
function JBrowseModelF({ pluginManager, assemblyConfigSchema, }) {
|
|
10
21
|
return (0, JBrowseConfig_1.JBrowseConfigF)({ pluginManager, assemblyConfigSchema })
|
|
11
22
|
.views(self => ({
|
package/dist/RootMenu/index.d.ts
CHANGED
|
@@ -3,6 +3,9 @@ export interface Menu {
|
|
|
3
3
|
label: string;
|
|
4
4
|
menuItems: MenuItem[];
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* #stateModel RootAppMenuMixin
|
|
8
|
+
*/
|
|
6
9
|
export declare function RootAppMenuMixin(): import("mobx-state-tree").IModelType<{}, {
|
|
7
10
|
/**
|
|
8
11
|
* #action
|
|
@@ -11,57 +14,76 @@ export declare function RootAppMenuMixin(): import("mobx-state-tree").IModelType
|
|
|
11
14
|
/**
|
|
12
15
|
* #action
|
|
13
16
|
* Add a top-level menu
|
|
17
|
+
*
|
|
14
18
|
* @param menuName - Name of the menu to insert.
|
|
19
|
+
*
|
|
15
20
|
* @returns The new length of the top-level menus array
|
|
16
21
|
*/
|
|
17
22
|
appendMenu(menuName: string): number;
|
|
18
23
|
/**
|
|
19
24
|
* #action
|
|
20
25
|
* Insert a top-level menu
|
|
26
|
+
*
|
|
21
27
|
* @param menuName - Name of the menu to insert.
|
|
28
|
+
*
|
|
22
29
|
* @param position - Position to insert menu. If negative, counts from th
|
|
23
30
|
* end, e.g. `insertMenu('My Menu', -1)` will insert the menu as the
|
|
24
31
|
* second-to-last one.
|
|
32
|
+
*
|
|
25
33
|
* @returns The new length of the top-level menus array
|
|
26
34
|
*/
|
|
27
35
|
insertMenu(menuName: string, position: number): number;
|
|
28
36
|
/**
|
|
29
37
|
* #action
|
|
30
38
|
* Add a menu item to a top-level menu
|
|
39
|
+
*
|
|
31
40
|
* @param menuName - Name of the top-level menu to append to.
|
|
41
|
+
*
|
|
32
42
|
* @param menuItem - Menu item to append.
|
|
43
|
+
*
|
|
33
44
|
* @returns The new length of the menu
|
|
34
45
|
*/
|
|
35
46
|
appendToMenu(menuName: string, menuItem: MenuItem): number;
|
|
36
47
|
/**
|
|
37
48
|
* #action
|
|
38
49
|
* Insert a menu item into a top-level menu
|
|
50
|
+
*
|
|
39
51
|
* @param menuName - Name of the top-level menu to insert into
|
|
52
|
+
*
|
|
40
53
|
* @param menuItem - Menu item to insert
|
|
54
|
+
*
|
|
41
55
|
* @param position - Position to insert menu item. If negative, counts
|
|
42
56
|
* from the end, e.g. `insertMenu('My Menu', -1)` will insert the menu as
|
|
43
57
|
* the second-to-last one.
|
|
58
|
+
*
|
|
44
59
|
* @returns The new length of the menu
|
|
45
60
|
*/
|
|
46
61
|
insertInMenu(menuName: string, menuItem: MenuItem, position: number): number;
|
|
47
62
|
/**
|
|
48
63
|
* #action
|
|
49
64
|
* Add a menu item to a sub-menu
|
|
65
|
+
*
|
|
50
66
|
* @param menuPath - Path to the sub-menu to add to, starting with the
|
|
51
67
|
* top-level menu (e.g. `['File', 'Insert']`).
|
|
68
|
+
*
|
|
52
69
|
* @param menuItem - Menu item to append.
|
|
70
|
+
*
|
|
53
71
|
* @returns The new length of the sub-menu
|
|
54
72
|
*/
|
|
55
73
|
appendToSubMenu(menuPath: string[], menuItem: MenuItem): number;
|
|
56
74
|
/**
|
|
57
75
|
* #action
|
|
58
76
|
* Insert a menu item into a sub-menu
|
|
77
|
+
*
|
|
59
78
|
* @param menuPath - Path to the sub-menu to add to, starting with the
|
|
60
79
|
* top-level menu (e.g. `['File', 'Insert']`).
|
|
80
|
+
*
|
|
61
81
|
* @param menuItem - Menu item to insert.
|
|
82
|
+
*
|
|
62
83
|
* @param position - Position to insert menu item. If negative, counts
|
|
63
84
|
* from the end, e.g. `insertMenu('My Menu', -1)` will insert the menu as
|
|
64
85
|
* the second-to-last one.
|
|
86
|
+
*
|
|
65
87
|
* @returns The new length of the sub-menu
|
|
66
88
|
*/
|
|
67
89
|
insertInSubMenu(menuPath: string[], menuItem: MenuItem, position: number): number;
|
package/dist/RootMenu/index.js
CHANGED
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RootAppMenuMixin = void 0;
|
|
4
4
|
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
5
|
+
/**
|
|
6
|
+
* #stateModel RootAppMenuMixin
|
|
7
|
+
*/
|
|
5
8
|
function RootAppMenuMixin() {
|
|
6
9
|
return mobx_state_tree_1.types.model({}).actions(s => {
|
|
7
10
|
const self = s;
|
|
@@ -15,7 +18,9 @@ function RootAppMenuMixin() {
|
|
|
15
18
|
/**
|
|
16
19
|
* #action
|
|
17
20
|
* Add a top-level menu
|
|
21
|
+
*
|
|
18
22
|
* @param menuName - Name of the menu to insert.
|
|
23
|
+
*
|
|
19
24
|
* @returns The new length of the top-level menus array
|
|
20
25
|
*/
|
|
21
26
|
appendMenu(menuName) {
|
|
@@ -24,10 +29,13 @@ function RootAppMenuMixin() {
|
|
|
24
29
|
/**
|
|
25
30
|
* #action
|
|
26
31
|
* Insert a top-level menu
|
|
32
|
+
*
|
|
27
33
|
* @param menuName - Name of the menu to insert.
|
|
34
|
+
*
|
|
28
35
|
* @param position - Position to insert menu. If negative, counts from th
|
|
29
36
|
* end, e.g. `insertMenu('My Menu', -1)` will insert the menu as the
|
|
30
37
|
* second-to-last one.
|
|
38
|
+
*
|
|
31
39
|
* @returns The new length of the top-level menus array
|
|
32
40
|
*/
|
|
33
41
|
insertMenu(menuName, position) {
|
|
@@ -40,8 +48,11 @@ function RootAppMenuMixin() {
|
|
|
40
48
|
/**
|
|
41
49
|
* #action
|
|
42
50
|
* Add a menu item to a top-level menu
|
|
51
|
+
*
|
|
43
52
|
* @param menuName - Name of the top-level menu to append to.
|
|
53
|
+
*
|
|
44
54
|
* @param menuItem - Menu item to append.
|
|
55
|
+
*
|
|
45
56
|
* @returns The new length of the menu
|
|
46
57
|
*/
|
|
47
58
|
appendToMenu(menuName, menuItem) {
|
|
@@ -55,11 +66,15 @@ function RootAppMenuMixin() {
|
|
|
55
66
|
/**
|
|
56
67
|
* #action
|
|
57
68
|
* Insert a menu item into a top-level menu
|
|
69
|
+
*
|
|
58
70
|
* @param menuName - Name of the top-level menu to insert into
|
|
71
|
+
*
|
|
59
72
|
* @param menuItem - Menu item to insert
|
|
73
|
+
*
|
|
60
74
|
* @param position - Position to insert menu item. If negative, counts
|
|
61
75
|
* from the end, e.g. `insertMenu('My Menu', -1)` will insert the menu as
|
|
62
76
|
* the second-to-last one.
|
|
77
|
+
*
|
|
63
78
|
* @returns The new length of the menu
|
|
64
79
|
*/
|
|
65
80
|
insertInMenu(menuName, menuItem, position) {
|
|
@@ -75,9 +90,12 @@ function RootAppMenuMixin() {
|
|
|
75
90
|
/**
|
|
76
91
|
* #action
|
|
77
92
|
* Add a menu item to a sub-menu
|
|
93
|
+
*
|
|
78
94
|
* @param menuPath - Path to the sub-menu to add to, starting with the
|
|
79
95
|
* top-level menu (e.g. `['File', 'Insert']`).
|
|
96
|
+
*
|
|
80
97
|
* @param menuItem - Menu item to append.
|
|
98
|
+
*
|
|
81
99
|
* @returns The new length of the sub-menu
|
|
82
100
|
*/
|
|
83
101
|
appendToSubMenu(menuPath, menuItem) {
|
|
@@ -105,12 +123,16 @@ function RootAppMenuMixin() {
|
|
|
105
123
|
/**
|
|
106
124
|
* #action
|
|
107
125
|
* Insert a menu item into a sub-menu
|
|
126
|
+
*
|
|
108
127
|
* @param menuPath - Path to the sub-menu to add to, starting with the
|
|
109
128
|
* top-level menu (e.g. `['File', 'Insert']`).
|
|
129
|
+
*
|
|
110
130
|
* @param menuItem - Menu item to insert.
|
|
131
|
+
*
|
|
111
132
|
* @param position - Position to insert menu item. If negative, counts
|
|
112
133
|
* from the end, e.g. `insertMenu('My Menu', -1)` will insert the menu as
|
|
113
134
|
* the second-to-last one.
|
|
135
|
+
*
|
|
114
136
|
* @returns The new length of the sub-menu
|
|
115
137
|
*/
|
|
116
138
|
insertInSubMenu(menuPath, menuItem, position) {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { SvgIconProps, IconButtonProps as IconButtonPropsType } from '@mui/material';
|
|
3
3
|
import { IBaseViewModel } from '@jbrowse/core/pluggableElementTypes/models';
|
|
4
|
-
declare const ViewMenu: ({ model, IconProps, }: {
|
|
4
|
+
declare const ViewMenu: ({ model, IconButtonProps, IconProps, }: {
|
|
5
5
|
model: IBaseViewModel;
|
|
6
6
|
IconButtonProps?: IconButtonPropsType | undefined;
|
|
7
7
|
IconProps: SvgIconProps;
|
|
8
|
-
}) => React.JSX.Element
|
|
8
|
+
}) => React.JSX.Element;
|
|
9
9
|
export default ViewMenu;
|
package/dist/ui/App/ViewMenu.js
CHANGED
|
@@ -4,16 +4,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const react_1 = __importDefault(require("react"));
|
|
7
|
+
const material_1 = require("@mui/material");
|
|
7
8
|
const mobx_react_1 = require("mobx-react");
|
|
8
9
|
const util_1 = require("@jbrowse/core/util");
|
|
9
|
-
const
|
|
10
|
+
const hooks_1 = require("material-ui-popup-state/hooks");
|
|
11
|
+
const CascadingMenu_1 = __importDefault(require("@jbrowse/core/ui/CascadingMenu"));
|
|
10
12
|
// icons
|
|
11
13
|
const Menu_1 = __importDefault(require("@mui/icons-material/Menu"));
|
|
12
14
|
const ArrowDownward_1 = __importDefault(require("@mui/icons-material/ArrowDownward"));
|
|
13
15
|
const ArrowUpward_1 = __importDefault(require("@mui/icons-material/ArrowUpward"));
|
|
14
|
-
const ViewMenu = (0, mobx_react_1.observer)(function ({ model, IconProps, }) {
|
|
16
|
+
const ViewMenu = (0, mobx_react_1.observer)(function ({ model, IconButtonProps, IconProps, }) {
|
|
15
17
|
const { menuItems } = model;
|
|
16
18
|
const session = (0, util_1.getSession)(model);
|
|
19
|
+
const popupState = (0, hooks_1.usePopupState)({
|
|
20
|
+
popupId: 'viewMenu',
|
|
21
|
+
variant: 'popover',
|
|
22
|
+
});
|
|
17
23
|
const items = [
|
|
18
24
|
...(session.views.length > 1
|
|
19
25
|
? [
|
|
@@ -32,7 +38,15 @@ const ViewMenu = (0, mobx_react_1.observer)(function ({ model, IconProps, }) {
|
|
|
32
38
|
// <=1.3.3 didn't use a function, so check as value also
|
|
33
39
|
...((typeof menuItems === 'function' ? menuItems() : menuItems) || []),
|
|
34
40
|
];
|
|
35
|
-
|
|
36
|
-
|
|
41
|
+
// note: This does not use CascadingMenuButton on purpose, because there was a confusing bug related to it!
|
|
42
|
+
// see https://github.com/GMOD/jbrowse-components/issues/4115
|
|
43
|
+
//
|
|
44
|
+
// Make sure to test the Breakpoint split view menu checkboxes if you intend to change this
|
|
45
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
46
|
+
react_1.default.createElement(material_1.IconButton, { ...IconButtonProps, ...(0, hooks_1.bindTrigger)(popupState), "data-testid": "view_menu_icon" },
|
|
47
|
+
react_1.default.createElement(Menu_1.default, { ...IconProps, fontSize: "small" })),
|
|
48
|
+
react_1.default.createElement(CascadingMenu_1.default, { ...(0, hooks_1.bindPopover)(popupState), onMenuItemClick: (_event, callback) => {
|
|
49
|
+
callback();
|
|
50
|
+
}, menuItems: items, popupState: popupState })));
|
|
37
51
|
});
|
|
38
52
|
exports.default = ViewMenu;
|
package/esm/AppFocus/index.d.ts
CHANGED
|
@@ -9,5 +9,8 @@ export declare function AppFocusMixin(): import("mobx-state-tree").IModelType<{
|
|
|
9
9
|
*/
|
|
10
10
|
focusedViewId: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
11
11
|
}, {
|
|
12
|
+
/**
|
|
13
|
+
* #action
|
|
14
|
+
*/
|
|
12
15
|
setFocusedViewId(viewId: string): void;
|
|
13
16
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
package/esm/AppFocus/index.js
CHANGED
|
@@ -4,7 +4,22 @@ import PluginManager from '@jbrowse/core/PluginManager';
|
|
|
4
4
|
/**
|
|
5
5
|
* #config JBrowseRootConfig
|
|
6
6
|
* #category root
|
|
7
|
-
*
|
|
7
|
+
*
|
|
8
|
+
* this is a config model representing a config.json (for jbrowse-web) or
|
|
9
|
+
* somefile.jbrowse (for jbrowse-desktop, where configs have the .jbrowse
|
|
10
|
+
* extension)
|
|
11
|
+
*
|
|
12
|
+
* includes
|
|
13
|
+
* - [FormatDetails](../formatdetails) for global (instead of per-track)
|
|
14
|
+
* feature detail formatters
|
|
15
|
+
* - [FormatAbout](../formatabout) for global (instead of per-track) about
|
|
16
|
+
* track formatters
|
|
17
|
+
* - [HierarchicalConfigSchema](../hierarchicalconfigschema) for track selector
|
|
18
|
+
* configs
|
|
19
|
+
*
|
|
20
|
+
* also includes any pluginManager.pluginConfigurationSchemas(), so plugins
|
|
21
|
+
* that have a configurationSchema field on their class are mixed into this
|
|
22
|
+
* object
|
|
8
23
|
*/
|
|
9
24
|
export declare function JBrowseConfigF({ pluginManager, assemblyConfigSchema, }: {
|
|
10
25
|
pluginManager: PluginManager;
|
|
@@ -90,9 +105,7 @@ export declare function JBrowseConfigF({ pluginManager, assemblyConfigSchema, }:
|
|
|
90
105
|
defaultCollapsed: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
|
|
91
106
|
categoryNames: {
|
|
92
107
|
type: string;
|
|
93
|
-
defaultValue: never[];
|
|
94
|
-
* #slot configuration.highResolutionScaling
|
|
95
|
-
*/
|
|
108
|
+
defaultValue: never[];
|
|
96
109
|
};
|
|
97
110
|
topLevelCategories: {
|
|
98
111
|
type: string;
|
|
@@ -161,10 +174,13 @@ export declare function JBrowseConfigF({ pluginManager, assemblyConfigSchema, }:
|
|
|
161
174
|
internetAccounts: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyModelType>;
|
|
162
175
|
/**
|
|
163
176
|
* #slot
|
|
177
|
+
* configuration for aggregate text search adapters (created by e.g.
|
|
178
|
+
* jbrowse text-index, but can be a pluggable TextSearchAdapter type)
|
|
164
179
|
*/
|
|
165
180
|
aggregateTextSearchAdapters: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyModelType>;
|
|
166
181
|
/**
|
|
167
182
|
* #slot
|
|
183
|
+
* configuration for connections
|
|
168
184
|
*/
|
|
169
185
|
connections: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyModelType>;
|
|
170
186
|
/**
|
|
@@ -5,7 +5,22 @@ import { types } from 'mobx-state-tree';
|
|
|
5
5
|
/**
|
|
6
6
|
* #config JBrowseRootConfig
|
|
7
7
|
* #category root
|
|
8
|
-
*
|
|
8
|
+
*
|
|
9
|
+
* this is a config model representing a config.json (for jbrowse-web) or
|
|
10
|
+
* somefile.jbrowse (for jbrowse-desktop, where configs have the .jbrowse
|
|
11
|
+
* extension)
|
|
12
|
+
*
|
|
13
|
+
* includes
|
|
14
|
+
* - [FormatDetails](../formatdetails) for global (instead of per-track)
|
|
15
|
+
* feature detail formatters
|
|
16
|
+
* - [FormatAbout](../formatabout) for global (instead of per-track) about
|
|
17
|
+
* track formatters
|
|
18
|
+
* - [HierarchicalConfigSchema](../hierarchicalconfigschema) for track selector
|
|
19
|
+
* configs
|
|
20
|
+
*
|
|
21
|
+
* also includes any pluginManager.pluginConfigurationSchemas(), so plugins
|
|
22
|
+
* that have a configurationSchema field on their class are mixed into this
|
|
23
|
+
* object
|
|
9
24
|
*/
|
|
10
25
|
export function JBrowseConfigF({ pluginManager, assemblyConfigSchema, }) {
|
|
11
26
|
return types.model('JBrowseConfig', {
|
|
@@ -93,10 +108,13 @@ export function JBrowseConfigF({ pluginManager, assemblyConfigSchema, }) {
|
|
|
93
108
|
internetAccounts: types.array(pluginManager.pluggableConfigSchemaType('internet account')),
|
|
94
109
|
/**
|
|
95
110
|
* #slot
|
|
111
|
+
* configuration for aggregate text search adapters (created by e.g.
|
|
112
|
+
* jbrowse text-index, but can be a pluggable TextSearchAdapter type)
|
|
96
113
|
*/
|
|
97
114
|
aggregateTextSearchAdapters: types.array(pluginManager.pluggableConfigSchemaType('text search adapter')),
|
|
98
115
|
/**
|
|
99
116
|
* #slot
|
|
117
|
+
* configuration for connections
|
|
100
118
|
*/
|
|
101
119
|
connections: types.array(pluginManager.pluggableConfigSchemaType('connection')),
|
|
102
120
|
/**
|
|
@@ -3,6 +3,17 @@ import { BaseAssemblyConfigSchema } from '@jbrowse/core/assemblyManager';
|
|
|
3
3
|
import RpcManager from '@jbrowse/core/rpc/RpcManager';
|
|
4
4
|
import { AnyConfigurationModel } from '@jbrowse/core/configuration';
|
|
5
5
|
import { PluginDefinition } from '@jbrowse/core/PluginLoader';
|
|
6
|
+
/**
|
|
7
|
+
* #stateModel AppCoreJBrowseModel
|
|
8
|
+
* note that JBrowseRootConfig is a config model, but config models are MST
|
|
9
|
+
* trees themselves, which is why this stateModel is allowed to extend it
|
|
10
|
+
*
|
|
11
|
+
* the AppCoreJBrowseModel is generally on a property named rootModel.jbrowse
|
|
12
|
+
*
|
|
13
|
+
* extends
|
|
14
|
+
* - [JBrowseRootConfig](/docs/config/jbrowserootconfig)
|
|
15
|
+
|
|
16
|
+
*/
|
|
6
17
|
export declare function JBrowseModelF({ pluginManager, assemblyConfigSchema, }: {
|
|
7
18
|
pluginManager: PluginManager;
|
|
8
19
|
assemblyConfigSchema: BaseAssemblyConfigSchema;
|
|
@@ -15,9 +26,7 @@ export declare function JBrowseModelF({ pluginManager, assemblyConfigSchema, }:
|
|
|
15
26
|
defaultValue: string;
|
|
16
27
|
};
|
|
17
28
|
drivers: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IMapType<import("mobx-state-tree").ITypeUnion<import("mobx-state-tree").ModelCreationType<import("mobx-state-tree/dist/internal").ExtractCFromProps<Record<string, any>>> | undefined, import("mobx-state-tree").ModelSnapshotType<Record<string, any>>, (Partial<import("mobx-state-tree/dist/internal").ExtractCFromProps<Record<string, any>>> & import("mobx-state-tree/dist/internal").NonEmptyObject) | undefined>>, [undefined]>;
|
|
18
|
-
}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
|
|
19
|
-
* #getter
|
|
20
|
-
*/
|
|
29
|
+
}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
|
|
21
30
|
highResolutionScaling: {
|
|
22
31
|
type: string;
|
|
23
32
|
defaultValue: number;
|
|
@@ -87,7 +96,9 @@ export declare function JBrowseModelF({ pluginManager, assemblyConfigSchema, }:
|
|
|
87
96
|
defaultValue: boolean;
|
|
88
97
|
};
|
|
89
98
|
subCategories: {
|
|
90
|
-
type: string;
|
|
99
|
+
type: string; /**
|
|
100
|
+
* #getter
|
|
101
|
+
*/
|
|
91
102
|
defaultValue: boolean;
|
|
92
103
|
};
|
|
93
104
|
}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
|
|
@@ -3,6 +3,17 @@ import { readConfObject, } from '@jbrowse/core/configuration';
|
|
|
3
3
|
import { toJS } from 'mobx';
|
|
4
4
|
// locals
|
|
5
5
|
import { JBrowseConfigF } from '../JBrowseConfig';
|
|
6
|
+
/**
|
|
7
|
+
* #stateModel AppCoreJBrowseModel
|
|
8
|
+
* note that JBrowseRootConfig is a config model, but config models are MST
|
|
9
|
+
* trees themselves, which is why this stateModel is allowed to extend it
|
|
10
|
+
*
|
|
11
|
+
* the AppCoreJBrowseModel is generally on a property named rootModel.jbrowse
|
|
12
|
+
*
|
|
13
|
+
* extends
|
|
14
|
+
* - [JBrowseRootConfig](/docs/config/jbrowserootconfig)
|
|
15
|
+
|
|
16
|
+
*/
|
|
6
17
|
export function JBrowseModelF({ pluginManager, assemblyConfigSchema, }) {
|
|
7
18
|
return JBrowseConfigF({ pluginManager, assemblyConfigSchema })
|
|
8
19
|
.views(self => ({
|
package/esm/RootMenu/index.d.ts
CHANGED
|
@@ -3,6 +3,9 @@ export interface Menu {
|
|
|
3
3
|
label: string;
|
|
4
4
|
menuItems: MenuItem[];
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* #stateModel RootAppMenuMixin
|
|
8
|
+
*/
|
|
6
9
|
export declare function RootAppMenuMixin(): import("mobx-state-tree").IModelType<{}, {
|
|
7
10
|
/**
|
|
8
11
|
* #action
|
|
@@ -11,57 +14,76 @@ export declare function RootAppMenuMixin(): import("mobx-state-tree").IModelType
|
|
|
11
14
|
/**
|
|
12
15
|
* #action
|
|
13
16
|
* Add a top-level menu
|
|
17
|
+
*
|
|
14
18
|
* @param menuName - Name of the menu to insert.
|
|
19
|
+
*
|
|
15
20
|
* @returns The new length of the top-level menus array
|
|
16
21
|
*/
|
|
17
22
|
appendMenu(menuName: string): number;
|
|
18
23
|
/**
|
|
19
24
|
* #action
|
|
20
25
|
* Insert a top-level menu
|
|
26
|
+
*
|
|
21
27
|
* @param menuName - Name of the menu to insert.
|
|
28
|
+
*
|
|
22
29
|
* @param position - Position to insert menu. If negative, counts from th
|
|
23
30
|
* end, e.g. `insertMenu('My Menu', -1)` will insert the menu as the
|
|
24
31
|
* second-to-last one.
|
|
32
|
+
*
|
|
25
33
|
* @returns The new length of the top-level menus array
|
|
26
34
|
*/
|
|
27
35
|
insertMenu(menuName: string, position: number): number;
|
|
28
36
|
/**
|
|
29
37
|
* #action
|
|
30
38
|
* Add a menu item to a top-level menu
|
|
39
|
+
*
|
|
31
40
|
* @param menuName - Name of the top-level menu to append to.
|
|
41
|
+
*
|
|
32
42
|
* @param menuItem - Menu item to append.
|
|
43
|
+
*
|
|
33
44
|
* @returns The new length of the menu
|
|
34
45
|
*/
|
|
35
46
|
appendToMenu(menuName: string, menuItem: MenuItem): number;
|
|
36
47
|
/**
|
|
37
48
|
* #action
|
|
38
49
|
* Insert a menu item into a top-level menu
|
|
50
|
+
*
|
|
39
51
|
* @param menuName - Name of the top-level menu to insert into
|
|
52
|
+
*
|
|
40
53
|
* @param menuItem - Menu item to insert
|
|
54
|
+
*
|
|
41
55
|
* @param position - Position to insert menu item. If negative, counts
|
|
42
56
|
* from the end, e.g. `insertMenu('My Menu', -1)` will insert the menu as
|
|
43
57
|
* the second-to-last one.
|
|
58
|
+
*
|
|
44
59
|
* @returns The new length of the menu
|
|
45
60
|
*/
|
|
46
61
|
insertInMenu(menuName: string, menuItem: MenuItem, position: number): number;
|
|
47
62
|
/**
|
|
48
63
|
* #action
|
|
49
64
|
* Add a menu item to a sub-menu
|
|
65
|
+
*
|
|
50
66
|
* @param menuPath - Path to the sub-menu to add to, starting with the
|
|
51
67
|
* top-level menu (e.g. `['File', 'Insert']`).
|
|
68
|
+
*
|
|
52
69
|
* @param menuItem - Menu item to append.
|
|
70
|
+
*
|
|
53
71
|
* @returns The new length of the sub-menu
|
|
54
72
|
*/
|
|
55
73
|
appendToSubMenu(menuPath: string[], menuItem: MenuItem): number;
|
|
56
74
|
/**
|
|
57
75
|
* #action
|
|
58
76
|
* Insert a menu item into a sub-menu
|
|
77
|
+
*
|
|
59
78
|
* @param menuPath - Path to the sub-menu to add to, starting with the
|
|
60
79
|
* top-level menu (e.g. `['File', 'Insert']`).
|
|
80
|
+
*
|
|
61
81
|
* @param menuItem - Menu item to insert.
|
|
82
|
+
*
|
|
62
83
|
* @param position - Position to insert menu item. If negative, counts
|
|
63
84
|
* from the end, e.g. `insertMenu('My Menu', -1)` will insert the menu as
|
|
64
85
|
* the second-to-last one.
|
|
86
|
+
*
|
|
65
87
|
* @returns The new length of the sub-menu
|
|
66
88
|
*/
|
|
67
89
|
insertInSubMenu(menuPath: string[], menuItem: MenuItem, position: number): number;
|
package/esm/RootMenu/index.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { types } from 'mobx-state-tree';
|
|
2
|
+
/**
|
|
3
|
+
* #stateModel RootAppMenuMixin
|
|
4
|
+
*/
|
|
2
5
|
export function RootAppMenuMixin() {
|
|
3
6
|
return types.model({}).actions(s => {
|
|
4
7
|
const self = s;
|
|
@@ -12,7 +15,9 @@ export function RootAppMenuMixin() {
|
|
|
12
15
|
/**
|
|
13
16
|
* #action
|
|
14
17
|
* Add a top-level menu
|
|
18
|
+
*
|
|
15
19
|
* @param menuName - Name of the menu to insert.
|
|
20
|
+
*
|
|
16
21
|
* @returns The new length of the top-level menus array
|
|
17
22
|
*/
|
|
18
23
|
appendMenu(menuName) {
|
|
@@ -21,10 +26,13 @@ export function RootAppMenuMixin() {
|
|
|
21
26
|
/**
|
|
22
27
|
* #action
|
|
23
28
|
* Insert a top-level menu
|
|
29
|
+
*
|
|
24
30
|
* @param menuName - Name of the menu to insert.
|
|
31
|
+
*
|
|
25
32
|
* @param position - Position to insert menu. If negative, counts from th
|
|
26
33
|
* end, e.g. `insertMenu('My Menu', -1)` will insert the menu as the
|
|
27
34
|
* second-to-last one.
|
|
35
|
+
*
|
|
28
36
|
* @returns The new length of the top-level menus array
|
|
29
37
|
*/
|
|
30
38
|
insertMenu(menuName, position) {
|
|
@@ -37,8 +45,11 @@ export function RootAppMenuMixin() {
|
|
|
37
45
|
/**
|
|
38
46
|
* #action
|
|
39
47
|
* Add a menu item to a top-level menu
|
|
48
|
+
*
|
|
40
49
|
* @param menuName - Name of the top-level menu to append to.
|
|
50
|
+
*
|
|
41
51
|
* @param menuItem - Menu item to append.
|
|
52
|
+
*
|
|
42
53
|
* @returns The new length of the menu
|
|
43
54
|
*/
|
|
44
55
|
appendToMenu(menuName, menuItem) {
|
|
@@ -52,11 +63,15 @@ export function RootAppMenuMixin() {
|
|
|
52
63
|
/**
|
|
53
64
|
* #action
|
|
54
65
|
* Insert a menu item into a top-level menu
|
|
66
|
+
*
|
|
55
67
|
* @param menuName - Name of the top-level menu to insert into
|
|
68
|
+
*
|
|
56
69
|
* @param menuItem - Menu item to insert
|
|
70
|
+
*
|
|
57
71
|
* @param position - Position to insert menu item. If negative, counts
|
|
58
72
|
* from the end, e.g. `insertMenu('My Menu', -1)` will insert the menu as
|
|
59
73
|
* the second-to-last one.
|
|
74
|
+
*
|
|
60
75
|
* @returns The new length of the menu
|
|
61
76
|
*/
|
|
62
77
|
insertInMenu(menuName, menuItem, position) {
|
|
@@ -72,9 +87,12 @@ export function RootAppMenuMixin() {
|
|
|
72
87
|
/**
|
|
73
88
|
* #action
|
|
74
89
|
* Add a menu item to a sub-menu
|
|
90
|
+
*
|
|
75
91
|
* @param menuPath - Path to the sub-menu to add to, starting with the
|
|
76
92
|
* top-level menu (e.g. `['File', 'Insert']`).
|
|
93
|
+
*
|
|
77
94
|
* @param menuItem - Menu item to append.
|
|
95
|
+
*
|
|
78
96
|
* @returns The new length of the sub-menu
|
|
79
97
|
*/
|
|
80
98
|
appendToSubMenu(menuPath, menuItem) {
|
|
@@ -102,12 +120,16 @@ export function RootAppMenuMixin() {
|
|
|
102
120
|
/**
|
|
103
121
|
* #action
|
|
104
122
|
* Insert a menu item into a sub-menu
|
|
123
|
+
*
|
|
105
124
|
* @param menuPath - Path to the sub-menu to add to, starting with the
|
|
106
125
|
* top-level menu (e.g. `['File', 'Insert']`).
|
|
126
|
+
*
|
|
107
127
|
* @param menuItem - Menu item to insert.
|
|
128
|
+
*
|
|
108
129
|
* @param position - Position to insert menu item. If negative, counts
|
|
109
130
|
* from the end, e.g. `insertMenu('My Menu', -1)` will insert the menu as
|
|
110
131
|
* the second-to-last one.
|
|
132
|
+
*
|
|
111
133
|
* @returns The new length of the sub-menu
|
|
112
134
|
*/
|
|
113
135
|
insertInSubMenu(menuPath, menuItem, position) {
|
package/esm/ui/App/ViewMenu.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { SvgIconProps, IconButtonProps as IconButtonPropsType } from '@mui/material';
|
|
3
3
|
import { IBaseViewModel } from '@jbrowse/core/pluggableElementTypes/models';
|
|
4
|
-
declare const ViewMenu: ({ model, IconProps, }: {
|
|
4
|
+
declare const ViewMenu: ({ model, IconButtonProps, IconProps, }: {
|
|
5
5
|
model: IBaseViewModel;
|
|
6
6
|
IconButtonProps?: IconButtonPropsType | undefined;
|
|
7
7
|
IconProps: SvgIconProps;
|
|
8
|
-
}) => React.JSX.Element
|
|
8
|
+
}) => React.JSX.Element;
|
|
9
9
|
export default ViewMenu;
|
package/esm/ui/App/ViewMenu.js
CHANGED
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { IconButton, } from '@mui/material';
|
|
2
3
|
import { observer } from 'mobx-react';
|
|
3
4
|
import { getSession } from '@jbrowse/core/util';
|
|
4
|
-
import
|
|
5
|
+
import { bindTrigger, bindPopover, usePopupState, } from 'material-ui-popup-state/hooks';
|
|
6
|
+
import CascadingMenu from '@jbrowse/core/ui/CascadingMenu';
|
|
5
7
|
// icons
|
|
6
8
|
import MenuIcon from '@mui/icons-material/Menu';
|
|
7
9
|
import ArrowDownward from '@mui/icons-material/ArrowDownward';
|
|
8
10
|
import ArrowUpward from '@mui/icons-material/ArrowUpward';
|
|
9
|
-
const ViewMenu = observer(function ({ model, IconProps, }) {
|
|
11
|
+
const ViewMenu = observer(function ({ model, IconButtonProps, IconProps, }) {
|
|
10
12
|
const { menuItems } = model;
|
|
11
13
|
const session = getSession(model);
|
|
14
|
+
const popupState = usePopupState({
|
|
15
|
+
popupId: 'viewMenu',
|
|
16
|
+
variant: 'popover',
|
|
17
|
+
});
|
|
12
18
|
const items = [
|
|
13
19
|
...(session.views.length > 1
|
|
14
20
|
? [
|
|
@@ -27,7 +33,15 @@ const ViewMenu = observer(function ({ model, IconProps, }) {
|
|
|
27
33
|
// <=1.3.3 didn't use a function, so check as value also
|
|
28
34
|
...((typeof menuItems === 'function' ? menuItems() : menuItems) || []),
|
|
29
35
|
];
|
|
30
|
-
|
|
31
|
-
|
|
36
|
+
// note: This does not use CascadingMenuButton on purpose, because there was a confusing bug related to it!
|
|
37
|
+
// see https://github.com/GMOD/jbrowse-components/issues/4115
|
|
38
|
+
//
|
|
39
|
+
// Make sure to test the Breakpoint split view menu checkboxes if you intend to change this
|
|
40
|
+
return (React.createElement(React.Fragment, null,
|
|
41
|
+
React.createElement(IconButton, { ...IconButtonProps, ...bindTrigger(popupState), "data-testid": "view_menu_icon" },
|
|
42
|
+
React.createElement(MenuIcon, { ...IconProps, fontSize: "small" })),
|
|
43
|
+
React.createElement(CascadingMenu, { ...bindPopover(popupState), onMenuItemClick: (_event, callback) => {
|
|
44
|
+
callback();
|
|
45
|
+
}, menuItems: items, popupState: popupState })));
|
|
32
46
|
});
|
|
33
47
|
export default ViewMenu;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jbrowse/app-core",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.10.1",
|
|
4
4
|
"description": "JBrowse 2 code shared between the 'full featured' apps e.g. jbrowse-web and jbrowse-desktop",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jbrowse",
|
|
@@ -42,10 +42,9 @@
|
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"@babel/runtime": "^7.16.3",
|
|
45
|
-
"@jbrowse/product-core": "^2.
|
|
45
|
+
"@jbrowse/product-core": "^2.10.1",
|
|
46
46
|
"@mui/icons-material": "^5.0.0",
|
|
47
47
|
"@mui/material": "^5.10.17",
|
|
48
|
-
"clsx": "^2.0.0",
|
|
49
48
|
"copy-to-clipboard": "^3.3.1",
|
|
50
49
|
"react-error-boundary": "^4.0.3"
|
|
51
50
|
},
|
|
@@ -61,5 +60,5 @@
|
|
|
61
60
|
"publishConfig": {
|
|
62
61
|
"access": "public"
|
|
63
62
|
},
|
|
64
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "442b5f87efddfdf4ccf520b4d9dd01ddd370cb07"
|
|
65
64
|
}
|