@chief-editor/flow
Version:
Old核心数据流
42 lines (41 loc) • 2.47 kB
TypeScript
import { IBoardInfo, IBrick, IBrickDataGlobal, IBrickInstance, IValidateInfo } from '@chief-editor/base';
export declare type PromiseResult<T> = Promise<T> | T;
export interface IFlowBrickLifeCycle<V, DS, DP, CG, ST> {
onLoaded: (_: void, path: IBrick<V, DS, DP, CG, ST>) => PromiseResult<void>;
onDispose: (_: void, path: IBrick<V, DS, DP, CG, ST>) => PromiseResult<void>;
onBeforeRefreshBrick: (_: void, path: IBrick<V, DS, DP, CG, ST>) => PromiseResult<void>;
onAfterRefreshBrick: (_: void, path: IBrick<V, DS, DP, CG, ST>) => PromiseResult<void>;
onBeforeValidate: (_: void, path: IBrick<V, DS, DP, CG, ST>) => PromiseResult<void>;
onAfterValidate: (_: void, path: IBrick<V, DS, DP, CG, ST>) => PromiseResult<void>;
onBeforeGetDatasource: <E>(extra: E, path: IBrick<V, DS, DP, CG, ST>) => PromiseResult<E>;
onAfterGetDatasource: (data: DS, path: IBrick<V, DS, DP, CG, ST>) => PromiseResult<void>;
onCheckValidateValue: (value: V, path: IBrick<V, DS, DP, CG, ST>) => PromiseResult<V | null>;
onBeforeChange: (value: V, path: IBrick<V, DS, DP, CG, ST>) => PromiseResult<V>;
onValueChange?: (value: V, path: IBrick<V, DS, DP, CG, ST>) => PromiseResult<void>;
onAfterChange: (value: V, path: IBrick<V, DS, DP, CG, ST>) => PromiseResult<void>;
onCatchErrorInfo: (info: IValidateInfo, path: IBrick<V, DS, DP, CG, ST>) => PromiseResult<string>;
}
export interface IFlowBrickRenderConfig {
updateWhenLoading: boolean;
updateWhenValidating: boolean;
updateUntilReady: boolean;
}
export interface IFlowPartMapInfo {
key: string;
part: string;
bricks?: IBrickDataGlobal[];
repeat?: boolean;
field?: string;
}
export interface IFlowBrickConfig<V, DS, DP, CG, ST> extends Partial<IFlowBrickLifeCycle<V, DS, DP, CG, ST>> {
getInitialState(): ST;
getDynamicInitialState(path: IBrickInstance<V, DS, DP, CG, ST>): ST;
getDefaultValue(): V;
getDynamicDefaultValue(path: IBrickInstance<V, DS, DP, CG, ST>): V;
getInitialDatasource(): DS;
getPartBoardInfoFromBrickData(path: IBrickInstance<V, DS, DP, CG, ST>, part: string): IBoardInfo | null;
getPartKeyMapFromBrickData?(path: IBrickInstance<V, DS, DP, CG, ST>): IFlowPartMapInfo[];
getDisplayData(path: IBrickInstance<V, DS, DP, CG, ST>): DP;
getRenderConfig(path: IBrickInstance<V, DS, DP, CG, ST>): IFlowBrickRenderConfig;
}
export declare type IFlowBrickConfigGlobal = IFlowBrickConfig<any, any, any, any, any>;