UNPKG

@kwiz/fluentui

Version:
90 lines (89 loc) 2.83 kB
import { CustomEventTargetBase } from './CustomEventTargetBase'; import { BasicPoint } from './point'; declare global { interface CSSStyleDeclaration { msTouchAction: string | null; } } export type DrawPadEvent = MouseEvent | Touch | PointerEvent; export interface FromDataOptions { clear?: boolean; } export interface PointGroupOptions { dotSize: number; minWidth: number; maxWidth: number; penColor: string; } export interface Options extends Partial<PointGroupOptions> { minDistance?: number; velocityFilterWeight?: number; backgroundColor?: string; throttle?: number; } export interface PointGroup extends PointGroupOptions { points: BasicPoint[]; } export default class DrawPadManager extends CustomEventTargetBase { private canvas; dotSize: import("@kwiz/common").DefaultProp<number>; minWidth: import("@kwiz/common").DefaultProp<number>; maxWidth: import("@kwiz/common").DefaultProp<number>; penColor: import("@kwiz/common").DefaultProp<string>; minDistance: import("@kwiz/common").DefaultProp<number>; velocityFilterWeight: import("@kwiz/common").DefaultProp<number>; backgroundColor: import("@kwiz/common").DefaultProp<string>; throttle: import("@kwiz/common").DefaultProp<number>; private _ctx; private _drawningStroke; private _isEmpty; private _lastPoints; private _data; private _lastVelocity; private _lastWidth; private _strokeMoveUpdate; constructor(canvas: HTMLCanvasElement, options?: Options); clear(): void; fromDataURL(dataUrl: string, /** default: clear, shrink and stretch all true */ options?: { clear?: boolean; shrinkToFit?: boolean; stretchToFit?: boolean; }): Promise<void>; toPng(): string; toDataURL(type?: 'image/png' | 'image/jpeg' | 'image/svg+xml', encoderOptions?: number): string; on(): void; off(): void; isEmpty(): boolean; canUndo(): boolean; undoLast(): void; resizeCanvas(): void; fromData(pointGroups: PointGroup[], { clear }?: FromDataOptions): void; toData(): PointGroup[]; private _handleMouseDown; private _handleMouseMove; private _handleMouseUp; private _handleTouchStart; private _handleTouchMove; private _handleTouchEnd; private _handlePointerStart; private _handlePointerMove; private _handlePointerEnd; private _strokeBegin; private _strokeUpdate; private _strokeEnd; private _handlePointerEvents; private _handleMouseEvents; private _handleTouchEvents; private _reset; private _createPoint; private _addPoint; private _calculateCurveWidths; private _strokeWidth; private _drawCurveSegment; private _drawCurve; private _drawDot; private _fromData; private _toSVG; }