apexify.js 4.2.10 → 4.3.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/dist/canvas/ApexPainter.d.ts.map +1 -1
- package/dist/canvas/ApexPainter.js +9 -3
- package/dist/canvas/ApexPainter.js.map +1 -1
- package/dist/canvas/utils/imageProperties.d.ts +5 -3
- package/dist/canvas/utils/imageProperties.d.ts.map +1 -1
- package/dist/canvas/utils/imageProperties.js +34 -19
- package/dist/canvas/utils/imageProperties.js.map +1 -1
- package/dist/canvas/utils/textProperties.d.ts +1 -0
- package/dist/canvas/utils/textProperties.d.ts.map +1 -1
- package/dist/canvas/utils/textProperties.js +58 -39
- package/dist/canvas/utils/textProperties.js.map +1 -1
- package/dist/canvas/utils/types.d.ts +30 -0
- package/dist/canvas/utils/types.d.ts.map +1 -1
- package/dist/canvas/utils/types.js.map +1 -1
- package/lib/canvas/ApexPainter.ts +10 -3
- package/lib/canvas/utils/imageProperties.ts +95 -79
- package/lib/canvas/utils/textProperties.ts +86 -57
- package/lib/canvas/utils/types.ts +27 -3
- package/package.json +1 -1
|
@@ -88,6 +88,7 @@ export interface ImageProperties {
|
|
|
88
88
|
y?: number;
|
|
89
89
|
isFilled?: boolean;
|
|
90
90
|
color?: string;
|
|
91
|
+
opacity?: number;
|
|
91
92
|
gradient?: {
|
|
92
93
|
type?: 'linear' | 'radial';
|
|
93
94
|
startX?: number;
|
|
@@ -103,11 +104,26 @@ export interface ImageProperties {
|
|
|
103
104
|
};
|
|
104
105
|
rotation?: number;
|
|
105
106
|
borderRadius?: number | "circular";
|
|
107
|
+
borderPosition?: 'all' | 'top' | 'left' | 'right' | 'bottom';
|
|
106
108
|
stroke?: {
|
|
107
109
|
color?: string;
|
|
108
110
|
width?: number;
|
|
109
111
|
position?: number;
|
|
110
112
|
borderRadius?: number | "circular";
|
|
113
|
+
borderPosition?: 'all' | 'top' | 'left' | 'right' | 'bottom';
|
|
114
|
+
gradient?: {
|
|
115
|
+
type: 'linear' | 'radial';
|
|
116
|
+
startX?: number;
|
|
117
|
+
startY?: number;
|
|
118
|
+
endX?: number;
|
|
119
|
+
endY?: number;
|
|
120
|
+
startRadius?: number;
|
|
121
|
+
endRadius?: number;
|
|
122
|
+
colors: {
|
|
123
|
+
stop: number;
|
|
124
|
+
color: string;
|
|
125
|
+
}[];
|
|
126
|
+
};
|
|
111
127
|
};
|
|
112
128
|
shadow?: {
|
|
113
129
|
color?: string;
|
|
@@ -116,6 +132,7 @@ export interface ImageProperties {
|
|
|
116
132
|
blur?: number;
|
|
117
133
|
opacity?: number;
|
|
118
134
|
borderRadius?: number | "circular";
|
|
135
|
+
borderPosition?: 'all' | 'top' | 'left' | 'right' | 'bottom';
|
|
119
136
|
};
|
|
120
137
|
}
|
|
121
138
|
export interface TextObject {
|
|
@@ -155,6 +172,19 @@ export interface TextObject {
|
|
|
155
172
|
stroke?: {
|
|
156
173
|
color?: string;
|
|
157
174
|
width?: number;
|
|
175
|
+
gradient?: {
|
|
176
|
+
type: 'linear' | 'radial';
|
|
177
|
+
startX?: number;
|
|
178
|
+
startY?: number;
|
|
179
|
+
endX?: number;
|
|
180
|
+
endY?: number;
|
|
181
|
+
startRadius?: number;
|
|
182
|
+
endRadius?: number;
|
|
183
|
+
colors: {
|
|
184
|
+
stop: number;
|
|
185
|
+
color: string;
|
|
186
|
+
}[];
|
|
187
|
+
};
|
|
158
188
|
};
|
|
159
189
|
rotation?: number;
|
|
160
190
|
opacity?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../lib/canvas/utils/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../lib/canvas/utils/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/canvas/utils/types.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAoDF,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/canvas/utils/types.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAoDF,CAAC;AA2ED,CAAC"}
|
|
@@ -503,7 +503,7 @@ export class ApexPainter {
|
|
|
503
503
|
}
|
|
504
504
|
|
|
505
505
|
private async drawImage(ctx: any, image: ImageProperties): Promise<void> {
|
|
506
|
-
const { source, x, y, width, height, rotation, borderRadius, stroke, shadow, isFilled, color, gradient } = image;
|
|
506
|
+
const { source, x, y, width, height, rotation, borderRadius, stroke, shadow, isFilled, color, gradient, borderPosition, opacity } = image;
|
|
507
507
|
|
|
508
508
|
if (!source || typeof x !== 'number' || typeof y !== 'number' || typeof width !== 'number' || typeof height !== 'number') {
|
|
509
509
|
throw new Error('Invalid image properties');
|
|
@@ -514,6 +514,10 @@ export class ApexPainter {
|
|
|
514
514
|
const shapeNames = ['circle', 'square', 'triangle', 'pentagon', 'hexagon', 'heptagon', 'octagon', 'star', 'kite'];
|
|
515
515
|
const isShape = shapeNames.includes(source.toLowerCase());
|
|
516
516
|
|
|
517
|
+
if (opacity) {
|
|
518
|
+
ctx.globalAlpha = opacity;
|
|
519
|
+
}
|
|
520
|
+
|
|
517
521
|
if (source.startsWith('http')) {
|
|
518
522
|
const response = await fetch(source);
|
|
519
523
|
if (!response.ok) {
|
|
@@ -522,7 +526,7 @@ export class ApexPainter {
|
|
|
522
526
|
const buffer = await response.arrayBuffer();
|
|
523
527
|
img = await loadImage(Buffer.from(buffer));
|
|
524
528
|
} else if (isShape) {
|
|
525
|
-
drawShape(ctx, { source, x, y, width, height, rotation, borderRadius, stroke, shadow, isFilled, color, gradient });
|
|
529
|
+
drawShape(ctx, { source, x, y, width, height, rotation, borderRadius, stroke, shadow, isFilled, color, gradient, borderPosition });
|
|
526
530
|
} else {
|
|
527
531
|
const imagePath = path.join(process.cwd(), source);
|
|
528
532
|
try {
|
|
@@ -536,7 +540,7 @@ export class ApexPainter {
|
|
|
536
540
|
ctx.save();
|
|
537
541
|
applyRotation(ctx, rotation || 0, x, y, width, height);
|
|
538
542
|
applyShadow(ctx, shadow, x, y, width, height);
|
|
539
|
-
imageRadius(ctx, img, x, y, width, height, borderRadius || 0);
|
|
543
|
+
imageRadius(ctx, img, x, y, width, height, borderRadius || 0, borderPosition);
|
|
540
544
|
applyStroke(ctx, stroke, x, y, width, height);
|
|
541
545
|
ctx.restore();
|
|
542
546
|
} else {
|
|
@@ -544,8 +548,11 @@ export class ApexPainter {
|
|
|
544
548
|
throw new Error('Invalid image source or shape name');
|
|
545
549
|
}
|
|
546
550
|
}
|
|
551
|
+
|
|
547
552
|
} catch (error: any) {
|
|
548
553
|
throw new Error(error.message);
|
|
554
|
+
} finally {
|
|
555
|
+
ctx.globalAlpha = 1.0;
|
|
549
556
|
}
|
|
550
557
|
}
|
|
551
558
|
|
|
@@ -24,7 +24,7 @@ export function applyShadow(ctx: any, shadow: ImageProperties['shadow'], x: numb
|
|
|
24
24
|
const shadowY =
|
|
25
25
|
y + (shadow.offsetY || 0);
|
|
26
26
|
|
|
27
|
-
objectRadius(ctx, shadowX, shadowY, width, height, shadow.borderRadius || 2)
|
|
27
|
+
objectRadius(ctx, shadowX, shadowY, width, height, shadow.borderRadius || 2, shadow.borderPosition)
|
|
28
28
|
|
|
29
29
|
ctx.fillStyle = shadow.color || "transparent";
|
|
30
30
|
ctx.fill();
|
|
@@ -47,36 +47,37 @@ export function applyShadow(ctx: any, shadow: ImageProperties['shadow'], x: numb
|
|
|
47
47
|
* @param width The width of the shape.
|
|
48
48
|
* @param height The height of the shape.
|
|
49
49
|
*/
|
|
50
|
-
export function applyStroke(ctx: any, stroke: ImageProperties['stroke'], x: number, y: number, width: number, height: number
|
|
51
|
-
|
|
50
|
+
export function applyStroke(ctx: any, stroke: ImageProperties['stroke'], x: number, y: number, width: number, height: number): void {
|
|
51
|
+
ctx.save();
|
|
52
52
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
ctx.lineWidth = stroke.width || 0;
|
|
53
|
+
if (stroke) {
|
|
54
|
+
if (stroke.gradient) {
|
|
55
|
+
const gradientFill = createGradient(
|
|
56
|
+
ctx,
|
|
57
|
+
stroke.gradient,
|
|
58
|
+
x,
|
|
59
|
+
y,
|
|
60
|
+
x + width,
|
|
61
|
+
y + height
|
|
62
|
+
);
|
|
63
|
+
ctx.strokeStyle = gradientFill;
|
|
64
|
+
} else {
|
|
65
|
+
ctx.strokeStyle = stroke.color || "transparent";
|
|
66
|
+
}
|
|
68
67
|
|
|
69
|
-
|
|
70
|
-
const adjustedY = y - (stroke.position || 0);
|
|
71
|
-
const adjustedWidth = width + (stroke.position || 0) * 2;
|
|
72
|
-
const adjustedHeight = height + (stroke.position || 0) * 2;
|
|
68
|
+
ctx.lineWidth = stroke.width || 0;
|
|
73
69
|
|
|
74
|
-
|
|
70
|
+
const adjustedX = x - (stroke.position || 0);
|
|
71
|
+
const adjustedY = y - (stroke.position || 0);
|
|
72
|
+
const adjustedWidth = width + (stroke.position || 0) * 2;
|
|
73
|
+
const adjustedHeight = height + (stroke.position || 0) * 2;
|
|
75
74
|
|
|
76
|
-
|
|
77
|
-
}
|
|
75
|
+
objectRadius(ctx, adjustedX, adjustedY, adjustedWidth, adjustedHeight, stroke.borderRadius || 2, stroke.borderPosition);
|
|
78
76
|
|
|
79
|
-
|
|
77
|
+
ctx.stroke();
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
ctx.restore();
|
|
80
81
|
}
|
|
81
82
|
|
|
82
83
|
/**
|
|
@@ -85,7 +86,7 @@ export function applyStroke(ctx: any, stroke: ImageProperties['stroke'], x: numb
|
|
|
85
86
|
* @param shapeSettings The settings for the shape.
|
|
86
87
|
*/
|
|
87
88
|
export function drawShape(ctx: any, shapeSettings: any) {
|
|
88
|
-
const { source, x, y, width, height, rotation, borderRadius, stroke, shadow, isFilled, color, gradient } = shapeSettings;
|
|
89
|
+
const { source, x, y, width, height, rotation, borderRadius, borderPosition, stroke, shadow, isFilled, color, gradient } = shapeSettings;
|
|
89
90
|
|
|
90
91
|
const shapeName = source.toLowerCase();
|
|
91
92
|
|
|
@@ -192,7 +193,7 @@ export function drawShape(ctx: any, shapeSettings: any) {
|
|
|
192
193
|
}
|
|
193
194
|
if (isFilled) {
|
|
194
195
|
if (borderRadius) {
|
|
195
|
-
objectRadius(ctx, x, y, width, height, borderRadius);
|
|
196
|
+
objectRadius(ctx, x, y, width, height, borderRadius, borderPosition);
|
|
196
197
|
if (gradient) {
|
|
197
198
|
const gradientFill = createGradient(
|
|
198
199
|
ctx,
|
|
@@ -229,6 +230,7 @@ export function drawShape(ctx: any, shapeSettings: any) {
|
|
|
229
230
|
ctx.fill()
|
|
230
231
|
}
|
|
231
232
|
}
|
|
233
|
+
applyStroke(ctx, stroke, x, y, width, height);
|
|
232
234
|
} else {
|
|
233
235
|
if (gradient) {
|
|
234
236
|
const gradientFill = createGradient(
|
|
@@ -241,64 +243,73 @@ export function drawShape(ctx: any, shapeSettings: any) {
|
|
|
241
243
|
);
|
|
242
244
|
ctx.fillStyle = gradientFill;
|
|
243
245
|
}
|
|
244
|
-
applyStroke(ctx, stroke, x, y, width, height
|
|
246
|
+
applyStroke(ctx, stroke, x, y, width, height);
|
|
245
247
|
}
|
|
246
248
|
|
|
247
249
|
ctx.restore();
|
|
248
250
|
}
|
|
249
251
|
|
|
250
252
|
export function createGradient(ctx: any, gradientOptions: any, startX: number, startY: number, endX: number, endY: number) {
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
);
|
|
255
|
-
}
|
|
253
|
+
if (!gradientOptions || !gradientOptions.type || !gradientOptions.colors) {
|
|
254
|
+
throw new Error("Invalid gradient options. Provide a valid object with type and colors properties.");
|
|
255
|
+
}
|
|
256
256
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
typeof startY !== "number" ||
|
|
261
|
-
typeof endX !== "number" ||
|
|
262
|
-
typeof endY !== "number"
|
|
263
|
-
) {
|
|
264
|
-
throw new Error(
|
|
265
|
-
"Invalid gradient options for linear gradient. Numeric values are required for startX, startY, endX, and endY.",
|
|
266
|
-
);
|
|
267
|
-
}
|
|
268
|
-
} else if (gradientOptions.type === "radial") {
|
|
269
|
-
if (
|
|
270
|
-
typeof gradientOptions.startX !== "number" ||
|
|
271
|
-
typeof gradientOptions.startY !== "number" ||
|
|
272
|
-
typeof gradientOptions.startRadius !== "number" ||
|
|
273
|
-
typeof gradientOptions.endX !== "number" ||
|
|
274
|
-
typeof gradientOptions.endY !== "number" ||
|
|
275
|
-
typeof gradientOptions.endRadius !== "number"
|
|
276
|
-
) {
|
|
277
|
-
throw new Error(
|
|
278
|
-
"Invalid gradient options for radial gradient. Numeric values are required for startX, startY, startRadius, endX, endY, and endRadius.",
|
|
279
|
-
);
|
|
280
|
-
}
|
|
281
|
-
} else {
|
|
282
|
-
throw new Error('Unsupported gradient type. Use "linear" or "radial".');
|
|
283
|
-
}
|
|
257
|
+
if (!Array.isArray(gradientOptions.colors)) {
|
|
258
|
+
throw new Error("Invalid gradient options. The colors property should be an array of color stops.");
|
|
259
|
+
}
|
|
284
260
|
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
261
|
+
if (gradientOptions.type === "linear") {
|
|
262
|
+
if (
|
|
263
|
+
typeof startX !== "number" ||
|
|
264
|
+
typeof startY !== "number" ||
|
|
265
|
+
typeof endX !== "number" ||
|
|
266
|
+
typeof endY !== "number"
|
|
267
|
+
) {
|
|
268
|
+
throw new Error("Invalid gradient options for linear gradient. Numeric values are required for startX, startY, endX, and endY.");
|
|
269
|
+
}
|
|
270
|
+
const gradient = ctx.createLinearGradient(startX, startY, endX, endY);
|
|
271
|
+
|
|
272
|
+
for (const colorStop of gradientOptions.colors) {
|
|
273
|
+
if (typeof colorStop.stop !== "number" || typeof colorStop.color !== "string") {
|
|
274
|
+
throw new Error("Invalid color stop. Each color stop should have a numeric stop value and a color string.");
|
|
275
|
+
}
|
|
276
|
+
gradient.addColorStop(colorStop.stop, colorStop.color);
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
return gradient;
|
|
280
|
+
|
|
281
|
+
} else if (gradientOptions.type === "radial") {
|
|
282
|
+
if (
|
|
283
|
+
typeof gradientOptions.startX !== "number" ||
|
|
284
|
+
typeof gradientOptions.startY !== "number" ||
|
|
285
|
+
typeof gradientOptions.startRadius !== "number" ||
|
|
286
|
+
typeof gradientOptions.endX !== "number" ||
|
|
287
|
+
typeof gradientOptions.endY !== "number" ||
|
|
288
|
+
typeof gradientOptions.endRadius !== "number"
|
|
289
|
+
) {
|
|
290
|
+
throw new Error("Invalid gradient options for radial gradient. Numeric values are required for startX, startY, startRadius, endX, endY, and endRadius.");
|
|
291
|
+
}
|
|
292
|
+
const gradient = ctx.createRadialGradient(
|
|
293
|
+
gradientOptions.startX,
|
|
294
|
+
gradientOptions.startY,
|
|
295
|
+
gradientOptions.startRadius,
|
|
296
|
+
gradientOptions.endX,
|
|
297
|
+
gradientOptions.endY,
|
|
298
|
+
gradientOptions.endRadius
|
|
299
|
+
);
|
|
300
|
+
|
|
301
|
+
for (const colorStop of gradientOptions.colors) {
|
|
302
|
+
if (typeof colorStop.stop !== "number" || typeof colorStop.color !== "string") {
|
|
303
|
+
throw new Error("Invalid color stop. Each color stop should have a numeric stop value and a color string.");
|
|
304
|
+
}
|
|
305
|
+
gradient.addColorStop(colorStop.stop, colorStop.color);
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
return gradient;
|
|
300
309
|
|
|
301
|
-
|
|
310
|
+
} else {
|
|
311
|
+
throw new Error('Unsupported gradient type. Use "linear" or "radial".');
|
|
312
|
+
}
|
|
302
313
|
}
|
|
303
314
|
|
|
304
315
|
|
|
@@ -330,8 +341,9 @@ export function applyRotation(ctx: any, rotation: number, x: number, y: number,
|
|
|
330
341
|
* @param width The width of the shape.
|
|
331
342
|
* @param height The height of the shape.
|
|
332
343
|
* @param borderRadius The border radius value.
|
|
344
|
+
* @param borderPosition The border radius position to be applied on.
|
|
333
345
|
*/
|
|
334
|
-
export function imageRadius(ctx: any, image: any, x: number, y: number, width: number, height: number, borderRadius: any ): void {
|
|
346
|
+
export function imageRadius(ctx: any, image: any, x: number, y: number, width: number, height: number, borderRadius: any, borderPosition: string = 'all'): void {
|
|
335
347
|
ctx.save();
|
|
336
348
|
ctx.beginPath();
|
|
337
349
|
|
|
@@ -361,6 +373,9 @@ export function imageRadius(ctx: any, image: any, x: number, y: number, width: n
|
|
|
361
373
|
ctx.restore();
|
|
362
374
|
}
|
|
363
375
|
|
|
376
|
+
|
|
377
|
+
|
|
378
|
+
|
|
364
379
|
/**
|
|
365
380
|
* Applies border radius to the canvas context for objects.
|
|
366
381
|
* @param ctx The canvas rendering context.
|
|
@@ -369,8 +384,9 @@ export function imageRadius(ctx: any, image: any, x: number, y: number, width: n
|
|
|
369
384
|
* @param width The width of the object.
|
|
370
385
|
* @param height The height of the object.
|
|
371
386
|
* @param borderRadius The border radius value.
|
|
387
|
+
* @param borderPosition The border radius position to be applied on.
|
|
372
388
|
*/
|
|
373
|
-
export function objectRadius(ctx: any, x: any, y: any, width: number, height: number, borderRadius: any = 0.1): void {
|
|
389
|
+
export function objectRadius(ctx: any, x: any, y: any, width: number, height: number, borderRadius: any = 0.1, borderPosition: string = 'all'): void {
|
|
374
390
|
ctx.save();
|
|
375
391
|
if (borderRadius === "circular") {
|
|
376
392
|
const circleRadius = Math.min(width, height) / 2;
|
|
@@ -7,9 +7,10 @@ import { TextObject } from "./types";
|
|
|
7
7
|
*/
|
|
8
8
|
export function drawText(ctx: any, textOptions: TextObject, size: any) {
|
|
9
9
|
ctx.save();
|
|
10
|
-
|
|
10
|
+
|
|
11
|
+
// Apply rotation if specified
|
|
11
12
|
if (textOptions.rotation && textOptions.rotation !== 0) {
|
|
12
|
-
ctx.translate(textOptions.x || 0, textOptions
|
|
13
|
+
ctx.translate(textOptions.x || 0, textOptions.y || 0);
|
|
13
14
|
ctx.rotate(textOptions.rotation * Math.PI / 180);
|
|
14
15
|
}
|
|
15
16
|
|
|
@@ -17,79 +18,75 @@ export function drawText(ctx: any, textOptions: TextObject, size: any) {
|
|
|
17
18
|
ctx.textAlign = textOptions.textAlign || 'left';
|
|
18
19
|
ctx.textBaseline = textOptions.textBaseline || 'alphabetic';
|
|
19
20
|
|
|
21
|
+
// Apply shadow
|
|
20
22
|
if (textOptions.shadow) {
|
|
21
23
|
const { color, offsetX, offsetY, blur, opacity } = textOptions.shadow;
|
|
22
24
|
ctx.shadowColor = color || "transparent";
|
|
23
25
|
ctx.shadowOffsetX = offsetX || 0;
|
|
24
26
|
ctx.shadowOffsetY = offsetY || 0;
|
|
25
27
|
ctx.shadowBlur = blur || 0;
|
|
26
|
-
ctx.globalAlpha = opacity ||
|
|
28
|
+
ctx.globalAlpha = opacity || 1;
|
|
27
29
|
}
|
|
28
30
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
// Apply opacity
|
|
32
|
+
if (textOptions.opacity !== undefined) {
|
|
33
|
+
if (textOptions.opacity > 1 || textOptions.opacity < 0)
|
|
34
|
+
throw new Error("Text opacity Error: the value can't be smaller than 0 or bigger than 1.");
|
|
31
35
|
ctx.globalAlpha = textOptions.opacity;
|
|
32
36
|
}
|
|
33
37
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
+
const textWidth = ctx.measureText(textOptions.text).width;
|
|
39
|
+
const textHeight = textOptions.fontSize || 16; // Rough estimate for height
|
|
40
|
+
|
|
41
|
+
// Apply gradient fill
|
|
42
|
+
if (textOptions.gradient) {
|
|
43
|
+
const gradientFill = createGradient(
|
|
44
|
+
ctx,
|
|
45
|
+
textOptions.gradient,
|
|
46
|
+
textOptions.x || 0,
|
|
47
|
+
textOptions.y || 0 - textHeight,
|
|
48
|
+
(textOptions.x || 0) + textWidth,
|
|
49
|
+
(textOptions.y || 0)
|
|
50
|
+
);
|
|
51
|
+
console.log("Gradient Fill Created:", gradientFill);
|
|
52
|
+
ctx.fillStyle = gradientFill;
|
|
38
53
|
} else {
|
|
54
|
+
ctx.fillStyle = textOptions.color || 'darkgray';
|
|
55
|
+
}
|
|
39
56
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
textOptions.
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
ctx.fillStyle = gradient;
|
|
54
|
-
} else if (textOptions.gradient.type === 'radial') {
|
|
55
|
-
const gradient = ctx.createRadialGradient(
|
|
56
|
-
textOptions.gradient?.startX || 0,
|
|
57
|
-
textOptions.gradient?.startY || 10,
|
|
58
|
-
textOptions.gradient?.startRadius || 0,
|
|
59
|
-
textOptions.gradient?.endX || 20,
|
|
60
|
-
textOptions.gradient?.endY || 30,
|
|
61
|
-
textOptions.gradient?.endRadius || 30
|
|
62
|
-
);
|
|
63
|
-
|
|
64
|
-
textOptions.gradient.colors.forEach(({ stop, color }) => {
|
|
65
|
-
gradient.addColorStop(stop, color);
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
ctx.fillStyle = gradient;
|
|
69
|
-
} else {
|
|
70
|
-
throw new Error("Error Gradient: Invalid gradient type. Valid types: `radial` or `linear`.")
|
|
71
|
-
}
|
|
57
|
+
// Apply stroke with gradient
|
|
58
|
+
if (textOptions.outlined || textOptions.stroke) {
|
|
59
|
+
if (textOptions.stroke?.gradient) {
|
|
60
|
+
const gradientStroke = createGradient(
|
|
61
|
+
ctx,
|
|
62
|
+
textOptions.stroke.gradient,
|
|
63
|
+
textOptions.x || 0,
|
|
64
|
+
textOptions.y || 0 - textHeight,
|
|
65
|
+
(textOptions.x || 0) + textWidth,
|
|
66
|
+
(textOptions.y || 0)
|
|
67
|
+
);
|
|
68
|
+
console.log("Gradient Stroke Created:", gradientStroke);
|
|
69
|
+
ctx.strokeStyle = gradientStroke;
|
|
72
70
|
} else {
|
|
73
|
-
ctx.
|
|
71
|
+
ctx.strokeStyle = textOptions.stroke?.color || textOptions.color;
|
|
74
72
|
}
|
|
75
|
-
|
|
73
|
+
ctx.lineWidth = textOptions.stroke?.width || 1;
|
|
74
|
+
ctx.strokeText(textOptions.text, textOptions.x || 0, textOptions.y || 0);
|
|
76
75
|
}
|
|
77
76
|
|
|
77
|
+
// Draw the text
|
|
78
78
|
if (textOptions.maxWidth) {
|
|
79
79
|
WrappedText(ctx, textOptions.text || 'Hello World', textOptions.x || 0, textOptions.y || 0, textOptions.maxWidth, textOptions);
|
|
80
80
|
} else {
|
|
81
|
-
if (textOptions.
|
|
82
|
-
ctx.
|
|
81
|
+
if (!textOptions.rotation) {
|
|
82
|
+
ctx.fillText(textOptions.text, textOptions.x || 0, textOptions.y || 0);
|
|
83
83
|
} else {
|
|
84
|
-
|
|
85
|
-
if (textOptions.rotation) ctx.fillText(textOptions.text, 0, 0);
|
|
86
|
-
|
|
84
|
+
ctx.fillText(textOptions.text, 0, 0);
|
|
87
85
|
}
|
|
88
86
|
}
|
|
89
87
|
|
|
90
88
|
ctx.restore();
|
|
91
89
|
}
|
|
92
|
-
|
|
93
90
|
/**
|
|
94
91
|
* Draws wrapped text on the canvas context.
|
|
95
92
|
* @param ctx The canvas rendering context.
|
|
@@ -107,11 +104,10 @@ export function WrappedText(ctx: any, text: string, x: number, y: number, maxWid
|
|
|
107
104
|
|
|
108
105
|
ctx.save();
|
|
109
106
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
ctx.
|
|
113
|
-
|
|
114
|
-
ctx.fillStyle = textOptions.color || 'darkgray';
|
|
107
|
+
ctx.fillStyle = textOptions.color || 'darkgray';
|
|
108
|
+
if (textOptions.outlined || textOptions.stroke) {
|
|
109
|
+
ctx.strokeStyle = textOptions.stroke?.color || textOptions.color;
|
|
110
|
+
ctx.lineWidth = textOptions.stroke?.width || 1;
|
|
115
111
|
}
|
|
116
112
|
|
|
117
113
|
if (textOptions.rotation && textOptions.rotation !== 0) {
|
|
@@ -128,7 +124,7 @@ export function WrappedText(ctx: any, text: string, x: number, y: number, maxWid
|
|
|
128
124
|
|
|
129
125
|
if (testWidth > maxWidth && n > 0) {
|
|
130
126
|
const adjustedY = y + lineHeight;
|
|
131
|
-
if (textOptions.outlined) {
|
|
127
|
+
if (textOptions.outlined || textOptions.stroke) {
|
|
132
128
|
ctx.strokeText(currentLine.trim(), x, adjustedY);
|
|
133
129
|
} else {
|
|
134
130
|
ctx.fillText(currentLine.trim(), x, adjustedY);
|
|
@@ -141,11 +137,44 @@ export function WrappedText(ctx: any, text: string, x: number, y: number, maxWid
|
|
|
141
137
|
}
|
|
142
138
|
|
|
143
139
|
const adjustedY = y + lineHeight;
|
|
144
|
-
if (textOptions.outlined) {
|
|
140
|
+
if (textOptions.outlined || textOptions.stroke) {
|
|
145
141
|
ctx.strokeText(currentLine.trim(), x, adjustedY);
|
|
146
142
|
} else {
|
|
147
143
|
ctx.fillText(currentLine.trim(), x, adjustedY);
|
|
148
144
|
}
|
|
149
145
|
|
|
150
146
|
ctx.restore();
|
|
151
|
-
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
export function createGradient(ctx: any, gradientOptions: any, startX: number, startY: number, endX: number, endY: number) {
|
|
150
|
+
if (!gradientOptions || !gradientOptions.type || !gradientOptions.colors) {
|
|
151
|
+
throw new Error("Invalid gradient options. Provide a valid object with type and colors properties.");
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
if (!Array.isArray(gradientOptions.colors)) {
|
|
155
|
+
throw new Error("Invalid gradient options. The colors property should be an array of color stops.");
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
let gradient;
|
|
159
|
+
if (gradientOptions.type === "linear") {
|
|
160
|
+
gradient = ctx.createLinearGradient(startX, startY, endX, endY);
|
|
161
|
+
} else if (gradientOptions.type === "radial") {
|
|
162
|
+
gradient = ctx.createRadialGradient(
|
|
163
|
+
gradientOptions.startX || startX,
|
|
164
|
+
gradientOptions.startY || startY,
|
|
165
|
+
gradientOptions.startRadius || 0,
|
|
166
|
+
gradientOptions.endX || endX,
|
|
167
|
+
gradientOptions.endY || endY,
|
|
168
|
+
gradientOptions.endRadius || 0
|
|
169
|
+
);
|
|
170
|
+
} else {
|
|
171
|
+
throw new Error('Unsupported gradient type. Use "linear" or "radial".');
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
for (const colorStop of gradientOptions.colors) {
|
|
175
|
+
console.log(`Adding color stop: ${colorStop.stop} ${colorStop.color}`);
|
|
176
|
+
gradient.addColorStop(colorStop.stop, colorStop.color);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
return gradient;
|
|
180
|
+
}
|