99 lines
4.2 KiB
TypeScript
99 lines
4.2 KiB
TypeScript
|
import Element, { ElementProps, ElementStatePropNames, ElementAnimateConfig, ElementCommonState } from '../Element';
|
||
|
import BoundingRect from '../core/BoundingRect';
|
||
|
import { PropType, Dictionary, MapToType } from '../core/types';
|
||
|
import Path from './Path';
|
||
|
import Animator from '../animation/Animator';
|
||
|
export interface CommonStyleProps {
|
||
|
shadowBlur?: number;
|
||
|
shadowOffsetX?: number;
|
||
|
shadowOffsetY?: number;
|
||
|
shadowColor?: string;
|
||
|
opacity?: number;
|
||
|
blend?: string;
|
||
|
}
|
||
|
export declare const DEFAULT_COMMON_STYLE: CommonStyleProps;
|
||
|
export declare const DEFAULT_COMMON_ANIMATION_PROPS: MapToType<DisplayableProps, boolean>;
|
||
|
export interface DisplayableProps extends ElementProps {
|
||
|
style?: Dictionary<any>;
|
||
|
zlevel?: number;
|
||
|
z?: number;
|
||
|
z2?: number;
|
||
|
culling?: boolean;
|
||
|
cursor?: string;
|
||
|
rectHover?: boolean;
|
||
|
progressive?: boolean;
|
||
|
incremental?: boolean;
|
||
|
ignoreCoarsePointer?: boolean;
|
||
|
batch?: boolean;
|
||
|
invisible?: boolean;
|
||
|
}
|
||
|
declare type DisplayableKey = keyof DisplayableProps;
|
||
|
declare type DisplayablePropertyType = PropType<DisplayableProps, DisplayableKey>;
|
||
|
export declare type DisplayableStatePropNames = ElementStatePropNames | 'style' | 'z' | 'z2' | 'invisible';
|
||
|
export declare type DisplayableState = Pick<DisplayableProps, DisplayableStatePropNames> & ElementCommonState;
|
||
|
interface Displayable<Props extends DisplayableProps = DisplayableProps> {
|
||
|
animate(key?: '', loop?: boolean): Animator<this>;
|
||
|
animate(key: 'style', loop?: boolean): Animator<this['style']>;
|
||
|
getState(stateName: string): DisplayableState;
|
||
|
ensureState(stateName: string): DisplayableState;
|
||
|
states: Dictionary<DisplayableState>;
|
||
|
stateProxy: (stateName: string) => DisplayableState;
|
||
|
}
|
||
|
declare class Displayable<Props extends DisplayableProps = DisplayableProps> extends Element<Props> {
|
||
|
invisible: boolean;
|
||
|
z: number;
|
||
|
z2: number;
|
||
|
zlevel: number;
|
||
|
culling: boolean;
|
||
|
cursor: string;
|
||
|
rectHover: boolean;
|
||
|
incremental: boolean;
|
||
|
ignoreCoarsePointer?: boolean;
|
||
|
style: Dictionary<any>;
|
||
|
protected _normalState: DisplayableState;
|
||
|
protected _rect: BoundingRect;
|
||
|
protected _paintRect: BoundingRect;
|
||
|
protected _prevPaintRect: BoundingRect;
|
||
|
dirtyRectTolerance: number;
|
||
|
useHoverLayer?: boolean;
|
||
|
__hoverStyle?: CommonStyleProps;
|
||
|
__clipPaths?: Path[];
|
||
|
__canvasFillGradient: CanvasGradient;
|
||
|
__canvasStrokeGradient: CanvasGradient;
|
||
|
__canvasFillPattern: CanvasPattern;
|
||
|
__canvasStrokePattern: CanvasPattern;
|
||
|
__svgEl: SVGElement;
|
||
|
constructor(props?: Props);
|
||
|
protected _init(props?: Props): void;
|
||
|
beforeBrush(): void;
|
||
|
afterBrush(): void;
|
||
|
innerBeforeBrush(): void;
|
||
|
innerAfterBrush(): void;
|
||
|
shouldBePainted(viewWidth: number, viewHeight: number, considerClipPath: boolean, considerAncestors: boolean): boolean;
|
||
|
contain(x: number, y: number): boolean;
|
||
|
traverse<Context>(cb: (this: Context, el: this) => void, context?: Context): void;
|
||
|
rectContain(x: number, y: number): boolean;
|
||
|
getPaintRect(): BoundingRect;
|
||
|
setPrevPaintRect(paintRect: BoundingRect): void;
|
||
|
getPrevPaintRect(): BoundingRect;
|
||
|
animateStyle(loop: boolean): Animator<this["style"]>;
|
||
|
updateDuringAnimation(targetKey: string): void;
|
||
|
attrKV(key: DisplayableKey, value: DisplayablePropertyType): void;
|
||
|
setStyle(obj: Props['style']): this;
|
||
|
setStyle<T extends keyof Props['style']>(obj: T, value: Props['style'][T]): this;
|
||
|
dirtyStyle(notRedraw?: boolean): void;
|
||
|
dirty(): void;
|
||
|
styleChanged(): boolean;
|
||
|
styleUpdated(): void;
|
||
|
createStyle(obj?: Props['style']): Props["style"];
|
||
|
useStyle(obj: Props['style']): void;
|
||
|
isStyleObject(obj: Props['style']): any;
|
||
|
protected _innerSaveToNormal(toState: DisplayableState): void;
|
||
|
protected _applyStateObj(stateName: string, state: DisplayableState, normalState: DisplayableState, keepCurrentStates: boolean, transition: boolean, animationCfg: ElementAnimateConfig): void;
|
||
|
protected _mergeStates(states: DisplayableState[]): DisplayableState;
|
||
|
protected _mergeStyle(targetStyle: CommonStyleProps, sourceStyle: CommonStyleProps): CommonStyleProps;
|
||
|
getAnimationStyleProps(): MapToType<DisplayableProps, boolean>;
|
||
|
protected static initDefaultProps: void;
|
||
|
}
|
||
|
export default Displayable;
|