UNPKG

@visactor/vrender-core

Version:

```typescript import { xxx } from '@visactor/vrender-core'; ```

42 lines (41 loc) 1.56 kB
export interface StateDefinition<T extends Record<string, any> = Record<string, any>> { name: string; priority?: number; patch?: Partial<T>; resolver?: (ctx: StateResolveContext<T>) => Partial<T> | void; declaredAffectedKeys?: string[] | Set<string>; exclude?: string[]; suppress?: string[]; } export type StateMergeMode = 'shallow' | 'deep'; export interface CompiledStateDefinition<T extends Record<string, any> = Record<string, any>> { name: string; priority: number; rank: number; patch?: Partial<T>; resolver?: (ctx: StateResolveContext<T>) => Partial<T> | void; declaredAffectedKeys?: Set<string>; exclude: Set<string>; suppress: Set<string>; hasResolver: boolean; affectedKeys: Set<string>; } export interface StateResolveContext<T extends Record<string, any> = Record<string, any>> { graphic: any; activeStates: ReadonlyArray<string>; effectiveStates: ReadonlyArray<string>; baseAttributes: Partial<T>; resolvedPatch: Partial<T>; } export interface StateTransitionResult { changed: boolean; activeStates: string[]; effectiveStates: string[]; suppressed: string[]; } export type StateDefinitionsInput<T extends Record<string, any> = Record<string, any>> = Record<string, Partial<T> | StateDefinition<T>>; export interface IStateEngineOptions<T extends Record<string, any> = Record<string, any>> { compiledDefinitions: Map<string, CompiledStateDefinition<T>>; stateSort?: (a: string, b: string) => number; mergeMode?: StateMergeMode; }