molstar
Version:
A comprehensive macromolecular library.
93 lines (92 loc) • 3.41 kB
TypeScript
/**
* Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author David Sehnal <david.sehnal@gmail.com>
*/
import { State, StateTransform, StateTransformer, StateAction, StateObject, StateObjectCell } from '../../mol-state';
import * as React from 'react';
import { PurePluginUIComponent } from '../base';
import { ParamOnChange } from '../controls/parameters';
import { PluginContext } from '../../mol-plugin/context';
import { ParamDefinition as PD } from '../../mol-util/param-definition';
export { StateTransformParameters, TransformControlBase };
declare class StateTransformParameters extends PurePluginUIComponent<StateTransformParameters.Props> {
validate(params: any): undefined;
areInitial(params: any): boolean;
onChange: ParamOnChange;
render(): JSX.Element;
}
declare namespace StateTransformParameters {
interface Props {
info: {
params: PD.Params;
initialValues: any;
isEmpty: boolean;
};
events: {
onChange: (params: any, areInitial: boolean, errors?: string[]) => void;
onEnter: () => void;
};
params: any;
isDisabled?: boolean;
a?: StateObject;
b?: StateObject;
bCell?: StateObjectCell;
}
type Class = React.ComponentClass<Props>;
function infoFromAction(plugin: PluginContext, state: State, action: StateAction, nodeRef: StateTransform.Ref): Props['info'];
function infoFromTransform(plugin: PluginContext, state: State, transform: StateTransform): Props['info'];
}
declare namespace TransformControlBase {
interface ComponentState {
params: any;
error?: string;
busy: boolean;
isInitial: boolean;
simpleOnly?: boolean;
isCollapsed?: boolean;
}
interface CommonProps {
simpleApply?: {
header: string;
icon?: React.FC;
title?: string;
};
noMargin?: boolean;
applyLabel?: string;
onApply?: () => void;
autoHideApply?: boolean;
wrapInExpander?: boolean;
expanderHeaderLeftMargin?: string;
}
}
declare abstract class TransformControlBase<P, S extends TransformControlBase.ComponentState> extends PurePluginUIComponent<P & TransformControlBase.CommonProps, S> {
abstract applyAction(): Promise<void>;
abstract getInfo(): StateTransformParameters.Props['info'];
abstract getHeader(): StateTransformer.Definition['display'] | 'none';
abstract canApply(): boolean;
abstract getTransformerId(): string;
abstract canAutoApply(newParams: any): boolean;
abstract applyText(): string;
abstract isUpdate(): boolean;
abstract getSourceAndTarget(): {
a?: StateObject;
b?: StateObject;
bCell?: StateObjectCell;
};
abstract state: S;
private busy;
private onEnter;
private autoApplyHandle;
private clearAutoApply;
events: StateTransformParameters.Props['events'];
apply: () => Promise<void>;
componentDidMount(): void;
refresh: () => void;
setDefault: () => void;
toggleExpanded: () => void;
renderApply(): JSX.Element | null;
renderDefault(): JSX.Element;
renderSimple(): JSX.Element;
render(): JSX.Element;
}