123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- import Displayable, { DisplayableProps, CommonStyleProps, DisplayableStatePropNames } from './Displayable';
- import Element, { ElementAnimateConfig } from '../Element';
- import PathProxy from '../core/PathProxy';
- import { PatternObject } from './Pattern';
- import { Dictionary, PropType, MapToType } from '../core/types';
- import BoundingRect from '../core/BoundingRect';
- import { LinearGradientObject } from './LinearGradient';
- import { RadialGradientObject } from './RadialGradient';
- import Animator from '../animation/Animator';
- export interface PathStyleProps extends CommonStyleProps {
- fill?: string | PatternObject | LinearGradientObject | RadialGradientObject;
- stroke?: string | PatternObject | LinearGradientObject | RadialGradientObject;
- decal?: PatternObject;
- strokePercent?: number;
- strokeNoScale?: boolean;
- fillOpacity?: number;
- strokeOpacity?: number;
- lineDash?: false | number[] | 'solid' | 'dashed' | 'dotted';
- lineDashOffset?: number;
- lineWidth?: number;
- lineCap?: CanvasLineCap;
- lineJoin?: CanvasLineJoin;
- miterLimit?: number;
- strokeFirst?: boolean;
- }
- export declare const DEFAULT_PATH_STYLE: PathStyleProps;
- export declare const DEFAULT_PATH_ANIMATION_PROPS: MapToType<PathProps, boolean>;
- export interface PathProps extends DisplayableProps {
- strokeContainThreshold?: number;
- segmentIgnoreThreshold?: number;
- subPixelOptimize?: boolean;
- style?: PathStyleProps;
- shape?: Dictionary<any>;
- autoBatch?: boolean;
- __value?: (string | number)[] | (string | number);
- buildPath?: (ctx: PathProxy | CanvasRenderingContext2D, shapeCfg: Dictionary<any>, inBatch?: boolean) => void;
- }
- declare type PathKey = keyof PathProps;
- declare type PathPropertyType = PropType<PathProps, PathKey>;
- interface Path<Props extends PathProps = PathProps> {
- animate(key?: '', loop?: boolean): Animator<this>;
- animate(key: 'style', loop?: boolean): Animator<this['style']>;
- animate(key: 'shape', loop?: boolean): Animator<this['shape']>;
- getState(stateName: string): PathState;
- ensureState(stateName: string): PathState;
- states: Dictionary<PathState>;
- stateProxy: (stateName: string) => PathState;
- }
- export declare type PathStatePropNames = DisplayableStatePropNames | 'shape';
- export declare type PathState = Pick<PathProps, PathStatePropNames> & {
- hoverLayer?: boolean;
- };
- declare class Path<Props extends PathProps = PathProps> extends Displayable<Props> {
- path: PathProxy;
- strokeContainThreshold: number;
- segmentIgnoreThreshold: number;
- subPixelOptimize: boolean;
- style: PathStyleProps;
- autoBatch: boolean;
- private _rectStroke;
- protected _normalState: PathState;
- protected _decalEl: Path;
- shape: Dictionary<any>;
- constructor(opts?: Props);
- update(): void;
- getDecalElement(): Path<PathProps>;
- protected _init(props?: Props): void;
- protected getDefaultStyle(): Props['style'];
- protected getDefaultShape(): {};
- protected canBeInsideText(): boolean;
- protected getInsideTextFill(): "#333" | "#ccc" | "#eee";
- protected getInsideTextStroke(textFill?: string): string;
- buildPath(ctx: PathProxy | CanvasRenderingContext2D, shapeCfg: Dictionary<any>, inBatch?: boolean): void;
- pathUpdated(): void;
- getUpdatedPathProxy(inBatch?: boolean): PathProxy;
- createPathProxy(): void;
- hasStroke(): boolean;
- hasFill(): boolean;
- getBoundingRect(): BoundingRect;
- contain(x: number, y: number): boolean;
- dirtyShape(): void;
- dirty(): void;
- animateShape(loop: boolean): Animator<this["shape"]>;
- updateDuringAnimation(targetKey: string): void;
- attrKV(key: PathKey, value: PathPropertyType): void;
- setShape(obj: Props['shape']): this;
- setShape<T extends keyof Props['shape']>(obj: T, value: Props['shape'][T]): this;
- shapeChanged(): boolean;
- createStyle(obj?: Props['style']): Props["style"];
- protected _innerSaveToNormal(toState: PathState): void;
- protected _applyStateObj(stateName: string, state: PathState, normalState: PathState, keepCurrentStates: boolean, transition: boolean, animationCfg: ElementAnimateConfig): void;
- protected _mergeStates(states: PathState[]): PathState;
- getAnimationStyleProps(): MapToType<PathProps, boolean>;
- isZeroArea(): boolean;
- static extend<Shape extends Dictionary<any>>(defaultProps: {
- type?: string;
- shape?: Shape;
- style?: PathStyleProps;
- beforeBrush?: Displayable['beforeBrush'];
- afterBrush?: Displayable['afterBrush'];
- getBoundingRect?: Displayable['getBoundingRect'];
- calculateTextPosition?: Element['calculateTextPosition'];
- buildPath(this: Path, ctx: CanvasRenderingContext2D | PathProxy, shape: Shape, inBatch?: boolean): void;
- init?(this: Path, opts: PathProps): void;
- }): {
- new (opts?: PathProps & {
- shape: Shape;
- }): Path;
- };
- protected static initDefaultProps: void;
- }
- export default Path;
|