UNPKG

@vtj/designer

Version:

VTJ 是一款基于 Vue3 + Typescript 的低代码页面可视化设计器。内置低代码引擎、渲染器和代码生成器,面向前端开发者,开箱即用。 无缝嵌入本地开发工程,不改变前端开发流程和编码习惯。

77 lines (76 loc) 2.62 kB
import { ShallowReactive, InjectionKey, MaybeRef, App, Ref } from 'vue'; import { Base, ProjectModel, BlockModel, HistoryModel, Service, Emitter, ProjectSchema, ProjectModelEvent } from '@vtj/core'; import { Context, Provider, Access, ProvideAdapter } from '@vtj/renderer'; import { SkeletonWrapperInstance } from '../wrappers'; import { Simulator } from './simulator'; import { Assets } from './assets'; import { Report } from './report'; export declare const engineKey: InjectionKey<ShallowReactive<Engine>>; export interface EngineOptions { container: MaybeRef<HTMLElement | undefined>; service: Service; project?: Partial<ProjectSchema>; dependencies?: Record<string, () => Promise<any>>; materials?: Record<string, () => Promise<any>>; materialPath?: string; globals?: Record<string, any>; adapter?: Partial<ProvideAdapter>; install?: (app: App, engine?: Engine) => void; pageBasePath?: string; pageRouteName?: string; /** * 这个是引擎自己的Access,不是业务应用,应用的在 adapter 中设置 */ access?: Access; /** * 远程服务host */ remote?: string; } export declare const SAVE_BLOCK_FILE_FINISH = "SAVE_BLOCK_FILE_FINISH"; export declare class Engine extends Base { options: EngineOptions; app?: App; skeleton?: SkeletonWrapperInstance | null; container: MaybeRef<HTMLElement | undefined>; service: Service; assets: Assets; simulator: Simulator; emitter: Emitter; project: Ref<ProjectModel | null>; current: Ref<BlockModel | null>; context: Ref<Context | null>; isEmptyCurrent: Ref<boolean>; history: Ref<HistoryModel | null>; provider: Provider; adapter?: Partial<ProvideAdapter>; /** * 当current变化时,更新该值,用于通知组件更新 */ changed: Ref<symbol>; access?: Access; remote: string; report: Report; constructor(options: EngineOptions); private init; private render; private bindEvents; private activeFile; private changeFile; private changeCurrentFile; private updateCurrent; private saveProject; private saveBlockFile; onSaveBlockFileFinish(callback: (e: ProjectModelEvent) => void): void; private saveMaterials; private saveCurrentFile; private initHistory; private saveHistory; private loadHistory; private publish; genSource(): Promise<string | undefined>; private publishCurrent; dispose(): void; openFile(fileId?: string): Promise<void>; } export declare function useEngine(): ShallowReactive<Engine>;