@jbrowse/plugin-linear-genome-view
Version:
JBrowse 2 linear genome view
36 lines (35 loc) • 1.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = TrackHeightMixin;
const configuration_1 = require("@jbrowse/core/configuration");
const mobx_state_tree_1 = require("mobx-state-tree");
const minDisplayHeight = 20;
function TrackHeightMixin() {
return mobx_state_tree_1.types
.model({
heightPreConfig: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.refinement('displayHeight', mobx_state_tree_1.types.number, n => n >= minDisplayHeight)),
})
.volatile(() => ({
scrollTop: 0,
}))
.views(self => ({
get height() {
var _a;
return (_a = self.heightPreConfig) !== null && _a !== void 0 ? _a : (0, configuration_1.getConf)(self, 'height');
},
}))
.actions(self => ({
setScrollTop(scrollTop) {
self.scrollTop = scrollTop;
},
setHeight(displayHeight) {
self.heightPreConfig = Math.max(displayHeight, minDisplayHeight);
return self.height;
},
resizeHeight(distance) {
const oldHeight = self.height;
const newHeight = this.setHeight(self.height + distance);
return newHeight - oldHeight;
},
}));
}