UNPKG

d-render

Version:

数据渲染库 - form、table、search-form

55 lines (54 loc) 2.17 kB
import { IAnyObject, IRenderConfigDependOn, TFormConfig, IRenderConfigDependOnEffect } from '@d-render/shared'; import { IKey } from './util'; type TEffectFn = ((...args: unknown[]) => unknown | Promise<unknown>) | boolean; interface IPrivateParam { keys: Array<string>; oldValues: Array<unknown>; } type TEffect = [ TEffectFn, IPrivateParam ]; export type IEffects = Array<TEffect>; export type IExecutor = (values: IAnyObject, outValues: IAnyObject | undefined, effects: IEffects) => void | Promise<void>; interface IGlobalParam { values: IAnyObject; outValues?: IAnyObject; keys: Array<IKey>; oldValues: Array<unknown>; executeChangeValueEffect: boolean; } interface IEffectExecutorConfig { executor: IExecutor; condition?: (effects: IEffects, executeChangeValueEffect: boolean) => boolean; transformStrEffect?: (effectStr: string) => Function; } export interface IEffectExecutorConfigs { [propname: string]: IEffectExecutorConfig; } interface IEffectConfig { [propname: string]: IEffects; } interface IEffectParam { keys?: Array<string>; effect?: IRenderConfigDependOn['effect']; oldValues?: Array<unknown>; } type IEffectParams = Array<IEffectParam>; export declare class EffectExecutor { config: IEffectExecutorConfigs; types: Array<string>; executeChangeValueEffect?: boolean; values?: IAnyObject; outValues?: IAnyObject; effectsConfig?: IEffectConfig; constructor(config?: IEffectExecutorConfigs); setExecutor(type: string, executor: IExecutor): void; compatibleEffect(effectConfig: IRenderConfigDependOnEffect, type: string, param: IPrivateParam | IGlobalParam): (TEffectFn | IPrivateParam | IGlobalParam)[][]; getGlobalEffect(fieldConfig: TFormConfig, type: string): any; getExecuteEffect(params: IEffectParams, fieldConfig: TFormConfig, globalParam: IGlobalParam): IEffectConfig; analysisEffects(effectParams: IEffectParams, config: TFormConfig, globalParam: IGlobalParam): void; execute(type: string, logKey: string, ...args: [effects: IEffects, executeChangeValueEffect: boolean]): void; executeAll(logKey: string): void; } export {};