@chief-editor/flow
Version:
Old核心数据流
55 lines (54 loc) • 2.12 kB
TypeScript
import { BaseBrick, IBrickData, IBrickInfo, IBrickPartConfig, IValidateInfo, Scheduler } from '@chief-editor/base';
import { ILayoutConfig } from '@chief-editor/types';
import { FunctionAny } from '@co-hooks/util';
import { IFlowBrickConfig } from '../types';
import { FlowBrick } from './FlowBrick';
import { FlowModel } from './FlowModel';
export interface IFlowSchedulerOptions<V, DS, DP, CG, ST> {
brickConfig: IFlowBrickConfig<V, DS, DP, CG, ST>;
model: FlowModel;
}
export interface IFlowWatcher {
watchers: string[];
func: FunctionAny;
immediate?: boolean;
lazy?: boolean;
}
export declare class FlowScheduler<V, DS, DP, CG, ST> implements Scheduler<V, DS, DP, CG, ST> {
private watcherId;
private readonly brickConfig;
private readonly model;
private events;
private hooks;
private validator;
private pending;
private loader?;
private readonly queue;
constructor(options: IFlowSchedulerOptions<V, DS, DP, CG, ST>);
initBrickData(brick: BaseBrick<V, DS, DP, CG, ST>, data: IBrickData<V, DS, DP, CG, ST>): IBrickInfo;
getBrickData(): Omit<IBrickData<V, DS, DP, CG, ST>, 'parts'>;
getPartList(): IBrickPartConfig[];
isPartDynamic(): boolean;
setState(state: Partial<ST>): void;
setValue(value: V, manual?: boolean, isSilent?: boolean): void;
getDatasource(data: unknown): void;
dispatchEvent(name: string | Event, param?: unknown): void;
getHook(name: string): FunctionAny | null;
dispose(): void;
initStaticBrickData(): void;
init(): void;
updateBrickData(data: IBrickData<V, DS, DP, CG, ST>): void;
setBrickLayout(layout: ILayoutConfig): void;
getByExpression(...expression: Array<string | number>): any;
private executeHook;
private extractBrickData;
private initConfig;
private loadBrickScheduler;
private initPriorityQueue;
private getDatasourceTask;
}
export interface FlowScheduler<V, DS, DP, CG, ST> {
readonly brick: FlowBrick<V, DS, DP, CG, ST>;
data: IBrickData<V, DS, DP, CG, ST>;
}
export declare function getDefaultValidateInfo(): IValidateInfo;