UNPKG

@turbox3d/design-engine

Version:

Large-scale design application engine library

54 lines (53 loc) 1.94 kB
import { Domain, HistoryOperationType, Action } from '@turbox3d/reactivity'; import EntityObject from '../entity-object/index'; export default class DocumentSystem extends Domain { models: Map<string, EntityObject>; loading: boolean; undoable: boolean; redoable: boolean; disableUndoRedo: boolean; maxStepNumber: number; name: string; initDomainContext(): { isNeedRecord: boolean; }; /** 添加模型 */ addModel(model: EntityObject | EntityObject[]): void; /** 删除模型 */ removeModel(model: EntityObject | EntityObject[]): void; /** 根据 id 删除模型 */ removeModelById(id: string | string[]): void; /** 清空所有模型 */ clear(): void; /** 查找模型 */ findModel(model: EntityObject | EntityObject[]): EntityObject | (EntityObject | undefined)[] | undefined; /** 根据 id 查找模型 */ findModelById(id: string | string[]): EntityObject | (EntityObject | undefined)[] | undefined; /** 创建操作历史记录 */ createTimeTravel(name: string, maxStepNumber?: number): void; /** 切换到指定的历史记录 */ applyTimeTravel(): void; /** 历史记录变更会触发的自定义钩子,子类可以重写 */ historyChangeCustomHook(type: HistoryOperationType, action?: Action): void; /** 清空历史记录 */ clearTimeTravel(): void; /** 暂停记录历史 */ pauseRecord(): void; /** 继续记录历史 */ resumeRecord(): void; /** 撤销 */ undo(): void; /** 重做 */ redo(): void; /** 文档加载状态设置为加载中 */ isLoading(): void; /** 文档加载状态设置为加载完成 */ isLoaded(): void; /** 自动保存 */ protected autoSave(): Promise<void>; /** 载入文档 */ protected load(): Promise<void>; /** 保存文档 */ protected save(): Promise<void>; private updateTimeTravelStatus; }