molstar
Version:
A comprehensive macromolecular library.
133 lines (132 loc) • 6.63 kB
TypeScript
/**
* Copyright (c) 2018-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author David Sehnal <david.sehnal@gmail.com>
*/
import { State, StateTransform, StateTransformer } from '../mol-state';
import { Camera } from '../mol-canvas3d/camera';
import { Canvas3DProps } from '../mol-canvas3d/canvas3d';
import { PluginAnimationManager } from '../mol-plugin-state/manager/animation';
import { ParamDefinition as PD } from '../mol-util/param-definition';
import { UUID } from '../mol-util';
import { InteractivityManager } from '../mol-plugin-state/manager/interactivity';
import { StructureFocusSnapshot } from '../mol-plugin-state/manager/structure/focus';
import { PluginContext } from './context';
import { PluginComponent } from '../mol-plugin-state/component';
export { PluginState };
declare class PluginState extends PluginComponent {
private plugin;
private get animation();
readonly data: State;
readonly behaviors: State;
readonly events: {
readonly cell: {
readonly stateUpdated: import("rxjs").Observable<State.ObjectEvent & {
cell: import("../mol-state/object").StateObjectCell<import("../mol-state/object").StateObject<any, import("../mol-state/object").StateObject.Type<any>>, StateTransform<StateTransformer<import("../mol-state/object").StateObject<any, import("../mol-state/object").StateObject.Type<any>>, import("../mol-state/object").StateObject<any, import("../mol-state/object").StateObject.Type<any>>, any>>>;
}>;
readonly created: import("rxjs").Observable<State.ObjectEvent & {
cell: import("../mol-state/object").StateObjectCell<import("../mol-state/object").StateObject<any, import("../mol-state/object").StateObject.Type<any>>, StateTransform<StateTransformer<import("../mol-state/object").StateObject<any, import("../mol-state/object").StateObject.Type<any>>, import("../mol-state/object").StateObject<any, import("../mol-state/object").StateObject.Type<any>>, any>>>;
}>;
readonly removed: import("rxjs").Observable<State.ObjectEvent & {
parent: string;
}>;
};
readonly object: {
readonly created: import("rxjs").Observable<State.ObjectEvent & {
obj: import("../mol-state/object").StateObject<any, import("../mol-state/object").StateObject.Type<any>>;
}>;
readonly removed: import("rxjs").Observable<State.ObjectEvent & {
obj?: import("../mol-state/object").StateObject<any, import("../mol-state/object").StateObject.Type<any>> | undefined;
}>;
readonly updated: import("rxjs").Observable<State.ObjectEvent & {
action: "in-place" | "recreate";
obj: import("../mol-state/object").StateObject<any, import("../mol-state/object").StateObject.Type<any>>;
oldObj?: import("../mol-state/object").StateObject<any, import("../mol-state/object").StateObject.Type<any>> | undefined;
oldData?: any;
}>;
};
};
readonly snapshotParams: import("rxjs").BehaviorSubject<Partial<PD.Values<{
durationInMs: PD.Numeric;
data: PD.BooleanParam;
behavior: PD.BooleanParam;
animation: PD.BooleanParam;
startAnimation: PD.BooleanParam;
canvas3d: PD.BooleanParam;
interactivity: PD.BooleanParam;
camera: PD.BooleanParam;
cameraTransition: PD.Mapped<PD.NamedParams<PD.Normalize<{
durationInMs: number;
}>, "animate"> | PD.NamedParams<PD.Normalize<unknown>, "instant">>;
}>>>;
setSnapshotParams: (params?: Partial<PD.Values<{
durationInMs: PD.Numeric;
data: PD.BooleanParam;
behavior: PD.BooleanParam;
animation: PD.BooleanParam;
startAnimation: PD.BooleanParam;
canvas3d: PD.BooleanParam;
interactivity: PD.BooleanParam;
camera: PD.BooleanParam;
cameraTransition: PD.Mapped<PD.NamedParams<PD.Normalize<{
durationInMs: number;
}>, "animate"> | PD.NamedParams<PD.Normalize<unknown>, "instant">>;
}>> | undefined) => void;
getSnapshot(params?: PluginState.SnapshotParams): PluginState.Snapshot;
setSnapshot(snapshot: PluginState.Snapshot): Promise<void>;
updateTransform(state: State, a: StateTransform.Ref, params: any, canUndo?: string | boolean): Promise<void>;
updateBehavior<T extends StateTransformer>(behavior: T, params: (old: StateTransformer.Params<T>) => (void | StateTransformer.Params<T>)): Promise<void>;
dispose(): void;
constructor(plugin: PluginContext);
}
declare namespace PluginState {
type CameraTransitionStyle = 'instant' | 'animate';
const SnapshotParams: {
durationInMs: PD.Numeric;
data: PD.BooleanParam;
behavior: PD.BooleanParam;
animation: PD.BooleanParam;
startAnimation: PD.BooleanParam;
canvas3d: PD.BooleanParam;
interactivity: PD.BooleanParam;
camera: PD.BooleanParam;
cameraTransition: PD.Mapped<PD.NamedParams<PD.Normalize<{
durationInMs: number;
}>, "animate"> | PD.NamedParams<PD.Normalize<unknown>, "instant">>;
};
type SnapshotParams = Partial<PD.Values<typeof SnapshotParams>>;
const DefaultSnapshotParams: PD.Values<{
durationInMs: PD.Numeric;
data: PD.BooleanParam;
behavior: PD.BooleanParam;
animation: PD.BooleanParam;
startAnimation: PD.BooleanParam;
canvas3d: PD.BooleanParam;
interactivity: PD.BooleanParam;
camera: PD.BooleanParam;
cameraTransition: PD.Mapped<PD.NamedParams<PD.Normalize<{
durationInMs: number;
}>, "animate"> | PD.NamedParams<PD.Normalize<unknown>, "instant">>;
}>;
interface Snapshot {
id: UUID;
data?: State.Snapshot;
behaviour?: State.Snapshot;
animation?: PluginAnimationManager.Snapshot;
startAnimation?: boolean;
camera?: {
current: Camera.Snapshot;
transitionStyle: CameraTransitionStyle;
transitionDurationInMs?: number;
};
canvas3d?: {
props?: Canvas3DProps;
};
interactivity?: {
props?: InteractivityManager.Props;
};
structureFocus?: StructureFocusSnapshot;
durationInMs?: number;
}
type SnapshotType = 'json' | 'molj' | 'zip' | 'molx';
}