@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
67 lines (66 loc) • 1.75 kB
TypeScript
export interface EntityState {
primaryKey: string;
bindingPath: string;
currentId: string | null;
label: string;
}
export interface UseBindingContext {
setup(): any;
get(bindingPath: string | string[]): EntityState;
}
export interface EntityFieldSchema {
id: string;
require: any;
multiLanguage: boolean;
defaultValue: any;
readonly: any;
bindingPath: string;
label: string;
type: Record<string, any>;
name: string;
}
export interface EntityTypeSchema {
entities: EntitySchema[];
primary: string;
displayName: string;
fields: EntityFieldSchema[];
name: string;
}
export interface EntitySchema {
id: string;
label: string;
code: string;
type: EntityTypeSchema;
name: string;
}
export interface ResolvedEntity {
bindingPaths: string[];
primaryKey: string;
label: string;
}
export interface ResolvedEntityField {
id: string;
bindingPath: string;
require: any;
readonly: any;
multiLanguage: boolean;
label: string;
dataSource: string;
}
export interface UseEntityResolver {
resolveEntityByDataSource(dataSource: string): ResolvedEntity | null;
resolveEntities(entitySchema: EntitySchema): ResolvedEntity[];
resolveEntity(entity: Record<string, any>, entityLabel: string, isRoot?: boolean): ResolvedEntity | null;
}
export interface UseFieldResolver {
resolveFieldById(fieldId: string): ResolvedEntityField | null;
}
export interface UseComponentInstanceManager {
register(id: string, instance: any): void;
get(id: string): any | null;
remove(id: string): void;
update(id: string, instance: any): void;
has(id: string): boolean;
getAll(): Map<string, any>;
clear(): void;
}