@visactor/vchart
Version:
charts lib based @visactor/VGrammar
27 lines (26 loc) • 1.72 kB
TypeScript
import type { IElement, IMark as IVGrammarMark } from '@visactor/vgrammar-core';
import type { Datum, StringOrNumber } from '../../typings';
import type { IStateManagerOption } from '../signal/interface';
import { StateManager } from '../signal/state-manager';
import type { CompilableMark } from './compilable-mark';
import type { IMarkStateManager, IStateInfo, StateValue } from './interface';
export declare class MarkStateManager extends StateManager implements IMarkStateManager {
protected _mark: CompilableMark;
private _stateInfoList;
getStateInfoList(): IStateInfo[];
constructor(option: IStateManagerOption, mark: CompilableMark);
protected _getDefaultStateMap(): Record<string, unknown>;
getStateInfo(stateValue: StateValue): IStateInfo;
addStateInfo(stateInfo: IStateInfo): void;
private _clearStateBeforeSet;
changeStateInfo(stateInfo: Partial<IStateInfo>): void;
clearStateInfo(stateValues: StateValue[]): void;
checkOneState(renderNode: IElement, datum: Datum | Datum[], state: IStateInfo, isMultiMark?: boolean): 'in' | 'out' | 'skip';
checkState(renderNode: IElement, datum: Datum | Datum[]): StateValue[];
checkDatumState(state: IStateInfo, datum: Datum | Datum[], isMultiMark: boolean): boolean;
checkItemsState(state: IStateInfo, item: any): boolean | undefined;
checkFieldsState(state: IStateInfo, datum: Datum | Datum[], item: any, isMultiMark: boolean): boolean;
checkLinearFieldState(domain: StringOrNumber[], key: string, datum: any, item: any, isMultiMark: boolean): boolean;
updateLayoutState(noRender?: boolean): void;
compileState(product: IVGrammarMark, stateSort?: (stateA: string, stateB: string) => number): void;
}