@kwiz/fluentui
Version:
KWIZ common controls for FluentUI
90 lines (89 loc) • 2.83 kB
TypeScript
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;
}