UNPKG

1.4 kBTypeScriptView Raw
1import * as Geom from './geom.js';
2import { Plugin, PluginApi } from './plugins.js';
3export interface CanvasOptions {
4 element: HTMLElement;
5}
6export type LazyCanvasOptions = string | HTMLElement | CanvasOptions;
7export type HtmlCanvasContext = CanvasRenderingContext2D;
8export interface HtmlCanvasApi extends PluginApi {
9 /** Returns the underlying canvas element. */
10 get element(): HTMLCanvasElement;
11 clientToCanvas(clientPos: Geom.Point): Geom.Point;
12 canvasToClient(renderPos: Geom.Point): Geom.Point;
13}
14export declare class HtmlCanvas implements Plugin {
15 onchange: () => void;
16 private _container?;
17 private _offscreenCanvas;
18 private _offscreenContext;
19 private _mainCanvas;
20 private _context;
21 private _resizeObserver;
22 private _prevUpdateHash;
23 private _scaleFactor;
24 private _cssWidth;
25 private _cssHeight;
26 meta: {
27 name: string;
28 };
29 get api(): HtmlCanvasApi;
30 static extractOptions(options: unknown): CanvasOptions;
31 constructor(options: CanvasOptions);
32 destruct(): void;
33 get element(): HTMLCanvasElement;
34 get context(): CanvasRenderingContext2D;
35 calcSize(): Geom.Point;
36 frameBegin(): void;
37 frameEnd(): void;
38 private _clientRect;
39 private _canvasScale;
40 private _clientToCanvas;
41 private _canvasToClient;
42 private _toCanvasElement;
43 private _createResizeObserverFor;
44}