UNPKG

drugflow-molstar

Version:
106 lines (105 loc) 4.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DefaultParams = exports.DefaultPluginUISpec = exports.DefaultPluginSpec = void 0; exports.createPluginUI = createPluginUI; var tslib_1 = require("tslib"); var React = tslib_1.__importStar(require("react")); var ReactDOM = tslib_1.__importStar(require("react-dom")); var volume_1 = require("Molstar/mol-plugin-ui/custom/volume"); var plugin_1 = require("Molstar/mol-plugin-ui/plugin"); var behavior_1 = require("Molstar/mol-plugin/behavior"); var transformers_1 = require("Molstar/mol-plugin/behavior/dynamic/volume-streaming/transformers"); var context_1 = require("Molstar/mol-plugin-ui/context"); var spec_1 = require("Molstar/mol-plugin/spec"); var config_1 = require("Molstar/mol-plugin/config"); var actions_1 = require("Molstar/mol-plugin-state/actions"); var labels_1 = require("./labels"); var sifts_mappings_behaviour_1 = require("./sifts-mappings-behaviour"); var DefaultPluginSpec = function () { return ({ actions: [ spec_1.PluginSpec.Action(actions_1.StateActions.Structure.EnableStructureCustomProps) ], behaviors: [ spec_1.PluginSpec.Behavior(behavior_1.PluginBehaviors.Representation.HighlightLoci), spec_1.PluginSpec.Behavior(behavior_1.PluginBehaviors.Representation.SelectLoci), spec_1.PluginSpec.Behavior(labels_1.PDBeLociLabelProvider), spec_1.PluginSpec.Behavior(behavior_1.PluginBehaviors.Representation.FocusLoci), spec_1.PluginSpec.Behavior(behavior_1.PluginBehaviors.Camera.FocusLoci), spec_1.PluginSpec.Behavior(behavior_1.PluginBehaviors.Camera.CameraAxisHelper), spec_1.PluginSpec.Behavior(behavior_1.PluginBehaviors.CustomProps.StructureInfo), spec_1.PluginSpec.Behavior(behavior_1.PluginBehaviors.CustomProps.AccessibleSurfaceArea), spec_1.PluginSpec.Behavior(sifts_mappings_behaviour_1.PDBeSIFTSMapping, { autoAttach: true, showTooltip: true }), spec_1.PluginSpec.Behavior(behavior_1.PluginBehaviors.CustomProps.Interactions), spec_1.PluginSpec.Behavior(behavior_1.PluginBehaviors.CustomProps.SecondaryStructure), spec_1.PluginSpec.Behavior(behavior_1.PluginBehaviors.CustomProps.ValenceModel), spec_1.PluginSpec.Behavior(behavior_1.PluginBehaviors.CustomProps.CrossLinkRestraint), ], // animations: [], config: [ [config_1.PluginConfig.VolumeStreaming.DefaultServer, 'https://www.ebi.ac.uk/pdbe/volume-server'] ] }); }; exports.DefaultPluginSpec = DefaultPluginSpec; var DefaultPluginUISpec = function () { return (tslib_1.__assign(tslib_1.__assign({}, (0, exports.DefaultPluginSpec)()), { customParamEditors: [ [transformers_1.CreateVolumeStreamingBehavior, volume_1.VolumeStreamingCustomControls] ] })); }; exports.DefaultPluginUISpec = DefaultPluginUISpec; function createPluginUI(target, spec, options) { return tslib_1.__awaiter(this, void 0, void 0, function () { var ctx; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: ctx = new context_1.PluginUIContext(spec || (0, exports.DefaultPluginUISpec)()); return [4 /*yield*/, ctx.init()]; case 1: _a.sent(); if (!(options === null || options === void 0 ? void 0 : options.onBeforeUIRender)) return [3 /*break*/, 3]; return [4 /*yield*/, options.onBeforeUIRender(ctx)]; case 2: _a.sent(); _a.label = 3; case 3: ReactDOM.render(React.createElement(plugin_1.Plugin, { plugin: ctx }), target); return [2 /*return*/, ctx]; } }); }); } exports.DefaultParams = { moleculeId: undefined, superposition: undefined, superpositionParams: undefined, customData: undefined, ligandView: undefined, assemblyId: undefined, visualStyle: undefined, highlightColor: undefined, selectColor: undefined, hideStructure: undefined, hideCanvasControls: undefined, granularity: undefined, selection: undefined, mapSettings: undefined, selectBindings: undefined, focusBindings: undefined, defaultPreset: 'default', pdbeUrl: 'https://www.ebi.ac.uk/pdbe/', bgColor: { r: 0, g: 0, b: 0 }, lighting: undefined, encoding: 'bcif', selectInteraction: true, loadMaps: false, validationAnnotation: false, domainAnnotation: false, lowPrecisionCoords: false, expanded: false, hideControls: false, pdbeLink: true, loadCartoonsOnly: false, landscape: false, reactive: false, subscribeEvents: false, alphafoldView: false, sequencePanel: false };