pdbe-molstar
Version:
Molstar implementation for PDBe
39 lines (38 loc) • 2.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.FullLayoutNoControlsUnlessExpanded = void 0;
const plugin_1 = require("molstar/lib/mol-plugin-ui/plugin");
const config_1 = require("molstar/lib/mol-plugin/config");
const plugin_custom_state_1 = require("../plugin-custom-state");
class FullLayoutNoControlsUnlessExpanded extends plugin_1.Layout {
componentDidMount() {
super.componentDidMount();
// Hide Toggle Controls button unless expanded:
this.updateControlToggleVisibility();
this.subscribe(this.plugin.layout.events.updated, () => this.updateControlToggleVisibility());
}
/** Show/hide wrench button as needed (so it never displays in non-expanded mode) */
updateControlToggleVisibility() {
var _a;
const isExpanded = this.plugin.layout.state.isExpanded;
const hideCanvasControls = (_a = (0, plugin_custom_state_1.PluginCustomState)(this.plugin).initParams) === null || _a === void 0 ? void 0 : _a.hideCanvasControls;
const hideControlToggle = (hideCanvasControls === null || hideCanvasControls === void 0 ? void 0 : hideCanvasControls.includes('controlToggle')) || (hideCanvasControls === null || hideCanvasControls === void 0 ? void 0 : hideCanvasControls.includes('all'));
this.plugin.config.set(config_1.PluginConfig.Viewport.ShowControls, isExpanded && !hideControlToggle);
}
get layoutVisibilityClassName() {
const classes = super.layoutVisibilityClassName.split(' ');
const state = this.plugin.layout.state;
if (!state.isExpanded) {
if (!classes.includes('msp-layout-hide-top'))
classes.push('msp-layout-hide-top');
if (!classes.includes('msp-layout-hide-bottom'))
classes.push('msp-layout-hide-bottom');
if (!classes.includes('msp-layout-hide-left'))
classes.push('msp-layout-hide-left');
if (!classes.includes('msp-layout-hide-right'))
classes.push('msp-layout-hide-right');
}
return classes.join(' ');
}
}
exports.FullLayoutNoControlsUnlessExpanded = FullLayoutNoControlsUnlessExpanded;