dotting
Version:
Dotting is a pixel art editor component library for react
103 lines (102 loc) • 3.67 kB
TypeScript
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;
}