UNPKG

@infinite-canvas-tutorial/webcomponents

Version:
80 lines (79 loc) 2.4 kB
import { Canvas, Commands, ComputedCamera, Pen, SerializedNode } from '@infinite-canvas-tutorial/ecs'; import { type LitElement } from 'lit'; import { AppState, Task } from './context'; /** * Since the canvas is created in the system, we need to store them here for later use. */ export declare const pendingCanvases: { container: LitElement; canvas: Partial<Canvas>; camera: Partial<ComputedCamera>; }[]; /** * Expose the API to the outside world. * * @see https://docs.excalidraw.com/docs/@excalidraw/excalidraw/api/props/excalidraw-api */ export declare class API { #private; private readonly element; private readonly commands; appState: AppState; nodes: SerializedNode[]; /** * Injected from the LitElement's context provider. */ getAppState: () => AppState; setAppState: (appState: AppState) => void; getNodes: () => SerializedNode[]; setNodes: (nodes: SerializedNode[]) => void; constructor(element: LitElement, commands: Commands); /** * Create a new canvas. */ createCanvas(canvasProps: Partial<Canvas>): void; /** * Create a new camera. */ createCamera(cameraProps: Partial<ComputedCamera>): void; /** * Create a new landmark. */ createLandmark(): void; /** * Go to a landmark. */ gotoLandmark(): void; /** * ZoomLevel system will handle the zoom level. */ zoomTo(zoom: number): void; resizeCanvas(width: number, height: number): void; setPen(pen: Pen): void; setTaskbars(selected: Task[]): void; /** * @see https://docs.excalidraw.com/docs/@excalidraw/excalidraw/api/props/excalidraw-api#setcursor */ setCursor(cursor: string): void; /** * Delete Canvas component */ destroy(): void; /** * Select nodes. */ selectNodes(selected: SerializedNode['id'][], preserveSelection?: boolean): void; /** * If diff is provided, no need to calculate diffs. */ updateNode(node: SerializedNode, diff?: Partial<SerializedNode>): void; /** * Update the scene with new nodes. * It will calculate diffs and only update the changed nodes. * * @see https://docs.excalidraw.com/docs/@excalidraw/excalidraw/api/props/excalidraw-api#updatescene */ updateNodes(nodes: SerializedNode[]): void; undo(): void; redo(): void; }