/** * Copyright (c) 2018-2026 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal * @author Alexander Rose * @author Lukáš Polák */ import * as React from 'react'; import { Vec2 } from '../../mol-math/linear-algebra.js'; import { Legend as LegendData } from '../../mol-util/legend.js'; import { ParamDefinition as PD } from '../../mol-util/param-definition.js'; import { ParamMapping } from '../../mol-util/param-mapping.js'; import { PluginUIComponent } from '../base.js'; import { PluginUIContext } from '../context.js'; import { ActionMenu } from './action-menu.js'; export type ParameterControlsCategoryFilter = string | null | (string | null)[]; export interface ParameterControlsProps

{ params: P; values: any; onChange?: ParamsOnChange>; onChangeValues?: (values: PD.ValuesFor

, prev: PD.ValuesFor

) => void; isDisabled?: boolean; onEnter?: () => void; } export declare class ParameterControls

extends React.PureComponent> { onChange: ParamOnChange; renderGroup(group: ParamInfo[]): import("react/jsx-runtime").JSX.Element[] | null; renderPart(groups: ParamInfo[][]): JSX.Element[] | null; paramGroups: (params: PD.Params) => { essentials: ParamInfo[][]; advanced: ParamInfo[][]; }; render(): import("react/jsx-runtime").JSX.Element | JSX.Element[] | null; } export declare class ParameterMappingControl extends PluginUIComponent<{ mapping: ParamMapping; }, { isDisabled: boolean; }> { state: { isDisabled: boolean; }; setSettings: (p: { param: PD.Base; name: string; value: any; }, old: any) => void; componentDidMount(): void; render(): import("react/jsx-runtime").JSX.Element; } type ParamInfo = [string, PD.Any, ParamControl]; export declare class ParamHelp extends React.PureComponent<{ legend?: L; description?: string; }> { render(): import("react/jsx-runtime").JSX.Element; } export type ParamsOnChange

= (params: { param: PD.Base; name: string; value: any; }, values: Readonly

) => void; export type ParamOnChange = (params: { param: PD.Base; name: string; value: any; }) => void; export interface ParamProps

= PD.Base> { name: string; value: P['defaultValue']; param: P; isDisabled?: boolean; onChange: ParamOnChange; onEnter?: () => void; } export type ParamControl = React.ComponentClass>; export declare function ToggleParamHelpButton({ show, toggle, title }: { show: boolean; toggle: () => void; title?: string; }): import("react/jsx-runtime").JSX.Element; export declare abstract class SimpleParam

