@jbrowse/core
Version:
JBrowse 2 core libraries used by plugins
150 lines (149 loc) • 6.62 kB
JavaScript
import * as React from 'react';
import * as mst from '@jbrowse/mobx-state-tree';
import { alpha, createTheme, useTheme } from '@mui/material';
import * as MUIStyles from '@mui/material/styles';
import * as MUIUtils from '@mui/material/utils';
import { useGridApiContext, useGridApiRef, useGridRootProps, } from '@mui/x-data-grid';
import * as mobx from 'mobx';
import * as mxreact from 'mobx-react';
import * as ReactJSXRuntime from 'react/jsx-runtime';
import * as ReactDom from 'react-dom';
import * as ReactDomClient from 'react-dom/client';
import Plugin from "../Plugin.js";
import { BaseFeatureDetail } from "./BaseFeatureDetails.js";
import { DataGridEntries } from "./MuiDataGridReExports.js";
import { Entries } from "./MuiReExports.js";
import { lazyMap } from "./lazify.js";
import reExportsList from "./list.js";
import * as Configuration from "../configuration/index.js";
import * as BaseAdapterExports from "../data_adapters/BaseAdapter/index.js";
import AdapterType from "../pluggableElementTypes/AdapterType.js";
import DisplayType from "../pluggableElementTypes/DisplayType.js";
import TrackType from "../pluggableElementTypes/TrackType.js";
import ViewType from "../pluggableElementTypes/ViewType.js";
import WidgetType from "../pluggableElementTypes/WidgetType.js";
import * as pluggableElementTypes from "../pluggableElementTypes/index.js";
import * as pluggableElementTypeModels from "../pluggableElementTypes/models/index.js";
import * as BoxRendererType from "../pluggableElementTypes/renderers/BoxRendererType.js";
import CircularChordRendererType from "../pluggableElementTypes/renderers/CircularChordRendererType.js";
import * as FeatureRendererType from "../pluggableElementTypes/renderers/FeatureRendererType.js";
import * as RendererType from "../pluggableElementTypes/renderers/RendererType.js";
import * as ServerSideRendererType from "../pluggableElementTypes/renderers/ServerSideRendererType.js";
import * as coreUi from "../ui/index.js";
import * as coreTheme from "../ui/theme.js";
import Base1DView from "../util/Base1DViewModel.js";
import * as coreColor from "../util/color/index.js";
import * as coreUtil from "../util/index.js";
import * as coreIo from "../util/io/index.js";
import * as coreLayouts from "../util/layouts/index.js";
import * as coreMstReflection from "../util/mst-reflection.js";
import * as rxjs from "../util/rxjs.js";
import * as trackUtils from "../util/tracks.js";
import { cx, keyframes, makeStyles } from "../util/tss-react/index.js";
import * as mstTypes from "../util/types/mst.js";
const libs = {
mobx,
'@jbrowse/mobx-state-tree': mst,
'mobx-state-tree': mst,
react: React,
'react/jsx-runtime': ReactJSXRuntime,
'react-dom': ReactDom,
'react-dom/client': ReactDomClient,
'mobx-react': mxreact,
'@mui/x-data-grid': {
useGridApiContext,
useGridApiRef,
useGridRootProps,
...lazyMap(DataGridEntries),
},
'@mui/material/utils': MUIUtils,
'@material-ui/core/utils': MUIUtils,
'tss-react': {
cx,
keyframes,
makeStyles,
},
'tss-react/mui': {
cx,
keyframes,
makeStyles,
},
'@material-ui/core': {
...lazyMap(Entries),
useTheme,
alpha,
makeStyles: (args) => {
const useStyles = makeStyles()(args);
return () => useStyles().classes;
},
},
'@mui/material': {
...lazyMap(Entries),
alpha,
useTheme,
createTheme,
},
...lazyMap(Entries, '@mui/material/'),
...lazyMap(Entries, '@material-ui/core/'),
'@mui/material/styles': {
...MUIStyles,
makeStyles: (args) => {
const useStyles = makeStyles()(args);
return () => useStyles().classes;
},
},
'@material-ui/core/styles': {
...MUIStyles,
makeStyles: (args) => {
const useStyles = makeStyles()(args);
return () => useStyles().classes;
},
},
'@material-ui/lab/ToggleButton': Entries.ToggleButton,
'@material-ui/lab/ToggleButtonGroup': Entries.ToggleButtonGroup,
'@material-ui/lab/Autocomplete': Entries.Autocomplete,
'@material-ui/lab/Alert': Entries.Alert,
'@material-ui/lab': {
Alert: Entries.Alert,
Autocomplete: Entries.Autocomplete,
ToggleButton: Entries.ToggleButton,
ToggleButtonGroup: Entries.ToggleButtonGroup,
},
'@jbrowse/core/Plugin': Plugin,
'@jbrowse/core/pluggableElementTypes/renderers/RendererType': RendererType,
'@jbrowse/core/configuration': Configuration,
'@jbrowse/core/util/types/mst': mstTypes,
'@jbrowse/core/ui': coreUi,
'@jbrowse/core/ui/theme': coreTheme,
'@jbrowse/core/util': coreUtil,
'@jbrowse/core/util/color': coreColor,
'@jbrowse/core/util/layouts': coreLayouts,
'@jbrowse/core/util/tracks': trackUtils,
'@jbrowse/core/util/Base1DViewModel': Base1DView,
'@jbrowse/core/util/io': coreIo,
'@jbrowse/core/util/mst-reflection': coreMstReflection,
'@jbrowse/core/util/rxjs': rxjs,
'@jbrowse/core/pluggableElementTypes': pluggableElementTypes,
'@jbrowse/core/pluggableElementTypes/ViewType': ViewType,
'@jbrowse/core/pluggableElementTypes/AdapterType': AdapterType,
'@jbrowse/core/pluggableElementTypes/DisplayType': DisplayType,
'@jbrowse/core/pluggableElementTypes/TrackType': TrackType,
'@jbrowse/core/pluggableElementTypes/WidgetType': WidgetType,
'@jbrowse/core/pluggableElementTypes/models': pluggableElementTypeModels,
'@jbrowse/core/pluggableElementTypes/renderers/ServerSideRendererType': ServerSideRendererType,
'@jbrowse/core/pluggableElementTypes/renderers/CircularChordRendererType': CircularChordRendererType,
'@jbrowse/core/pluggableElementTypes/renderers/BoxRendererType': BoxRendererType,
'@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType': FeatureRendererType,
'@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail': BaseFeatureDetail,
'@jbrowse/core/data_adapters/BaseAdapter': BaseAdapterExports,
};
const libsList = Object.keys(libs);
const inLibsOnly = libsList.filter(mod => !reExportsList.includes(mod));
if (inLibsOnly.length > 0) {
throw new Error(`The following modules are in the modules libs, but not the re-exports list: ${inLibsOnly.join(', ')}`);
}
const inReExportsOnly = reExportsList.filter(mod => !libsList.includes(mod));
if (inReExportsOnly.length) {
throw new Error(`The following modules are in the re-exports list, but not the modules libs: ${inReExportsOnly.join(', ')}`);
}
export default libs;