@jbrowse/app-core 3.7.0 → 4.0.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/esm/AppFocus/index.d.ts +3 -3
- package/esm/AppFocus/index.js +1 -1
- package/esm/Assemblies/SessionAssembliesMixin.d.ts +47 -22
- package/esm/Assemblies/SessionAssembliesMixin.js +11 -1
- package/esm/Assemblies/TemporaryAssembliesMixin.d.ts +5 -3
- package/esm/Assemblies/TemporaryAssembliesMixin.js +11 -1
- package/esm/Assemblies/index.d.ts +2 -2
- package/esm/Assemblies/index.js +2 -2
- package/esm/DockviewLayout/index.d.ts +26 -0
- package/esm/DockviewLayout/index.js +107 -0
- package/esm/HistoryManagement/index.d.ts +7 -7
- package/esm/HistoryManagement/index.js +5 -6
- package/esm/JBrowseConfig/RootConfiguration.d.ts +15 -15
- package/esm/JBrowseConfig/index.d.ts +35 -25
- package/esm/JBrowseConfig/index.js +3 -3
- package/esm/JBrowseModel/index.d.ts +52 -34
- package/esm/JBrowseModel/index.js +15 -6
- package/esm/RootMenu/index.d.ts +3 -3
- package/esm/RootMenu/index.js +1 -1
- package/esm/index.d.ts +9 -8
- package/esm/index.js +9 -8
- package/esm/ui/App/App.d.ts +1 -1
- package/esm/ui/App/App.js +8 -8
- package/esm/ui/App/AppFab.js +2 -2
- package/esm/ui/App/AppToolbar.d.ts +1 -1
- package/esm/ui/App/AppToolbar.js +17 -3
- package/esm/ui/App/ClassicViewsContainer.d.ts +12 -0
- package/esm/ui/App/ClassicViewsContainer.js +21 -0
- package/esm/ui/App/DialogQueue.d.ts +2 -2
- package/esm/ui/App/DialogQueue.js +1 -1
- package/esm/ui/App/DockviewContext.d.ts +15 -0
- package/esm/ui/App/DockviewContext.js +21 -0
- package/esm/ui/App/DockviewLeftHeaderActions.d.ts +2 -0
- package/esm/ui/App/DockviewLeftHeaderActions.js +58 -0
- package/esm/ui/App/DockviewRightHeaderActions.d.ts +2 -0
- package/esm/ui/App/DockviewRightHeaderActions.js +100 -0
- package/esm/ui/App/Drawer.js +4 -5
- package/esm/ui/App/DrawerControls.js +1 -1
- package/esm/ui/App/DrawerHeader.js +16 -8
- package/{dist/ui/App/Drawer.d.ts → esm/ui/App/DrawerHeaderHelpButton.d.ts} +3 -3
- package/esm/ui/App/DrawerHeaderHelpButton.js +18 -0
- package/esm/ui/App/DrawerHeaderHelpDialog.d.ts +4 -0
- package/esm/ui/App/DrawerHeaderHelpDialog.js +15 -0
- package/esm/ui/App/DrawerWidget.js +4 -4
- package/esm/ui/App/DrawerWidgetSelector.js +3 -3
- package/esm/ui/App/JBrowseTabMenu.d.ts +5 -0
- package/esm/ui/App/JBrowseTabMenu.js +39 -0
- package/esm/ui/App/JBrowseViewPanel.d.ts +8 -0
- package/esm/ui/App/JBrowseViewPanel.js +49 -0
- package/esm/ui/App/JBrowseViewTab.d.ts +8 -0
- package/esm/ui/App/JBrowseViewTab.js +106 -0
- package/esm/ui/App/ModalWidget.js +3 -3
- package/esm/ui/App/TiledViewsContainer.d.ts +7 -0
- package/esm/ui/App/TiledViewsContainer.js +251 -0
- package/{dist/ui/App/ViewHeader.d.ts → esm/ui/App/ViewButtons.d.ts} +2 -3
- package/esm/ui/App/ViewButtons.js +17 -0
- package/esm/ui/App/ViewContainer.js +7 -8
- package/esm/ui/App/ViewContainerTitle.js +3 -4
- package/esm/ui/App/ViewHeader.js +7 -16
- package/esm/ui/App/ViewLauncher.d.ts +1 -1
- package/esm/ui/App/ViewLauncher.js +3 -4
- package/esm/ui/App/ViewMenu.d.ts +1 -1
- package/esm/ui/App/ViewMenu.js +113 -54
- package/esm/ui/App/ViewWrapper.js +1 -1
- package/esm/ui/App/ViewsContainer.d.ts +2 -2
- package/esm/ui/App/ViewsContainer.js +8 -6
- package/esm/ui/App/copyView.d.ts +1 -0
- package/esm/ui/App/copyView.js +29 -0
- package/esm/ui/App/dockviewUtils.d.ts +44 -0
- package/esm/ui/App/dockviewUtils.js +45 -0
- package/esm/ui/App/index.d.ts +2 -1
- package/esm/ui/App/index.js +2 -1
- package/esm/ui/App/types.d.ts +7 -0
- package/esm/ui/App/types.js +1 -0
- package/esm/ui/index.d.ts +1 -1
- package/esm/ui/index.js +1 -1
- package/package.json +27 -32
- package/dist/AppFocus/index.d.ts +0 -5
- package/dist/AppFocus/index.js +0 -15
- package/dist/Assemblies/SessionAssembliesMixin.d.ts +0 -67
- package/dist/Assemblies/SessionAssembliesMixin.js +0 -46
- package/dist/Assemblies/TemporaryAssembliesMixin.d.ts +0 -8
- package/dist/Assemblies/TemporaryAssembliesMixin.js +0 -30
- package/dist/Assemblies/index.d.ts +0 -2
- package/dist/Assemblies/index.js +0 -18
- package/dist/HistoryManagement/index.d.ts +0 -23
- package/dist/HistoryManagement/index.js +0 -47
- package/dist/JBrowseConfig/RootConfiguration.d.ts +0 -102
- package/dist/JBrowseConfig/RootConfiguration.js +0 -46
- package/dist/JBrowseConfig/index.d.ts +0 -115
- package/dist/JBrowseConfig/index.js +0 -26
- package/dist/JBrowseModel/index.d.ts +0 -142
- package/dist/JBrowseModel/index.js +0 -101
- package/dist/RootMenu/index.d.ts +0 -13
- package/dist/RootMenu/index.js +0 -74
- package/dist/index.d.ts +0 -8
- package/dist/index.js +0 -24
- package/dist/menus.d.ts +0 -74
- package/dist/menus.js +0 -108
- package/dist/ui/App/App.d.ts +0 -18
- package/dist/ui/App/App.js +0 -82
- package/dist/ui/App/AppFab.d.ts +0 -5
- package/dist/ui/App/AppFab.js +0 -32
- package/dist/ui/App/AppToolbar.d.ts +0 -18
- package/dist/ui/App/AppToolbar.js +0 -44
- package/dist/ui/App/DialogQueue.d.ts +0 -5
- package/dist/ui/App/DialogQueue.js +0 -10
- package/dist/ui/App/Drawer.js +0 -51
- package/dist/ui/App/DrawerControls.d.ts +0 -5
- package/dist/ui/App/DrawerControls.js +0 -30
- package/dist/ui/App/DrawerHeader.d.ts +0 -7
- package/dist/ui/App/DrawerHeader.js +0 -37
- package/dist/ui/App/DrawerWidget.d.ts +0 -5
- package/dist/ui/App/DrawerWidget.js +0 -65
- package/dist/ui/App/DrawerWidgetSelector.d.ts +0 -5
- package/dist/ui/App/DrawerWidgetSelector.js +0 -52
- package/dist/ui/App/ModalWidget.d.ts +0 -6
- package/dist/ui/App/ModalWidget.js +0 -53
- package/dist/ui/App/ViewContainer.d.ts +0 -6
- package/dist/ui/App/ViewContainer.js +0 -55
- package/dist/ui/App/ViewContainerTitle.d.ts +0 -5
- package/dist/ui/App/ViewContainerTitle.js +0 -44
- package/dist/ui/App/ViewHeader.js +0 -60
- package/dist/ui/App/ViewLauncher.d.ts +0 -11
- package/dist/ui/App/ViewLauncher.js +0 -29
- package/dist/ui/App/ViewMenu.d.ts +0 -8
- package/dist/ui/App/ViewMenu.js +0 -74
- package/dist/ui/App/ViewWrapper.d.ts +0 -6
- package/dist/ui/App/ViewWrapper.js +0 -23
- package/dist/ui/App/ViewsContainer.d.ts +0 -12
- package/dist/ui/App/ViewsContainer.js +0 -57
- package/dist/ui/App/index.d.ts +0 -1
- package/dist/ui/App/index.js +0 -17
- package/dist/ui/index.d.ts +0 -1
- package/dist/ui/index.js +0 -17
package/dist/menus.js
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.appendMenu = appendMenu;
|
|
4
|
-
exports.insertMenu = insertMenu;
|
|
5
|
-
exports.appendToMenu = appendToMenu;
|
|
6
|
-
exports.insertInMenu = insertInMenu;
|
|
7
|
-
exports.appendToSubMenu = appendToSubMenu;
|
|
8
|
-
exports.insertInSubMenu = insertInSubMenu;
|
|
9
|
-
exports.processMutableMenuActions = processMutableMenuActions;
|
|
10
|
-
function appendMenu({ menus, menuName, }) {
|
|
11
|
-
return menus.push({ label: menuName, menuItems: [] });
|
|
12
|
-
}
|
|
13
|
-
function insertMenu({ menus, menuName, position, }) {
|
|
14
|
-
menus.splice((position < 0 ? menus.length : 0) + position, 0, {
|
|
15
|
-
label: menuName,
|
|
16
|
-
menuItems: [],
|
|
17
|
-
});
|
|
18
|
-
return menus.length;
|
|
19
|
-
}
|
|
20
|
-
function appendToMenu({ menus, menuName, menuItem, }) {
|
|
21
|
-
const menu = menus.find(m => m.label === menuName);
|
|
22
|
-
if (!menu) {
|
|
23
|
-
menus.push({ label: menuName, menuItems: [menuItem] });
|
|
24
|
-
return 1;
|
|
25
|
-
}
|
|
26
|
-
return menu.menuItems.push(menuItem);
|
|
27
|
-
}
|
|
28
|
-
function insertInMenu({ menus, menuName, menuItem, position, }) {
|
|
29
|
-
const menu = menus.find(m => m.label === menuName);
|
|
30
|
-
if (!menu) {
|
|
31
|
-
menus.push({ label: menuName, menuItems: [menuItem] });
|
|
32
|
-
return 1;
|
|
33
|
-
}
|
|
34
|
-
const insertPosition = position < 0 ? menu.menuItems.length + position : position;
|
|
35
|
-
menu.menuItems.splice(insertPosition, 0, menuItem);
|
|
36
|
-
return menu.menuItems.length;
|
|
37
|
-
}
|
|
38
|
-
function appendToSubMenu({ menus, menuPath, menuItem, }) {
|
|
39
|
-
let topMenu = menus.find(m => m.label === menuPath[0]);
|
|
40
|
-
if (!topMenu) {
|
|
41
|
-
const idx = appendMenu({ menus, menuName: menuPath[0] });
|
|
42
|
-
topMenu = menus[idx - 1];
|
|
43
|
-
}
|
|
44
|
-
let { menuItems: subMenu } = topMenu;
|
|
45
|
-
const pathSoFar = [menuPath[0]];
|
|
46
|
-
for (const menuName of menuPath.slice(1)) {
|
|
47
|
-
pathSoFar.push(menuName);
|
|
48
|
-
let sm = subMenu.find(mi => 'label' in mi && mi.label === menuName);
|
|
49
|
-
if (!sm) {
|
|
50
|
-
const idx = subMenu.push({ label: menuName, subMenu: [] });
|
|
51
|
-
sm = subMenu[idx - 1];
|
|
52
|
-
}
|
|
53
|
-
if (!('subMenu' in sm)) {
|
|
54
|
-
throw new Error(`"${menuName}" in path "${pathSoFar}" is not a subMenu`);
|
|
55
|
-
}
|
|
56
|
-
subMenu = sm.subMenu;
|
|
57
|
-
}
|
|
58
|
-
return subMenu.push(menuItem);
|
|
59
|
-
}
|
|
60
|
-
function insertInSubMenu({ menus, menuPath, menuItem, position, }) {
|
|
61
|
-
let topMenu = menus.find(m => m.label === menuPath[0]);
|
|
62
|
-
if (!topMenu) {
|
|
63
|
-
const idx = appendMenu({ menus, menuName: menuPath[0] });
|
|
64
|
-
topMenu = menus[idx - 1];
|
|
65
|
-
}
|
|
66
|
-
let { menuItems: subMenu } = topMenu;
|
|
67
|
-
const pathSoFar = [menuPath[0]];
|
|
68
|
-
for (const menuName of menuPath.slice(1)) {
|
|
69
|
-
pathSoFar.push(menuName);
|
|
70
|
-
let sm = subMenu.find(mi => 'label' in mi && mi.label === menuName);
|
|
71
|
-
if (!sm) {
|
|
72
|
-
const idx = subMenu.push({ label: menuName, subMenu: [] });
|
|
73
|
-
sm = subMenu[idx - 1];
|
|
74
|
-
}
|
|
75
|
-
if (!('subMenu' in sm)) {
|
|
76
|
-
throw new Error(`"${menuName}" in path "${pathSoFar}" is not a subMenu`);
|
|
77
|
-
}
|
|
78
|
-
subMenu = sm.subMenu;
|
|
79
|
-
}
|
|
80
|
-
subMenu.splice(position, 0, menuItem);
|
|
81
|
-
return subMenu.length;
|
|
82
|
-
}
|
|
83
|
-
function processMutableMenuActions(ret, actions) {
|
|
84
|
-
for (const action of actions) {
|
|
85
|
-
if (action.type === 'setMenus') {
|
|
86
|
-
ret = action.newMenus;
|
|
87
|
-
}
|
|
88
|
-
else if (action.type === 'appendMenu') {
|
|
89
|
-
appendMenu({ menus: ret, ...action });
|
|
90
|
-
}
|
|
91
|
-
else if (action.type === 'insertMenu') {
|
|
92
|
-
insertMenu({ menus: ret, ...action });
|
|
93
|
-
}
|
|
94
|
-
else if (action.type === 'insertInSubMenu') {
|
|
95
|
-
insertInSubMenu({ menus: ret, ...action });
|
|
96
|
-
}
|
|
97
|
-
else if (action.type === 'appendToSubMenu') {
|
|
98
|
-
appendToSubMenu({ menus: ret, ...action });
|
|
99
|
-
}
|
|
100
|
-
else if (action.type === 'appendToMenu') {
|
|
101
|
-
appendToMenu({ menus: ret, ...action });
|
|
102
|
-
}
|
|
103
|
-
else if (action.type === 'insertInMenu') {
|
|
104
|
-
insertInMenu({ menus: ret, ...action });
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
return ret;
|
|
108
|
-
}
|
package/dist/ui/App/App.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { MenuItem as JBMenuItem } from '@jbrowse/core/ui/Menu';
|
|
2
|
-
import type { SnackbarMessage } from '@jbrowse/core/ui/SnackbarModel';
|
|
3
|
-
import type { SessionWithFocusedViewAndDrawerWidgets } from '@jbrowse/core/util';
|
|
4
|
-
interface Menu {
|
|
5
|
-
label: string;
|
|
6
|
-
menuItems: JBMenuItem[];
|
|
7
|
-
}
|
|
8
|
-
interface Props {
|
|
9
|
-
HeaderButtons?: React.ReactElement;
|
|
10
|
-
session: SessionWithFocusedViewAndDrawerWidgets & {
|
|
11
|
-
menus: () => Menu[];
|
|
12
|
-
snackbarMessages: SnackbarMessage[];
|
|
13
|
-
renameCurrentSession: (arg: string) => void;
|
|
14
|
-
popSnackbarMessage: () => unknown;
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
declare const App: (props: Props) => import("react/jsx-runtime").JSX.Element;
|
|
18
|
-
export { App };
|
package/dist/ui/App/App.js
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.App = void 0;
|
|
40
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
41
|
-
const react_1 = require("react");
|
|
42
|
-
const Snackbar_1 = __importDefault(require("@jbrowse/core/ui/Snackbar"));
|
|
43
|
-
const material_1 = require("@mui/material");
|
|
44
|
-
const mobx_react_1 = require("mobx-react");
|
|
45
|
-
const mui_1 = require("tss-react/mui");
|
|
46
|
-
const AppFab_1 = __importDefault(require("./AppFab"));
|
|
47
|
-
const AppToolbar_1 = __importDefault(require("./AppToolbar"));
|
|
48
|
-
const DialogQueue_1 = __importDefault(require("./DialogQueue"));
|
|
49
|
-
const ViewsContainer_1 = __importDefault(require("./ViewsContainer"));
|
|
50
|
-
const DrawerWidget = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./DrawerWidget'))));
|
|
51
|
-
const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
52
|
-
root: {
|
|
53
|
-
display: 'grid',
|
|
54
|
-
height: '100vh',
|
|
55
|
-
width: '100%',
|
|
56
|
-
colorScheme: theme.palette.mode,
|
|
57
|
-
},
|
|
58
|
-
appContainer: {
|
|
59
|
-
gridColumn: 'main',
|
|
60
|
-
display: 'grid',
|
|
61
|
-
gridTemplateRows: '[menubar] min-content [components] auto',
|
|
62
|
-
height: '100vh',
|
|
63
|
-
},
|
|
64
|
-
appBar: {
|
|
65
|
-
flexGrow: 1,
|
|
66
|
-
gridRow: 'menubar',
|
|
67
|
-
},
|
|
68
|
-
}));
|
|
69
|
-
const LazyDrawerWidget = (0, mobx_react_1.observer)(function (props) {
|
|
70
|
-
const { session } = props;
|
|
71
|
-
return ((0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: null, children: (0, jsx_runtime_1.jsx)(DrawerWidget, { session: session }) }));
|
|
72
|
-
});
|
|
73
|
-
const App = (0, mobx_react_1.observer)(function (props) {
|
|
74
|
-
const { session } = props;
|
|
75
|
-
const { classes } = useStyles();
|
|
76
|
-
const { minimized, visibleWidget, drawerWidth, drawerPosition } = session;
|
|
77
|
-
const drawerVisible = visibleWidget && !minimized;
|
|
78
|
-
const d = drawerVisible ? `[drawer] ${drawerWidth}px` : undefined;
|
|
79
|
-
const grid = drawerPosition === 'right' ? ['[main] 1fr', d] : [d, '[main] 1fr'];
|
|
80
|
-
return ((0, jsx_runtime_1.jsxs)("div", { className: classes.root, style: { gridTemplateColumns: grid.filter(f => !!f).join(' ') }, children: [drawerVisible && drawerPosition === 'left' ? ((0, jsx_runtime_1.jsx)(LazyDrawerWidget, { session: session })) : null, (0, jsx_runtime_1.jsx)(DialogQueue_1.default, { session: session }), (0, jsx_runtime_1.jsxs)("div", { className: classes.appContainer, children: [(0, jsx_runtime_1.jsx)(material_1.AppBar, { className: classes.appBar, position: "static", children: (0, jsx_runtime_1.jsx)(AppToolbar_1.default, { ...props }) }), (0, jsx_runtime_1.jsx)(ViewsContainer_1.default, { ...props })] }), (0, jsx_runtime_1.jsx)(AppFab_1.default, { session: session }), drawerVisible && drawerPosition === 'right' ? ((0, jsx_runtime_1.jsx)(LazyDrawerWidget, { session: session })) : null, (0, jsx_runtime_1.jsx)(Snackbar_1.default, { session: session })] }));
|
|
81
|
-
});
|
|
82
|
-
exports.App = App;
|
package/dist/ui/App/AppFab.d.ts
DELETED
package/dist/ui/App/AppFab.js
DELETED
|
@@ -1,32 +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
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
-
const Launch_1 = __importDefault(require("@mui/icons-material/Launch"));
|
|
8
|
-
const material_1 = require("@mui/material");
|
|
9
|
-
const mobx_react_1 = require("mobx-react");
|
|
10
|
-
const mui_1 = require("tss-react/mui");
|
|
11
|
-
const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
12
|
-
left: {
|
|
13
|
-
zIndex: 10000,
|
|
14
|
-
position: 'fixed',
|
|
15
|
-
bottom: theme.spacing(2),
|
|
16
|
-
left: theme.spacing(2),
|
|
17
|
-
},
|
|
18
|
-
right: {
|
|
19
|
-
zIndex: 10000,
|
|
20
|
-
position: 'fixed',
|
|
21
|
-
bottom: theme.spacing(2),
|
|
22
|
-
right: theme.spacing(2),
|
|
23
|
-
},
|
|
24
|
-
}));
|
|
25
|
-
const AppFab = (0, mobx_react_1.observer)(function ({ session, }) {
|
|
26
|
-
const { minimized, activeWidgets, drawerPosition } = session;
|
|
27
|
-
const { classes } = useStyles();
|
|
28
|
-
return activeWidgets.size > 0 && minimized ? ((0, jsx_runtime_1.jsx)(material_1.Tooltip, { title: "Open drawer widget", children: (0, jsx_runtime_1.jsx)(material_1.Fab, { className: drawerPosition === 'right' ? classes.right : classes.left, color: "primary", "data-testid": "drawer-maximize", onClick: () => {
|
|
29
|
-
session.showWidgetDrawer();
|
|
30
|
-
}, children: (0, jsx_runtime_1.jsx)(Launch_1.default, {}) }) })) : null;
|
|
31
|
-
});
|
|
32
|
-
exports.default = AppFab;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { MenuItem as JBMenuItem } from '@jbrowse/core/ui/Menu';
|
|
2
|
-
import type { SnackbarMessage } from '@jbrowse/core/ui/SnackbarModel';
|
|
3
|
-
import type { SessionWithDrawerWidgets } from '@jbrowse/core/util';
|
|
4
|
-
interface Menu {
|
|
5
|
-
label: string;
|
|
6
|
-
menuItems: JBMenuItem[];
|
|
7
|
-
}
|
|
8
|
-
type AppSession = SessionWithDrawerWidgets & {
|
|
9
|
-
menus: () => Menu[];
|
|
10
|
-
snackbarMessages: SnackbarMessage[];
|
|
11
|
-
renameCurrentSession: (arg: string) => void;
|
|
12
|
-
popSnackbarMessage: () => unknown;
|
|
13
|
-
};
|
|
14
|
-
declare const AppToolbar: ({ session, HeaderButtons, }: {
|
|
15
|
-
HeaderButtons?: React.ReactElement;
|
|
16
|
-
session: AppSession;
|
|
17
|
-
}) => import("react/jsx-runtime").JSX.Element;
|
|
18
|
-
export default AppToolbar;
|
|
@@ -1,44 +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
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
-
const AppLogo_1 = __importDefault(require("@jbrowse/core/ui/AppLogo"));
|
|
8
|
-
const DropDownMenu_1 = __importDefault(require("@jbrowse/core/ui/DropDownMenu"));
|
|
9
|
-
const EditableTypography_1 = __importDefault(require("@jbrowse/core/ui/EditableTypography"));
|
|
10
|
-
const material_1 = require("@mui/material");
|
|
11
|
-
const mobx_react_1 = require("mobx-react");
|
|
12
|
-
const mui_1 = require("tss-react/mui");
|
|
13
|
-
const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
14
|
-
grow: {
|
|
15
|
-
flexGrow: 1,
|
|
16
|
-
},
|
|
17
|
-
inputBase: {
|
|
18
|
-
color: theme.palette.primary.contrastText,
|
|
19
|
-
},
|
|
20
|
-
inputRoot: {
|
|
21
|
-
'&:hover': {
|
|
22
|
-
backgroundColor: theme.palette.primary.light,
|
|
23
|
-
},
|
|
24
|
-
},
|
|
25
|
-
inputFocused: {
|
|
26
|
-
borderColor: theme.palette.secondary.main,
|
|
27
|
-
backgroundColor: theme.palette.primary.light,
|
|
28
|
-
},
|
|
29
|
-
}));
|
|
30
|
-
const AppToolbar = (0, mobx_react_1.observer)(function ({ session, HeaderButtons = (0, jsx_runtime_1.jsx)("div", {}), }) {
|
|
31
|
-
const { classes } = useStyles();
|
|
32
|
-
const { name, menus } = session;
|
|
33
|
-
return ((0, jsx_runtime_1.jsxs)(material_1.Toolbar, { children: [menus().map(menu => ((0, jsx_runtime_1.jsx)(DropDownMenu_1.default, { menuTitle: menu.label, menuItems: menu.menuItems, session: session }, menu.label))), (0, jsx_runtime_1.jsx)("div", { className: classes.grow }), (0, jsx_runtime_1.jsx)(material_1.Tooltip, { title: "Rename session", arrow: true, children: (0, jsx_runtime_1.jsx)(EditableTypography_1.default, { value: name, variant: "body1", classes: {
|
|
34
|
-
inputBase: classes.inputBase,
|
|
35
|
-
inputRoot: classes.inputRoot,
|
|
36
|
-
inputFocused: classes.inputFocused,
|
|
37
|
-
}, setValue: newName => {
|
|
38
|
-
session.renameCurrentSession(newName);
|
|
39
|
-
} }) }), HeaderButtons, (0, jsx_runtime_1.jsx)("div", { className: classes.grow }), (0, jsx_runtime_1.jsx)("div", { style: {
|
|
40
|
-
width: 150,
|
|
41
|
-
maxHeight: 48,
|
|
42
|
-
}, children: (0, jsx_runtime_1.jsx)(AppLogo_1.default, { session: session }) })] }));
|
|
43
|
-
});
|
|
44
|
-
exports.default = AppToolbar;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
|
-
const react_1 = require("react");
|
|
5
|
-
const mobx_react_1 = require("mobx-react");
|
|
6
|
-
const DialogQueue = (0, mobx_react_1.observer)(function ({ session, }) {
|
|
7
|
-
const { DialogComponent, DialogProps } = session;
|
|
8
|
-
return DialogComponent ? ((0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: null, children: (0, jsx_runtime_1.jsx)(DialogComponent, { ...DialogProps }) })) : null;
|
|
9
|
-
});
|
|
10
|
-
exports.default = DialogQueue;
|
package/dist/ui/App/Drawer.js
DELETED
|
@@ -1,51 +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
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
-
const react_1 = require("react");
|
|
8
|
-
const ResizeHandle_1 = __importDefault(require("@jbrowse/core/ui/ResizeHandle"));
|
|
9
|
-
const material_1 = require("@mui/material");
|
|
10
|
-
const mobx_react_1 = require("mobx-react");
|
|
11
|
-
const mui_1 = require("tss-react/mui");
|
|
12
|
-
const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
13
|
-
paper: {
|
|
14
|
-
overflowY: 'auto',
|
|
15
|
-
height: '100%',
|
|
16
|
-
position: 'relative',
|
|
17
|
-
zIndex: theme.zIndex.drawer,
|
|
18
|
-
outline: 'none',
|
|
19
|
-
background: theme.palette.background.default,
|
|
20
|
-
},
|
|
21
|
-
resizeHandle: {
|
|
22
|
-
width: 4,
|
|
23
|
-
position: 'fixed',
|
|
24
|
-
top: 0,
|
|
25
|
-
zIndex: theme.zIndex.drawer + 1,
|
|
26
|
-
},
|
|
27
|
-
}));
|
|
28
|
-
const Drawer = (0, mobx_react_1.observer)(function ({ children, session, }) {
|
|
29
|
-
const { drawerPosition, drawerWidth } = session;
|
|
30
|
-
const { classes } = useStyles();
|
|
31
|
-
const ref = (0, react_1.useRef)(null);
|
|
32
|
-
(0, react_1.useEffect)(() => {
|
|
33
|
-
function handleSelectView(e) {
|
|
34
|
-
var _a, _b, _c;
|
|
35
|
-
if (e.target instanceof Element && ((_a = ref.current) === null || _a === void 0 ? void 0 : _a.contains(e.target))) {
|
|
36
|
-
const visibleWidgetId = (_c = (_b = session.visibleWidget) === null || _b === void 0 ? void 0 : _b.view) === null || _c === void 0 ? void 0 : _c.id;
|
|
37
|
-
if (visibleWidgetId) {
|
|
38
|
-
session.setFocusedViewId(visibleWidgetId);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
document.addEventListener('mousedown', handleSelectView);
|
|
43
|
-
document.addEventListener('keydown', handleSelectView);
|
|
44
|
-
return () => {
|
|
45
|
-
document.removeEventListener('mousedown', handleSelectView);
|
|
46
|
-
document.removeEventListener('keydown', handleSelectView);
|
|
47
|
-
};
|
|
48
|
-
}, [session]);
|
|
49
|
-
return ((0, jsx_runtime_1.jsxs)(material_1.Paper, { ref: ref, className: classes.paper, elevation: 16, square: true, children: [drawerPosition === 'right' ? ((0, jsx_runtime_1.jsx)(ResizeHandle_1.default, { onDrag: session.resizeDrawer, className: classes.resizeHandle, vertical: true })) : null, children, drawerPosition === 'left' ? ((0, jsx_runtime_1.jsx)(ResizeHandle_1.default, { onDrag: session.resizeDrawer, className: classes.resizeHandle, style: { left: drawerWidth }, vertical: true })) : null] }));
|
|
50
|
-
});
|
|
51
|
-
exports.default = Drawer;
|
|
@@ -1,30 +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
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
-
const react_1 = require("react");
|
|
8
|
-
const Close_1 = __importDefault(require("@mui/icons-material/Close"));
|
|
9
|
-
const Minimize_1 = __importDefault(require("@mui/icons-material/Minimize"));
|
|
10
|
-
const MoreVert_1 = __importDefault(require("@mui/icons-material/MoreVert"));
|
|
11
|
-
const material_1 = require("@mui/material");
|
|
12
|
-
const mobx_react_1 = require("mobx-react");
|
|
13
|
-
const DrawerControls = (0, mobx_react_1.observer)(function ({ session, }) {
|
|
14
|
-
const [anchorEl, setAnchorEl] = (0, react_1.useState)(null);
|
|
15
|
-
const { drawerPosition, visibleWidget } = session;
|
|
16
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(material_1.IconButton, { color: "inherit", onClick: event => {
|
|
17
|
-
setAnchorEl(event.currentTarget);
|
|
18
|
-
}, children: (0, jsx_runtime_1.jsx)(MoreVert_1.default, {}) }), (0, jsx_runtime_1.jsx)(material_1.Tooltip, { title: "Minimize drawer", children: (0, jsx_runtime_1.jsx)(material_1.IconButton, { "data-testid": "drawer-minimize", color: "inherit", onClick: () => {
|
|
19
|
-
session.notify(`Drawer minimized, click button on ${drawerPosition} side of screen to re-open`, 'info');
|
|
20
|
-
session.minimizeWidgetDrawer();
|
|
21
|
-
}, children: (0, jsx_runtime_1.jsx)(Minimize_1.default, {}) }) }), (0, jsx_runtime_1.jsx)(material_1.Tooltip, { title: "Close drawer", children: (0, jsx_runtime_1.jsx)(material_1.IconButton, { color: "inherit", onClick: () => {
|
|
22
|
-
session.hideWidget(visibleWidget);
|
|
23
|
-
}, children: (0, jsx_runtime_1.jsx)(Close_1.default, {}) }) }), (0, jsx_runtime_1.jsx)(material_1.Menu, { anchorEl: anchorEl, open: Boolean(anchorEl), onClose: () => {
|
|
24
|
-
setAnchorEl(null);
|
|
25
|
-
}, children: ['left', 'right'].map(option => ((0, jsx_runtime_1.jsx)(material_1.MenuItem, { selected: drawerPosition === 'option', onClick: () => {
|
|
26
|
-
session.setDrawerPosition(option);
|
|
27
|
-
setAnchorEl(null);
|
|
28
|
-
}, children: option }, option))) })] }));
|
|
29
|
-
});
|
|
30
|
-
exports.default = DrawerControls;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { SessionWithFocusedViewAndDrawerWidgets } from '@jbrowse/core/util/types';
|
|
2
|
-
declare const DrawerHeader: ({ session, setToolbarHeight, onPopoutDrawer, }: {
|
|
3
|
-
session: SessionWithFocusedViewAndDrawerWidgets;
|
|
4
|
-
setToolbarHeight: (arg: number) => void;
|
|
5
|
-
onPopoutDrawer: () => void;
|
|
6
|
-
}) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
-
export default DrawerHeader;
|
|
@@ -1,37 +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
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
-
const Launch_1 = __importDefault(require("@mui/icons-material/Launch"));
|
|
8
|
-
const material_1 = require("@mui/material");
|
|
9
|
-
const mobx_react_1 = require("mobx-react");
|
|
10
|
-
const mui_1 = require("tss-react/mui");
|
|
11
|
-
const DrawerControls_1 = __importDefault(require("./DrawerControls"));
|
|
12
|
-
const DrawerWidgetSelector_1 = __importDefault(require("./DrawerWidgetSelector"));
|
|
13
|
-
const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
14
|
-
spacer: {
|
|
15
|
-
flexGrow: 1,
|
|
16
|
-
},
|
|
17
|
-
headerFocused: {
|
|
18
|
-
background: theme.palette.secondary.main,
|
|
19
|
-
},
|
|
20
|
-
headerUnfocused: {
|
|
21
|
-
background: theme.palette.secondary.dark,
|
|
22
|
-
},
|
|
23
|
-
}));
|
|
24
|
-
const DrawerHeader = (0, mobx_react_1.observer)(function ({ session, setToolbarHeight, onPopoutDrawer, }) {
|
|
25
|
-
var _a, _b;
|
|
26
|
-
const { classes } = useStyles();
|
|
27
|
-
const focusedViewId = session.focusedViewId;
|
|
28
|
-
const viewWidgetId = (_b = (_a = session.visibleWidget) === null || _a === void 0 ? void 0 : _a.view) === null || _b === void 0 ? void 0 : _b.id;
|
|
29
|
-
return ((0, jsx_runtime_1.jsx)(material_1.AppBar, { position: "sticky", className: focusedViewId === viewWidgetId
|
|
30
|
-
? classes.headerFocused
|
|
31
|
-
: classes.headerUnfocused, ref: ref => {
|
|
32
|
-
setToolbarHeight((ref === null || ref === void 0 ? void 0 : ref.getBoundingClientRect().height) || 0);
|
|
33
|
-
}, children: (0, jsx_runtime_1.jsxs)(material_1.Toolbar, { disableGutters: true, children: [(0, jsx_runtime_1.jsx)(DrawerWidgetSelector_1.default, { session: session }), (0, jsx_runtime_1.jsx)(material_1.Tooltip, { title: "Open drawer in dialog", children: (0, jsx_runtime_1.jsx)(material_1.IconButton, { color: "inherit", onClick: () => {
|
|
34
|
-
onPopoutDrawer();
|
|
35
|
-
}, children: (0, jsx_runtime_1.jsx)(Launch_1.default, {}) }) }), (0, jsx_runtime_1.jsx)("div", { className: classes.spacer }), (0, jsx_runtime_1.jsx)(DrawerControls_1.default, { session: session })] }) }));
|
|
36
|
-
});
|
|
37
|
-
exports.default = DrawerHeader;
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
40
|
-
const react_1 = require("react");
|
|
41
|
-
const ui_1 = require("@jbrowse/core/ui");
|
|
42
|
-
const ErrorBoundary_1 = require("@jbrowse/core/ui/ErrorBoundary");
|
|
43
|
-
const util_1 = require("@jbrowse/core/util");
|
|
44
|
-
const mobx_react_1 = require("mobx-react");
|
|
45
|
-
const Drawer_1 = __importDefault(require("./Drawer"));
|
|
46
|
-
const DrawerHeader_1 = __importDefault(require("./DrawerHeader"));
|
|
47
|
-
const ModalWidget = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./ModalWidget'))));
|
|
48
|
-
const DrawerWidget = (0, mobx_react_1.observer)(function ({ session, }) {
|
|
49
|
-
const { visibleWidget } = session;
|
|
50
|
-
const { pluginManager } = (0, util_1.getEnv)(session);
|
|
51
|
-
const DrawerComponent = visibleWidget
|
|
52
|
-
? pluginManager.evaluateExtensionPoint('Core-replaceWidget', pluginManager.getWidgetType(visibleWidget.type).ReactComponent, {
|
|
53
|
-
session,
|
|
54
|
-
model: visibleWidget,
|
|
55
|
-
})
|
|
56
|
-
: null;
|
|
57
|
-
const [toolbarHeight, setToolbarHeight] = (0, react_1.useState)(0);
|
|
58
|
-
const [popoutDrawer, setPopoutDrawer] = (0, react_1.useState)(false);
|
|
59
|
-
return ((0, jsx_runtime_1.jsxs)(Drawer_1.default, { session: session, children: [(0, jsx_runtime_1.jsx)(DrawerHeader_1.default, { onPopoutDrawer: () => {
|
|
60
|
-
setPopoutDrawer(true);
|
|
61
|
-
}, session: session, setToolbarHeight: setToolbarHeight }), (0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: (0, jsx_runtime_1.jsx)(ui_1.LoadingEllipses, {}), children: (0, jsx_runtime_1.jsx)(ErrorBoundary_1.ErrorBoundary, { FallbackComponent: ({ error }) => (0, jsx_runtime_1.jsx)(ui_1.ErrorMessage, { error: error }), children: DrawerComponent ? (popoutDrawer ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { children: "Opened in dialog..." }), (0, jsx_runtime_1.jsx)(ModalWidget, { session: session, onClose: () => {
|
|
62
|
-
setPopoutDrawer(false);
|
|
63
|
-
} })] })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(DrawerComponent, { model: visibleWidget, session: session, toolbarHeight: toolbarHeight }), (0, jsx_runtime_1.jsx)("div", { style: { height: 300 } })] }))) : null }) })] }));
|
|
64
|
-
});
|
|
65
|
-
exports.default = DrawerWidget;
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { SessionWithFocusedViewAndDrawerWidgets } from '@jbrowse/core/util/types';
|
|
2
|
-
declare const DrawerWidgetSelector: ({ session, }: {
|
|
3
|
-
session: SessionWithFocusedViewAndDrawerWidgets;
|
|
4
|
-
}) => import("react/jsx-runtime").JSX.Element;
|
|
5
|
-
export default DrawerWidgetSelector;
|
|
@@ -1,52 +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
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
-
const util_1 = require("@jbrowse/core/util");
|
|
8
|
-
const Delete_1 = __importDefault(require("@mui/icons-material/Delete"));
|
|
9
|
-
const material_1 = require("@mui/material");
|
|
10
|
-
const mobx_react_1 = require("mobx-react");
|
|
11
|
-
const mui_1 = require("tss-react/mui");
|
|
12
|
-
const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
13
|
-
formControl: {
|
|
14
|
-
margin: 0,
|
|
15
|
-
},
|
|
16
|
-
drawerSelect: {
|
|
17
|
-
margin: 0,
|
|
18
|
-
color: theme.palette.secondary.contrastText,
|
|
19
|
-
},
|
|
20
|
-
dropDownIcon: {
|
|
21
|
-
color: theme.palette.secondary.contrastText,
|
|
22
|
-
},
|
|
23
|
-
}));
|
|
24
|
-
const DrawerWidgetSelector = (0, mobx_react_1.observer)(function ({ session, }) {
|
|
25
|
-
const { visibleWidget, activeWidgets } = session;
|
|
26
|
-
const { classes } = useStyles();
|
|
27
|
-
const { pluginManager } = (0, util_1.getEnv)(session);
|
|
28
|
-
return ((0, jsx_runtime_1.jsx)(material_1.FormControl, { className: classes.formControl, children: (0, jsx_runtime_1.jsx)(material_1.Select, { value: visibleWidget === null || visibleWidget === void 0 ? void 0 : visibleWidget.id, "data-testid": "widget-drawer-selects", className: classes.drawerSelect, classes: { icon: classes.dropDownIcon }, renderValue: widgetId => {
|
|
29
|
-
const widget = session.activeWidgets.get(widgetId);
|
|
30
|
-
if (!widget) {
|
|
31
|
-
return ((0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h6", color: "inherit", children: "Unknown widget" }));
|
|
32
|
-
}
|
|
33
|
-
const widgetType = pluginManager.getWidgetType(widget.type);
|
|
34
|
-
const { HeadingComponent, heading } = widgetType;
|
|
35
|
-
return HeadingComponent ? ((0, jsx_runtime_1.jsx)(HeadingComponent, { model: widget })) : ((0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h6", color: "inherit", children: heading }));
|
|
36
|
-
}, onChange: e => {
|
|
37
|
-
const w = session.activeWidgets.get(e.target.value);
|
|
38
|
-
if (w) {
|
|
39
|
-
session.showWidget(w);
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
session.notify(`Widget not found ${e.target.value}`, 'warning');
|
|
43
|
-
}
|
|
44
|
-
}, children: [...activeWidgets.values()].map(widget => {
|
|
45
|
-
const widgetType = pluginManager.getWidgetType(widget.type);
|
|
46
|
-
const { HeadingComponent, heading } = widgetType;
|
|
47
|
-
return ((0, jsx_runtime_1.jsxs)(material_1.MenuItem, { "data-testid": `widget-drawer-selects-item-${widget.type}`, value: widget.id, children: [HeadingComponent ? ((0, jsx_runtime_1.jsx)(HeadingComponent, { model: widget })) : ((0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h6", color: "inherit", children: heading })), (0, jsx_runtime_1.jsx)(material_1.IconButton, { "data-testid": `${widget.type}-drawer-delete`, color: "inherit", "aria-label": "Delete", onClick: () => {
|
|
48
|
-
session.hideWidget(widget);
|
|
49
|
-
}, children: (0, jsx_runtime_1.jsx)(Delete_1.default, {}) })] }, widget.id));
|
|
50
|
-
}) }) }));
|
|
51
|
-
});
|
|
52
|
-
exports.default = DrawerWidgetSelector;
|