UNPKG

dotting

Version:

Dotting is a pixel art editor component library for react

103 lines (102 loc) 3.67 kB
import { BaseLayer } from "./BaseLayer"; import { ColorChangeItem, DottingData, LayerProps, PixelModifyItem } from "./types"; import { DottingDataLayer } from "../../helpers/DottingDataLayer"; export default class DataLayer extends BaseLayer { private gridSquareLength; private layers; private currentLayer; private defaultPixelColor; private capturedImageBitmap; private capturedImageBitmapScale; private offscreenCanvas; constructor({ canvas, layers, }: { canvas: HTMLCanvasElement; layers?: Array<LayerProps>; }); getColumnCount(): number; getRowCount(): number; getGridIndices(): import("./types").GridIndices; getDimensions(): { columnCount: number; rowCount: number; }; getData(): DottingData; getLayer(layerId: string): DottingDataLayer; getLayerIndex(layerId: string): number; getLayers(): DottingDataLayer[]; createLayer(layerId: string, data?: Array<Array<PixelModifyItem>>): DottingDataLayer; getCopiedData(): Map<any, any>; getCurrentLayer(): DottingDataLayer; hideLayer(layerId: string): void; showLayer(layerId: string): void; isolateLayer(layerId: string): void; showAllLayers(): void; reorderLayersByIds(layerIds: Array<string>): void; /** * @description Sets the current layer to the layer with the given id * @param layerId The layer id of the layer */ setCurrentLayer(layerId: string): void; setData(data: DottingData, layerId?: string): void; setLayers(layers: Array<LayerProps>): void; setGridSquareLength(length: number): void; setDefaultPixelColor(color: string): void; getCapturedImageBitmap(): ImageBitmap; /** * @description Updates the pixel colors of the given data * Different from colorPixels, this method does not add rows or columns * @param data The data to update * @param layerId The layer id of the layer to update */ updatePixelColors(data: Array<PixelModifyItem>, layerId?: string): Array<ColorChangeItem>; colorPixels(data: Array<PixelModifyItem>, layerId?: string): { dataForAction: ColorChangeItem[]; totalAddedColumnIndices: number[]; totalAddedRowIndices: number[]; }; erasePixels(data: Array<{ rowIndex: number; columnIndex: number; }>, layerId?: string): { dataForAction: ColorChangeItem[]; }; addRow(rowIndex: number): { validRowIndex: any; }; addColumn(columnIndex: number): { validColumnIndex: any; }; deleteRow(rowIndex: number): { swipedPixels: PixelModifyItem[]; validRowIndex: any; }; deleteColumn(columnIndex: number): { swipedPixels: PixelModifyItem[]; validColumnIndex: any; }; addGridIndices({ rowIndicesToAdd, columnIndicesToAdd, }: { rowIndicesToAdd: Array<number>; columnIndicesToAdd: Array<number>; }): { validRowIndices: number[]; validColumnIndices: number[]; }; clear(): { layerId: string; data: Array<PixelModifyItem>; }[]; deleteGridIndices({ rowIndicesToDelete, columnIndicesToDelete, }: { rowIndicesToDelete: Array<number>; columnIndicesToDelete: Array<number>; }): { swipedPixels: PixelModifyItem[]; validColumnIndices: number[]; validRowIndices: number[]; }; updateCapturedImageBitmap(): void; render(): { rowKeys: number[]; columnKeys: number[]; }; renderImageBitmap(): void; }