@smoovy/tween
Version:
simple and easy-to-use tween lib
39 lines (38 loc) • 1.29 kB
TypeScript
import { TweenController, TweenControllerConfig } from './controller';
import { TweenProps } from './props';
export interface TweenConfig<V extends (TweenProps | object)> extends TweenControllerConfig {
from: V | HTMLElement;
to: Partial<V>;
key?: any;
target?: V | HTMLElement;
recover?: boolean;
units?: Record<string, string>;
mutate?: boolean;
overwrite?: boolean;
seekUpdate?: boolean;
onOverwrite?: () => void;
onUpdate?: (values: V, state: {
target: Tween<V>;
linear: number;
eased: number;
}) => void;
}
export type SimpleTweenConfig<V extends (TweenProps | object)> = Omit<TweenConfig<V>, 'from' | 'to'>;
/** @todo improve typing (prevent any) */
export declare class Tween<T extends (TweenProps | object) = TweenProps> extends TweenController<TweenConfig<T>> {
protected config: TweenConfig<T>;
private static registry;
private registry;
private originState;
private changedState;
private resultState;
private domTarget?;
constructor(config: TweenConfig<T>);
get key(): any;
protected updateRegistry(): void;
protected beforeStop(): void;
protected beforeSeek(): void;
private overwrite;
update(): this;
process(eased: number, linear: number): this;
}