dotting
Version:
Dotting is a pixel art editor component library for react
103 lines (102 loc) • 4.77 kB
TypeScript
import React from "react";
import { AddGridIndicesParams, BRUSH_PATTERN_ELEMENT, BrushTool, CanvasBrushChangeHandler, CanvasDataChangeHandler, CanvasGridChangeHandler, CanvasHoverPixelChangeHandler, CanvasInfoChangeHandler, CanvasStrokeEndHandler, DeleteGridIndicesParams, DottingData, ImageDownloadOptions, LayerChangeHandler, LayerProps, PixelModifyItem } from "./Canvas/types";
export interface DottingProps {
width: number | string;
height: number | string;
style?: React.CSSProperties;
gridStrokeColor?: string;
gridStrokeWidth?: number;
isGridVisible?: boolean;
backgroundColor?: string;
initLayers?: Array<LayerProps>;
isPanZoomable?: boolean;
isGridFixed?: boolean;
brushTool?: BrushTool;
brushColor?: string;
indicatorData?: Array<PixelModifyItem>;
isInteractionApplicable?: boolean;
isDrawingEnabled?: boolean;
gridSquareLength?: number;
defaultPixelColor?: string;
minScale?: number;
maxScale?: number;
initAutoScale?: boolean;
resizeUnit?: number;
zoomSensitivity?: number;
maxColumnCount?: number;
minColumnCount?: number;
maxRowCount?: number;
minRowCount?: number;
}
export interface DottingRef {
clear: () => void;
colorPixels: (data: Array<PixelModifyItem>) => void;
erasePixels: (data: Array<{
rowIndex: number;
columnIndex: number;
}>) => void;
downloadImage: (options: ImageDownloadOptions) => void;
setIndicatorPixels: (data: Array<PixelModifyItem>) => void;
undo: () => void;
redo: () => void;
setData: (data: Array<Array<PixelModifyItem>>) => void;
addGridIndices: ({ rowIndices, columnIndices, data, layerId, isLocalChange, }: AddGridIndicesParams) => void;
deleteGridIndices: ({ rowIndices, columnIndices, layerId, isLocalChange, }: DeleteGridIndicesParams) => void;
changeBrushColor: (color: string) => void;
changeBrushTool: (tool: BrushTool) => void;
changeBrushPattern: (pattern: Array<Array<BRUSH_PATTERN_ELEMENT>>) => void;
addLayer: (layerId: string, insertPosition: number, data?: Array<Array<PixelModifyItem>>) => void;
removeLayer: (layerId: string) => void;
changeLayerPosition: (layerId: string, insertPosition: number) => void;
showLayer: (layerId: string) => void;
hideLayer: (layerId: string) => void;
isolateLayer: (layerId: string) => void;
showAllLayers: () => void;
setCurrentLayer: (layerId: string) => void;
reorderLayersByIds: (layerIds: Array<string>) => void;
addDataChangeListener: (listener: CanvasDataChangeHandler) => void;
removeDataChangeListener: (listener: CanvasDataChangeHandler) => void;
addGridChangeListener: (listener: CanvasGridChangeHandler) => void;
removeGridChangeListener: (listener: CanvasGridChangeHandler) => void;
addBrushChangeListener: (listener: CanvasBrushChangeHandler) => void;
removeBrushChangeListener: (listener: CanvasBrushChangeHandler) => void;
addStrokeEndListener: (listener: CanvasStrokeEndHandler) => void;
removeStrokeEndListener: (listener: CanvasStrokeEndHandler) => void;
addHoverPixelChangeListener: (listener: CanvasHoverPixelChangeHandler) => void;
removeHoverPixelChangeListener: (listener: CanvasHoverPixelChangeHandler) => void;
addLayerChangeEventListener: (listener: LayerChangeHandler) => void;
removeLayerChangeEventListener: (listener: LayerChangeHandler) => void;
addCanvasInfoChangeEventListener: (listener: CanvasInfoChangeHandler) => void;
removeCanvasInfoChangeEventListener: (listener: CanvasInfoChangeHandler) => void;
addCanvasElementEventListener: (type: string, listener: EventListenerOrEventListenerObject) => void;
removeCanvasElementEventListener: (type: string, listener: EventListenerOrEventListenerObject) => void;
getLayers: () => Array<{
id: string;
data: DottingData;
}>;
getLayersAsArray: () => Array<{
id: string;
data: Array<Array<PixelModifyItem>>;
}>;
setLayers: (layers: Array<LayerProps>) => void;
onMouseDown: (e: {
offsetX: number;
offsetY: number;
}) => void;
onMouseMove: (e: {
offsetX: number;
offsetY: number;
}) => void;
onMouseUp: (e: {
offsetX: number;
offsetY: number;
}) => void;
getForegroundCanvas: () => HTMLCanvasElement | null;
getBackgroundCanvas: () => HTMLCanvasElement | null;
convertWorldPosToCanvasOffset: (x: any, y: any) => {
x: number;
y: number;
};
}
declare const Dotting: React.ForwardRefExoticComponent<DottingProps & React.RefAttributes<DottingRef>>;
export default Dotting;