diff --git a/src/mol-plugin/spec.ts b/src/mol-plugin/spec.ts index 7bf04bddd14148068cb7d80d093878dca51b88ca..0a6eb41fe33d5e2e6a49c49a5d97e4e6dd63ec05 100644 --- a/src/mol-plugin/spec.ts +++ b/src/mol-plugin/spec.ts @@ -9,6 +9,7 @@ import { StateTransformer, StateAction } from '../mol-state'; import { StateTransformParameters } from './ui/state/common'; import { PluginLayoutStateProps } from './layout'; import { PluginStateAnimation } from './state/animation/model'; +import { ParamDefinition as PD } from '../mol-util/param-definition'; export { PluginSpec } @@ -40,8 +41,11 @@ namespace PluginSpec { defaultParams?: any } - export function Behavior<T extends StateTransformer>(transformer: T, defaultParams?: StateTransformer.Params<T>): Behavior { - return { transformer, defaultParams }; + export function Behavior<T extends StateTransformer>(transformer: T, defaultParams: Partial<StateTransformer.Params<T>> = {}): Behavior { + const params = transformer.definition.params + ? PD.getDefaultValues(transformer.definition.params(undefined, undefined)) + : {} + return { transformer, defaultParams: { ...params, ...defaultParams } }; } export interface LayoutControls {