UNPKG

dotting

Version:

Dotting is a pixel art editor component library for react

103 lines (102 loc) 4.77 kB
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;