extends React.PureComponent, { showHelp: boolean; }> { state: { showHelp: boolean; }; protected update(value: P['defaultValue']): void; abstract renderControl(): JSX.Element; renderAddOn(): JSX.Element | null; toggleHelp: () => void; render(): import("react/jsx-runtime").JSX.Element; } export declare class BoolControl extends SimpleParam { onClick: (e: React.MouseEvent) => void; renderControl(): import("react/jsx-runtime").JSX.Element; } export declare class LineGraphControl extends React.PureComponent, { isExpanded: boolean; isOverPoint: boolean; message: string; }> { state: { isExpanded: boolean; isOverPoint: boolean; message: string; }; private pointToLabel; onHover: (point?: Vec2) => void; onDrag: (point: Vec2) => void; onChange: (value: PD.LineGraph["defaultValue"]) => void; toggleExpanded: (e: React.MouseEvent) => void; render(): import("react/jsx-runtime").JSX.Element; } export declare class NumberInputControl extends React.PureComponent> { state: { value: string; }; update: (value: number) => void; render(): import("react/jsx-runtime").JSX.Element; } export declare class NumberRangeControl extends SimpleParam { onChange: (v: number) => void; renderControl(): import("react/jsx-runtime").JSX.Element; } export declare class TextControl extends SimpleParam { updateValue: (value: string) => void; renderControl(): import("react/jsx-runtime").JSX.Element; } export declare class PureSelectControl extends React.PureComponent> & { title?: string; }> { protected update(value: string | number): void; onChange: (e: React.ChangeEvent) => void; render(): import("react/jsx-runtime").JSX.Element; } export declare class SelectControl extends React.PureComponent>, { showHelp: boolean; showOptions: boolean; }> { state: { showHelp: boolean; showOptions: boolean; }; onSelect: ActionMenu.OnSelect; toggle: () => void; cycle: () => void; items: (param: PD.Select) => ActionMenu.Items[]; renderControl(): import("react/jsx-runtime").JSX.Element; renderAddOn(): import("react/jsx-runtime").JSX.Element | null; toggleHelp: () => void; render(): import("react/jsx-runtime").JSX.Element; } export declare class ValueRefControl extends React.PureComponent>, { showHelp: boolean; showOptions: boolean; }> { state: { showHelp: boolean; showOptions: boolean; }; onSelect: ActionMenu.OnSelect; toggle: () => void; private get items(); renderControl(): import("react/jsx-runtime").JSX.Element; renderAddOn(): import("react/jsx-runtime").JSX.Element | null; toggleHelp: () => void; render(): import("react/jsx-runtime").JSX.Element; } export declare class IntervalControl extends React.PureComponent, { isExpanded: boolean; }> { state: { isExpanded: boolean; }; components: { 0: PD.Numeric; 1: PD.Numeric; }; change(value: PD.MultiSelect['defaultValue']): void; componentChange: ParamOnChange; toggleExpanded: (e: React.MouseEvent) => void; render(): import("react/jsx-runtime").JSX.Element; } export declare class BoundedIntervalControl extends SimpleParam { onChange: (v: [number, number]) => void; renderControl(): import("react/jsx-runtime").JSX.Element; } export declare class ColorControl extends SimpleParam { onChange: (e: React.ChangeEvent) => void; stripStyle(): React.CSSProperties; renderControl(): import("react/jsx-runtime").JSX.Element; } export declare class ColorListControl extends React.PureComponent, { showHelp: boolean; show?: 'edit' | 'presets'; }> { state: { showHelp: boolean; show: "edit" | "presets" | undefined; }; protected update(value: PD.ColorList['defaultValue']): void; toggleEdit: () => void; togglePresets: () => void; renderControl(): import("react/jsx-runtime").JSX.Element; selectPreset: ActionMenu.OnSelect; colorsChanged: ParamOnChange; isInterpolatedChanged: ParamOnChange; renderColors(): import("react/jsx-runtime").JSX.Element | null; toggleHelp: () => void; render(): import("react/jsx-runtime").JSX.Element; } export declare class OffsetColorListControl extends React.PureComponent, { showHelp: boolean; show?: 'edit' | 'presets'; }> { state: { showHelp: boolean; show: "edit" | "presets" | undefined; }; protected update(value: PD.ColorList['defaultValue']): void; toggleEdit: () => void; togglePresets: () => void; renderControl(): import("react/jsx-runtime").JSX.Element; selectPreset: ActionMenu.OnSelect; colorsChanged: ParamOnChange; isInterpolatedChanged: ParamOnChange; renderColors(): import("react/jsx-runtime").JSX.Element | null; toggleHelp: () => void; render(): import("react/jsx-runtime").JSX.Element; } export declare class Vec3Control extends React.PureComponent, { isExpanded: boolean; }> { state: { isExpanded: boolean; }; components: { 0: PD.Numeric; 1: PD.Numeric; 2: PD.Numeric; }; change(value: PD.MultiSelect['defaultValue']): void; componentChange: ParamOnChange; toggleExpanded: (e: React.MouseEvent) => void; render(): import("react/jsx-runtime").JSX.Element; } export declare class Mat4Control extends React.PureComponent, { isExpanded: boolean; }> { state: { isExpanded: boolean; }; components: { json: PD.Text; }; change(value: PD.MultiSelect['defaultValue']): void; componentChange: ParamOnChange; toggleExpanded: (e: React.MouseEvent) => void; changeValue(idx: number): (v: number) => void; get grid(): import("react/jsx-runtime").JSX.Element; render(): import("react/jsx-runtime").JSX.Element; } export declare class UrlControl extends SimpleParam { onChange: (e: React.ChangeEvent) => void; onKeyPress: (e: React.KeyboardEvent) => void; renderControl(): import("react/jsx-runtime").JSX.Element; } export declare class FileControl extends React.PureComponent> { state: { showHelp: boolean; }; change(value: File): void; onChangeFile: (e: React.ChangeEvent) => void; toggleHelp: () => void; renderControl(): import("react/jsx-runtime").JSX.Element; render(): import("react/jsx-runtime").JSX.Element; } export declare class FileListControl extends React.PureComponent> { state: { showHelp: boolean; }; change(value: FileList): void; onChangeFileList: (e: React.ChangeEvent) => void; toggleHelp: () => void; renderControl(): import("react/jsx-runtime").JSX.Element; render(): import("react/jsx-runtime").JSX.Element; } export declare class MultiSelectControl extends React.PureComponent>, { isExpanded: boolean; }> { state: { isExpanded: boolean; }; change(value: PD.MultiSelect['defaultValue']): void; toggle(key: string): (e: React.MouseEvent) => void; toggleExpanded: (e: React.MouseEvent) => void; render(): import("react/jsx-runtime").JSX.Element; } export declare class GroupControl extends React.PureComponent> & { inMapped?: boolean; }, { isExpanded: boolean; showPresets: boolean; showHelp: boolean; }> { state: { isExpanded: boolean; showPresets: boolean; showHelp: boolean; }; change(value: any): void; onChangeParam: ParamOnChange; toggleExpanded: () => void; toggleShowPresets: () => void; presetItems: (param: PD.Group) => ActionMenu.Items[]; onSelectPreset: ActionMenu.OnSelect; pivotedPresets(): import("react/jsx-runtime").JSX.Element | null; presets(): import("react/jsx-runtime").JSX.Element | null; pivoted(): import("react/jsx-runtime").JSX.Element; render(): import("react/jsx-runtime").JSX.Element | null; } export declare class MappedControl extends React.PureComponent>, { isExpanded: boolean; }> { state: { isExpanded: boolean; }; private valuesCache; private setValues; private getValues; change(value: PD.Mapped['defaultValue']): void; onChangeName: ParamOnChange; onChangeParam: ParamOnChange; toggleExpanded: () => void; areParamsEmpty(params: PD.Params): boolean; render(): import("react/jsx-runtime").JSX.Element; } export declare class ObjectListControl extends React.PureComponent, { isExpanded: boolean; }> { state: { isExpanded: boolean; }; change(value: any): void; add: (v: object) => void; actions: { update: (v: object, i: number) => void; move: (i: number, dir: -1 | 1) => void; remove: (i: number) => void; }; toggleExpanded: (e: React.MouseEvent) => void; render(): import("react/jsx-runtime").JSX.Element; } export declare class ConditionedControl extends React.PureComponent>> { change(value: PD.Conditioned['defaultValue']): void; onChangeCondition: ParamOnChange; onChangeParam: ParamOnChange; render(): import("react/jsx-runtime").JSX.Element; } export declare class ConvertedControl extends React.PureComponent>> { onChange: ParamOnChange; render(): import("react/jsx-runtime").JSX.Element | null; } export declare class ScriptControl extends React.PureComponent> { onChange: ParamOnChange; render(): import("react/jsx-runtime").JSX.Element; } export {};