@jbrowse/plugin-linear-genome-view
Version:
JBrowse 2 linear genome view
39 lines (38 loc) • 1.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.stateModelFactory = stateModelFactory;
const configuration_1 = require("@jbrowse/core/configuration");
const util_1 = require("@jbrowse/core/util");
const tracks_1 = require("@jbrowse/core/util/tracks");
const mobx_state_tree_1 = require("mobx-state-tree");
const BaseLinearDisplay_1 = require("../BaseLinearDisplay");
function stateModelFactory(configSchema) {
return mobx_state_tree_1.types
.compose('LinearBareDisplay', BaseLinearDisplay_1.BaseLinearDisplay, mobx_state_tree_1.types.model({
type: mobx_state_tree_1.types.literal('LinearBareDisplay'),
configuration: (0, configuration_1.ConfigurationReference)(configSchema),
}))
.views(self => ({
get rendererConfig() {
const configBlob = (0, configuration_1.getConf)(self, ['renderer']) || {};
const config = configBlob;
return self.rendererType.configSchema.create(config, (0, util_1.getEnv)(self));
},
get rendererTypeName() {
return (0, configuration_1.getConf)(self, ['renderer', 'type']);
},
}))
.views(self => {
const { renderProps: superRenderProps } = self;
return {
renderProps() {
return {
...superRenderProps(),
...(0, tracks_1.getParentRenderProps)(self),
rpcDriverName: self.rpcDriverName,
config: self.rendererConfig,
};
},
};
});
}