UNPKG

vue3-free-layout

Version:

[vue3+ts]拖动布局,自由拖动,标尺,放大缩小,控件之间的标尺

38 lines (37 loc) 1.25 kB
import * as Y from "yjs"; import { WebsocketProvider } from "y-websocket"; import { DesignWidget } from "@/types"; export type YWidget = Y.Map<any>; export type YArray = Y.Array<YWidget>; interface Delta { insert?: Array<any> | string; delete?: number; retain?: number; } interface KeysData { key: string; action: 'add' | 'update' | 'delete'; value: any; } export interface UpdateData { type: 'array' | 'map'; path: Array<number | string>; target: any; deltaData?: Delta; keysData?: KeysData; handler: Function; } export default class SynchronizeService<T> { ydoc: Y.Doc; wsProvider: WebsocketProvider; yWidget: Y.Array<YWidget>; constructor(serverUrl?: string, roomName?: string); createWidget(widget: DesignWidget): Y.Map<any>; _onDataUpdate(YArrayEvent: Array<any>, Transaction: any): void; onDataUpdate: (data: T[], updateData: UpdateData[]) => void; getCurrentByPath(data: any, path: Array<string | number>): any; handlerArray(path: Array<string | number>, deltaData: Delta, currentData: any): void; handlerMap(path: Array<string | number>, keysData: KeysData, currentData: any): void; destroy(): void; } export {};