@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
61 lines (60 loc) • 2.93 kB
TypeScript
import { DesignerHostService } from "../../designer-canvas/src/composition/types";
export type MapperFunction = (key: string, value: any, resolvedSchema?: any) => Record<string, any>;
export interface SchemaService {
closest: (componentId: string, componentType: string) => Record<string, any> | null;
getSchemaById: (string: any) => Record<string, any>;
load: (componentSchema: Record<string, any>) => void;
select: (root: Record<string, any>, predicate: (child: Record<string, any>) => boolean) => Record<string, any>;
getRealEditorType: (editorType: string) => string;
updateExpression: (expressionItem: any) => void;
getExpressionRuleValue: (expressionId: string, ruleType: string) => string;
}
export interface PropertyConverter {
convertTo: (schema: Record<string, any>, propertyKey: string, propertyValue: any, schemaService: SchemaService, componentId?: string) => void;
convertFrom: (schema: Record<string, any>, propertyKey: string, schemaService: SchemaService, componentId?: string) => any;
}
export interface DynamicResolver {
getSchemaByType: (componentType: string, resolveContext?: Record<string, any>, designerHostService?: DesignerHostService) => Record<string, any> | null;
getPropertyConfigByType?: (componentType: string) => Record<string, any> | null;
}
export type SchemaResolverFunction = (dynamicResolver: DynamicResolver, schema: Record<string, any>, resolveContext: Record<string, any>, designerHostService?: DesignerHostService) => Record<string, any>;
export type EffectFunction = (source: Record<string, any>) => Record<string, any>;
export interface EventDispatcher {
dispatch(token: string, eventName: string, ...payloads: any[]): any;
}
export interface BindingModel {
getValue(field: string): any;
setValue(field: string, value: any): any;
getList(dataSource: string): any;
updateData(...payloads: any[]): any;
dataMapping(...payloads: any[]): any;
}
export interface BindingData {
getValue(elementId: string): any;
setValue(elementId: string, field: string | undefined, value: any): any;
onValueChange: (callback: (event: any) => void) => void;
}
export interface BindingResolver {
resolve(schema: Record<string, any>, bindingData: BindingData): any;
}
export interface SelectionItemResolver {
selectItemById(component: any, id: string): any;
}
export interface EditorResolver {
resolve(schema: Record<string, any>): any;
}
export interface UpdateColumnsResolver {
updateColumns(component: any, schema: Record<string, any>): any;
}
export interface ViewEvent {
token: string;
type: string;
name: string;
payloads: any[];
}
export interface EventHandlerResolver {
resolve(schema: Record<string, any>, event: ViewEvent): any;
}
export interface Caller {
call: (methodName: string, viewSchema: Record<string, any>, payloads: any[], editorSchema?: Record<string, any>) => any;
}