UNPKG

molstar

Version:

A comprehensive macromolecular library.

148 lines (147 loc) 4.78 kB
/** * Copyright (c) 2018-2019 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal <david.sehnal@gmail.com> * @author Alexander Rose <alexander.rose@weirdbyte.de> */ import * as React from 'react'; export declare class Slider extends React.Component<{ min: number; max: number; value: number; step?: number; onChange: (v: number) => void; onChangeImmediate?: (v: number) => void; disabled?: boolean; onEnter?: () => void; }, { isChanging: boolean; current: number; }> { state: { isChanging: boolean; current: number; }; static getDerivedStateFromProps(props: { value: number; }, state: { isChanging: boolean; current: number; }): { current: number; } | null; begin: () => void; end: (v: number) => void; updateCurrent: (current: number) => void; updateManually: (v: number) => void; onManualBlur: () => void; render(): JSX.Element; } export declare class Slider2 extends React.Component<{ min: number; max: number; value: [number, number]; step?: number; onChange: (v: [number, number]) => void; disabled?: boolean; onEnter?: () => void; }, { isChanging: boolean; current: [number, number]; }> { state: { isChanging: boolean; current: [number, number]; }; static getDerivedStateFromProps(props: { value: [number, number]; }, state: { isChanging: boolean; current: [number, number]; }): { current: [number, number]; } | null; begin: () => void; end: (v: [number, number]) => void; updateCurrent: (current: [number, number]) => void; updateMax: (v: number) => void; updateMin: (v: number) => void; render(): JSX.Element; } export declare class Handle extends React.Component<Partial<HandleProps>, {}> { render(): JSX.Element; } export interface SliderBaseProps { min: number; max: number; step?: number; defaultValue?: number | number[]; value?: number | number[]; marks?: any; className?: string; prefixCls?: string; disabled?: boolean; onBeforeChange?: (value: number | number[]) => void; onChange?: (value: number | number[]) => void; onAfterChange?: (value: number | number[]) => void; handle?: JSX.Element; tipFormatter?: (value: number, index: number) => any; range?: boolean | number; vertical?: boolean; allowCross?: boolean; pushable?: boolean | number; } export interface SliderBaseState { handle: number | null; recent: number; bounds: number[]; } export declare class SliderBase extends React.Component<SliderBaseProps, SliderBaseState> { private sliderElement; private handleElements; constructor(props: SliderBaseProps); static defaultProps: SliderBaseProps; private dragOffset; private startPosition; private startValue; private _getPointsCache; componentDidUpdate(prevProps: SliderBaseProps): void; onChange(state: this['state']): void; onMouseDown: (e: MouseEvent) => void; onMouseMove(e: MouseEvent): void; onMove(e: MouseEvent | TouchEvent, position: number): void; onStart(position: number): void; onTouchMove: (e: TouchEvent) => void; onTouchStart: (e: TouchEvent) => void; /** * Returns an array of possible slider points, taking into account both * `marks` and `step`. The result is cached. */ getPoints(): any; getPrecision(step: number): number; getSliderLength(): number; getSliderStart(): number; getValue(): number; private eventHandlers; addDocumentEvents(type: 'touch' | 'mouse'): void; calcOffset: (value: number) => number; calcValue(offset: number): number; calcValueByPos(position: number): number; end(type: 'mouse' | 'touch'): void; isEventFromHandle(e: MouseEvent | TouchEvent): boolean; isValueOutOfBounds(value: number, props: SliderBaseProps): boolean; pushHandle(bounds: number[], handle: number, direction: number, amount: number): boolean; pushHandleOnePoint(bounds: number[], handle: number, direction: number): boolean; pushSurroundingHandles(bounds: number[], handle: number, originalValue: number): void; removeEvents(type: 'touch' | 'mouse'): void; trimAlignValue(v: number, props?: SliderBaseProps): number; render(): JSX.Element; } export interface HandleProps { className: string; vertical: boolean; offset: number; tipFormatter: (v: number, index: number) => any; value: number; index: number; }