aspect-grid-collageify 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +259 -0
- package/README_EN.md +246 -0
- package/dist/index.d.mts +104 -0
- package/dist/index.d.ts +104 -0
- package/dist/index.global.js +794 -0
- package/dist/index.js +796 -0
- package/dist/index.mjs +771 -0
- package/package.json +48 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
interface PlacedImage {
|
|
2
|
+
id: string;
|
|
3
|
+
src: string;
|
|
4
|
+
name: string;
|
|
5
|
+
gridX: number;
|
|
6
|
+
gridY: number;
|
|
7
|
+
span: number;
|
|
8
|
+
borderRadius2K?: number;
|
|
9
|
+
shadowBlur2K?: number;
|
|
10
|
+
shadowOffset2K?: number;
|
|
11
|
+
shadowOpacity?: number;
|
|
12
|
+
}
|
|
13
|
+
interface CollageConfig {
|
|
14
|
+
containerRatio: string;
|
|
15
|
+
customContainerW?: number;
|
|
16
|
+
customContainerH?: number;
|
|
17
|
+
imageRatio: string;
|
|
18
|
+
customImageW?: number;
|
|
19
|
+
customImageH?: number;
|
|
20
|
+
gridColumns: number;
|
|
21
|
+
padding2K: number;
|
|
22
|
+
gap2K: number;
|
|
23
|
+
containerBgColor?: string;
|
|
24
|
+
useTransparentBg?: boolean;
|
|
25
|
+
images: PlacedImage[];
|
|
26
|
+
showGridlines?: boolean;
|
|
27
|
+
placementSize?: "small" | "medium" | "large";
|
|
28
|
+
imageBorderRadius2K?: number;
|
|
29
|
+
imageShadowBlur2K?: number;
|
|
30
|
+
imageShadowOffset2K?: number;
|
|
31
|
+
imageShadowOpacity?: number;
|
|
32
|
+
}
|
|
33
|
+
declare class AspectGridCollageify {
|
|
34
|
+
private config;
|
|
35
|
+
private canvas;
|
|
36
|
+
private ctx;
|
|
37
|
+
private imageCache;
|
|
38
|
+
private loadingImages;
|
|
39
|
+
private activeImageId;
|
|
40
|
+
private draggedImageId;
|
|
41
|
+
private dragStartOffset;
|
|
42
|
+
private dragCurrentPos;
|
|
43
|
+
private draggedOverCell;
|
|
44
|
+
private hoveredPlaceholder;
|
|
45
|
+
private isDragging;
|
|
46
|
+
private changeCallbacks;
|
|
47
|
+
private activeCallbacks;
|
|
48
|
+
private clickCallbacks;
|
|
49
|
+
constructor(config: CollageConfig, canvasElement?: HTMLCanvasElement);
|
|
50
|
+
getConfig(): CollageConfig;
|
|
51
|
+
updateConfig(newConfig: Partial<CollageConfig>): void;
|
|
52
|
+
getImages(): PlacedImage[];
|
|
53
|
+
setImages(images: PlacedImage[]): void;
|
|
54
|
+
getActiveImageId(): string | null;
|
|
55
|
+
setActiveImageId(id: string | null): void;
|
|
56
|
+
onImagesChanged(callback: (images: PlacedImage[]) => void): void;
|
|
57
|
+
onActiveImageChanged(callback: (id: string | null) => void): void;
|
|
58
|
+
onCellClicked(callback: (x: number, y: number) => void): void;
|
|
59
|
+
private triggerChange;
|
|
60
|
+
private triggerActiveChange;
|
|
61
|
+
private triggerCellClick;
|
|
62
|
+
private getOrLoadImage;
|
|
63
|
+
private preloadAllImages;
|
|
64
|
+
canPlaceImage(imgId: string | null, x: number, y: number, spanSize: number, gridRows: number): boolean;
|
|
65
|
+
addImage(img: PlacedImage): void;
|
|
66
|
+
removeImage(imgId: string): void;
|
|
67
|
+
updateImage(imgId: string, updates: Partial<PlacedImage>): void;
|
|
68
|
+
modifyImageSpan(imgId: string, delta: number, gridRows: number): boolean;
|
|
69
|
+
stepImagePosition(imgId: string, dir: "up" | "down" | "left" | "right", gridRows: number): boolean;
|
|
70
|
+
pushDownBelow(imgId: string, gridRows: number): boolean;
|
|
71
|
+
pullUpBelow(imgId: string): boolean;
|
|
72
|
+
calculateLayout(width: number, height: number): {
|
|
73
|
+
scale: number;
|
|
74
|
+
padding: number;
|
|
75
|
+
gap: number;
|
|
76
|
+
cellW: number;
|
|
77
|
+
cellH: number;
|
|
78
|
+
gridRows: number;
|
|
79
|
+
offsetX: number;
|
|
80
|
+
offsetY: number;
|
|
81
|
+
gridW: number;
|
|
82
|
+
gridH: number;
|
|
83
|
+
containerRatioVal: number;
|
|
84
|
+
imageRatioVal: number;
|
|
85
|
+
};
|
|
86
|
+
private initEvents;
|
|
87
|
+
private hitTest;
|
|
88
|
+
private getImageRect;
|
|
89
|
+
private getCurrentTargetSpan;
|
|
90
|
+
getPlaceholders(targetSpan: number, gridRows: number): Array<{
|
|
91
|
+
gridX: number;
|
|
92
|
+
gridY: number;
|
|
93
|
+
span: number;
|
|
94
|
+
}>;
|
|
95
|
+
render(drawUI?: boolean): void;
|
|
96
|
+
/**
|
|
97
|
+
* The master draw function: compiles background, images, and overlays.
|
|
98
|
+
* Can be shared between interactive Canvas on the page and high-res offscreen Canvas.
|
|
99
|
+
*/
|
|
100
|
+
draw(ctx: CanvasRenderingContext2D, width: number, height: number, drawUI: boolean): void;
|
|
101
|
+
exportPNG(targetWidth?: number): Promise<string>;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export { AspectGridCollageify, type CollageConfig, type PlacedImage };
|