apexify.js 4.9.26 → 4.9.27
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/README.md +358 -47
- package/dist/cjs/Canvas/ApexPainter.d.ts +122 -78
- package/dist/cjs/Canvas/ApexPainter.d.ts.map +1 -1
- package/dist/cjs/Canvas/ApexPainter.js +461 -352
- package/dist/cjs/Canvas/ApexPainter.js.map +1 -1
- package/dist/cjs/Canvas/utils/Background/bg.d.ts +23 -11
- package/dist/cjs/Canvas/utils/Background/bg.d.ts.map +1 -1
- package/dist/cjs/Canvas/utils/Background/bg.js +174 -107
- package/dist/cjs/Canvas/utils/Background/bg.js.map +1 -1
- package/dist/cjs/Canvas/utils/Custom/customLines.js +2 -2
- package/dist/cjs/Canvas/utils/Custom/customLines.js.map +1 -1
- package/dist/cjs/Canvas/utils/Image/imageFilters.d.ts +11 -0
- package/dist/cjs/Canvas/utils/Image/imageFilters.d.ts.map +1 -0
- package/dist/cjs/Canvas/utils/Image/imageFilters.js +307 -0
- package/dist/cjs/Canvas/utils/Image/imageFilters.js.map +1 -0
- package/dist/cjs/Canvas/utils/Image/imageProperties.d.ts +47 -112
- package/dist/cjs/Canvas/utils/Image/imageProperties.d.ts.map +1 -1
- package/dist/cjs/Canvas/utils/Image/imageProperties.js +229 -560
- package/dist/cjs/Canvas/utils/Image/imageProperties.js.map +1 -1
- package/dist/cjs/Canvas/utils/Image/professionalImageFilters.d.ts +11 -0
- package/dist/cjs/Canvas/utils/Image/professionalImageFilters.d.ts.map +1 -0
- package/dist/cjs/Canvas/utils/Image/professionalImageFilters.js +351 -0
- package/dist/cjs/Canvas/utils/Image/professionalImageFilters.js.map +1 -0
- package/dist/cjs/Canvas/utils/Image/simpleProfessionalFilters.d.ts +11 -0
- package/dist/cjs/Canvas/utils/Image/simpleProfessionalFilters.d.ts.map +1 -0
- package/dist/cjs/Canvas/utils/Image/simpleProfessionalFilters.js +215 -0
- package/dist/cjs/Canvas/utils/Image/simpleProfessionalFilters.js.map +1 -0
- package/dist/cjs/Canvas/utils/Patterns/enhancedPatternRenderer.d.ts +71 -0
- package/dist/cjs/Canvas/utils/Patterns/enhancedPatternRenderer.d.ts.map +1 -0
- package/dist/cjs/Canvas/utils/Patterns/enhancedPatternRenderer.js +392 -0
- package/dist/cjs/Canvas/utils/Patterns/enhancedPatternRenderer.js.map +1 -0
- package/dist/cjs/Canvas/utils/Shapes/shapes.d.ts +29 -0
- package/dist/cjs/Canvas/utils/Shapes/shapes.d.ts.map +1 -0
- package/dist/cjs/Canvas/utils/Shapes/shapes.js +334 -0
- package/dist/cjs/Canvas/utils/Shapes/shapes.js.map +1 -0
- package/dist/cjs/Canvas/utils/Texts/enhancedTextRenderer.d.ts +127 -0
- package/dist/cjs/Canvas/utils/Texts/enhancedTextRenderer.d.ts.map +1 -0
- package/dist/cjs/Canvas/utils/Texts/enhancedTextRenderer.js +365 -0
- package/dist/cjs/Canvas/utils/Texts/enhancedTextRenderer.js.map +1 -0
- package/dist/cjs/Canvas/utils/types.d.ts +227 -131
- package/dist/cjs/Canvas/utils/types.d.ts.map +1 -1
- package/dist/cjs/Canvas/utils/types.js +0 -1
- package/dist/cjs/Canvas/utils/types.js.map +1 -1
- package/dist/cjs/Canvas/utils/utils.d.ts +7 -4
- package/dist/cjs/Canvas/utils/utils.d.ts.map +1 -1
- package/dist/cjs/Canvas/utils/utils.js +17 -7
- package/dist/cjs/Canvas/utils/utils.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/Canvas/ApexPainter.d.ts +122 -78
- package/dist/esm/Canvas/ApexPainter.d.ts.map +1 -1
- package/dist/esm/Canvas/ApexPainter.js +461 -352
- package/dist/esm/Canvas/ApexPainter.js.map +1 -1
- package/dist/esm/Canvas/utils/Background/bg.d.ts +23 -11
- package/dist/esm/Canvas/utils/Background/bg.d.ts.map +1 -1
- package/dist/esm/Canvas/utils/Background/bg.js +174 -107
- package/dist/esm/Canvas/utils/Background/bg.js.map +1 -1
- package/dist/esm/Canvas/utils/Custom/customLines.js +2 -2
- package/dist/esm/Canvas/utils/Custom/customLines.js.map +1 -1
- package/dist/esm/Canvas/utils/Image/imageFilters.d.ts +11 -0
- package/dist/esm/Canvas/utils/Image/imageFilters.d.ts.map +1 -0
- package/dist/esm/Canvas/utils/Image/imageFilters.js +307 -0
- package/dist/esm/Canvas/utils/Image/imageFilters.js.map +1 -0
- package/dist/esm/Canvas/utils/Image/imageProperties.d.ts +47 -112
- package/dist/esm/Canvas/utils/Image/imageProperties.d.ts.map +1 -1
- package/dist/esm/Canvas/utils/Image/imageProperties.js +229 -560
- package/dist/esm/Canvas/utils/Image/imageProperties.js.map +1 -1
- package/dist/esm/Canvas/utils/Image/professionalImageFilters.d.ts +11 -0
- package/dist/esm/Canvas/utils/Image/professionalImageFilters.d.ts.map +1 -0
- package/dist/esm/Canvas/utils/Image/professionalImageFilters.js +351 -0
- package/dist/esm/Canvas/utils/Image/professionalImageFilters.js.map +1 -0
- package/dist/esm/Canvas/utils/Image/simpleProfessionalFilters.d.ts +11 -0
- package/dist/esm/Canvas/utils/Image/simpleProfessionalFilters.d.ts.map +1 -0
- package/dist/esm/Canvas/utils/Image/simpleProfessionalFilters.js +215 -0
- package/dist/esm/Canvas/utils/Image/simpleProfessionalFilters.js.map +1 -0
- package/dist/esm/Canvas/utils/Patterns/enhancedPatternRenderer.d.ts +71 -0
- package/dist/esm/Canvas/utils/Patterns/enhancedPatternRenderer.d.ts.map +1 -0
- package/dist/esm/Canvas/utils/Patterns/enhancedPatternRenderer.js +392 -0
- package/dist/esm/Canvas/utils/Patterns/enhancedPatternRenderer.js.map +1 -0
- package/dist/esm/Canvas/utils/Shapes/shapes.d.ts +29 -0
- package/dist/esm/Canvas/utils/Shapes/shapes.d.ts.map +1 -0
- package/dist/esm/Canvas/utils/Shapes/shapes.js +334 -0
- package/dist/esm/Canvas/utils/Shapes/shapes.js.map +1 -0
- package/dist/esm/Canvas/utils/Texts/enhancedTextRenderer.d.ts +127 -0
- package/dist/esm/Canvas/utils/Texts/enhancedTextRenderer.d.ts.map +1 -0
- package/dist/esm/Canvas/utils/Texts/enhancedTextRenderer.js +365 -0
- package/dist/esm/Canvas/utils/Texts/enhancedTextRenderer.js.map +1 -0
- package/dist/esm/Canvas/utils/types.d.ts +227 -131
- package/dist/esm/Canvas/utils/types.d.ts.map +1 -1
- package/dist/esm/Canvas/utils/types.js +0 -1
- package/dist/esm/Canvas/utils/types.js.map +1 -1
- package/dist/esm/Canvas/utils/utils.d.ts +7 -4
- package/dist/esm/Canvas/utils/utils.d.ts.map +1 -1
- package/dist/esm/Canvas/utils/utils.js +17 -7
- package/dist/esm/Canvas/utils/utils.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/Canvas/ApexPainter.ts +1325 -1218
- package/lib/Canvas/utils/Background/bg.ts +247 -173
- package/lib/Canvas/utils/Custom/customLines.ts +3 -3
- package/lib/Canvas/utils/Image/imageFilters.ts +356 -0
- package/lib/Canvas/utils/Image/imageProperties.ts +322 -775
- package/lib/Canvas/utils/Image/professionalImageFilters.ts +391 -0
- package/lib/Canvas/utils/Image/simpleProfessionalFilters.ts +229 -0
- package/lib/Canvas/utils/Patterns/enhancedPatternRenderer.ts +444 -0
- package/lib/Canvas/utils/Shapes/shapes.ts +528 -0
- package/lib/Canvas/utils/Texts/enhancedTextRenderer.ts +478 -0
- package/lib/Canvas/utils/types.ts +301 -117
- package/lib/Canvas/utils/utils.ts +85 -72
- package/package.json +106 -188
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.drawShape = drawShape;
|
|
4
|
+
exports.createShapePath = createShapePath;
|
|
5
|
+
exports.isShapeSource = isShapeSource;
|
|
6
|
+
const imageProperties_1 = require("../Image/imageProperties");
|
|
7
|
+
/**
|
|
8
|
+
* Draws a shape on the canvas context
|
|
9
|
+
* @param ctx Canvas 2D context
|
|
10
|
+
* @param shapeType Type of shape to draw
|
|
11
|
+
* @param x X position
|
|
12
|
+
* @param y Y position
|
|
13
|
+
* @param width Width of the shape
|
|
14
|
+
* @param height Height of the shape
|
|
15
|
+
* @param shapeProps Shape properties including fill, color, gradient
|
|
16
|
+
*/
|
|
17
|
+
function drawShape(ctx, shapeType, x, y, width, height, shapeProps) {
|
|
18
|
+
ctx.save();
|
|
19
|
+
// Set up fill style
|
|
20
|
+
if (shapeProps.gradient) {
|
|
21
|
+
const gradient = (0, imageProperties_1.createGradientFill)(ctx, shapeProps.gradient, { x, y, w: width, h: height });
|
|
22
|
+
ctx.fillStyle = gradient;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
ctx.fillStyle = shapeProps.color || '#000000';
|
|
26
|
+
}
|
|
27
|
+
// Draw the shape based on type
|
|
28
|
+
switch (shapeType) {
|
|
29
|
+
case 'rectangle':
|
|
30
|
+
drawRectangle(ctx, x, y, width, height, shapeProps);
|
|
31
|
+
break;
|
|
32
|
+
case 'square':
|
|
33
|
+
const size = Math.min(width, height);
|
|
34
|
+
drawRectangle(ctx, x, y, size, size, shapeProps);
|
|
35
|
+
break;
|
|
36
|
+
case 'circle':
|
|
37
|
+
drawCircle(ctx, x, y, width, height, shapeProps);
|
|
38
|
+
break;
|
|
39
|
+
case 'triangle':
|
|
40
|
+
drawTriangle(ctx, x, y, width, height, shapeProps);
|
|
41
|
+
break;
|
|
42
|
+
case 'trapezium':
|
|
43
|
+
drawTrapezium(ctx, x, y, width, height, shapeProps);
|
|
44
|
+
break;
|
|
45
|
+
case 'star':
|
|
46
|
+
drawStar(ctx, x, y, width, height, shapeProps);
|
|
47
|
+
break;
|
|
48
|
+
case 'heart':
|
|
49
|
+
drawHeart(ctx, x, y, width, height, shapeProps);
|
|
50
|
+
break;
|
|
51
|
+
case 'polygon':
|
|
52
|
+
drawPolygon(ctx, x, y, width, height, shapeProps);
|
|
53
|
+
break;
|
|
54
|
+
default:
|
|
55
|
+
throw new Error(`Unknown shape type: ${shapeType}`);
|
|
56
|
+
}
|
|
57
|
+
ctx.restore();
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Creates a path for a shape (used for shadows and strokes)
|
|
61
|
+
* @param ctx Canvas 2D context
|
|
62
|
+
* @param shapeType Type of shape
|
|
63
|
+
* @param x X position
|
|
64
|
+
* @param y Y position
|
|
65
|
+
* @param width Width of the shape
|
|
66
|
+
* @param height Height of the shape
|
|
67
|
+
* @param shapeProps Shape properties
|
|
68
|
+
*/
|
|
69
|
+
function createShapePath(ctx, shapeType, x, y, width, height, shapeProps) {
|
|
70
|
+
switch (shapeType) {
|
|
71
|
+
case 'rectangle':
|
|
72
|
+
createRectanglePath(ctx, x, y, width, height);
|
|
73
|
+
break;
|
|
74
|
+
case 'square':
|
|
75
|
+
const size = Math.min(width, height);
|
|
76
|
+
createRectanglePath(ctx, x, y, size, size);
|
|
77
|
+
break;
|
|
78
|
+
case 'circle':
|
|
79
|
+
createCirclePath(ctx, x, y, width, height, shapeProps);
|
|
80
|
+
break;
|
|
81
|
+
case 'triangle':
|
|
82
|
+
createTrianglePath(ctx, x, y, width, height);
|
|
83
|
+
break;
|
|
84
|
+
case 'trapezium':
|
|
85
|
+
createTrapeziumPath(ctx, x, y, width, height);
|
|
86
|
+
break;
|
|
87
|
+
case 'star':
|
|
88
|
+
createStarPath(ctx, x, y, width, height, shapeProps);
|
|
89
|
+
break;
|
|
90
|
+
case 'heart':
|
|
91
|
+
createHeartPath(ctx, x, y, width, height);
|
|
92
|
+
break;
|
|
93
|
+
case 'polygon':
|
|
94
|
+
createPolygonPath(ctx, x, y, width, height, shapeProps);
|
|
95
|
+
break;
|
|
96
|
+
default:
|
|
97
|
+
throw new Error(`Unknown shape type: ${shapeType}`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Draws a rectangle
|
|
102
|
+
*/
|
|
103
|
+
function drawRectangle(ctx, x, y, width, height, shapeProps) {
|
|
104
|
+
ctx.beginPath();
|
|
105
|
+
ctx.rect(x, y, width, height);
|
|
106
|
+
if (shapeProps.fill !== false) {
|
|
107
|
+
ctx.fill();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Creates rectangle path
|
|
112
|
+
*/
|
|
113
|
+
function createRectanglePath(ctx, x, y, width, height) {
|
|
114
|
+
ctx.beginPath();
|
|
115
|
+
ctx.rect(x, y, width, height);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Draws a circle
|
|
119
|
+
*/
|
|
120
|
+
function drawCircle(ctx, x, y, width, height, shapeProps) {
|
|
121
|
+
const centerX = x + width / 2;
|
|
122
|
+
const centerY = y + height / 2;
|
|
123
|
+
const radius = shapeProps.radius || Math.min(width, height) / 2;
|
|
124
|
+
ctx.beginPath();
|
|
125
|
+
ctx.arc(centerX, centerY, radius, 0, 2 * Math.PI);
|
|
126
|
+
if (shapeProps.fill !== false) {
|
|
127
|
+
ctx.fill();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Creates circle path
|
|
132
|
+
*/
|
|
133
|
+
function createCirclePath(ctx, x, y, width, height, shapeProps) {
|
|
134
|
+
const centerX = x + width / 2;
|
|
135
|
+
const centerY = y + height / 2;
|
|
136
|
+
const radius = shapeProps.radius || Math.min(width, height) / 2;
|
|
137
|
+
ctx.beginPath();
|
|
138
|
+
ctx.arc(centerX, centerY, radius, 0, 2 * Math.PI);
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Draws a triangle (pointing up)
|
|
142
|
+
*/
|
|
143
|
+
function drawTriangle(ctx, x, y, width, height, shapeProps) {
|
|
144
|
+
const centerX = x + width / 2;
|
|
145
|
+
const topY = y;
|
|
146
|
+
const bottomY = y + height;
|
|
147
|
+
const leftX = x;
|
|
148
|
+
const rightX = x + width;
|
|
149
|
+
ctx.beginPath();
|
|
150
|
+
ctx.moveTo(centerX, topY); // Top point
|
|
151
|
+
ctx.lineTo(rightX, bottomY); // Bottom right
|
|
152
|
+
ctx.lineTo(leftX, bottomY); // Bottom left
|
|
153
|
+
ctx.closePath();
|
|
154
|
+
if (shapeProps.fill !== false) {
|
|
155
|
+
ctx.fill();
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Creates triangle path
|
|
160
|
+
*/
|
|
161
|
+
function createTrianglePath(ctx, x, y, width, height) {
|
|
162
|
+
const centerX = x + width / 2;
|
|
163
|
+
const topY = y;
|
|
164
|
+
const bottomY = y + height;
|
|
165
|
+
const leftX = x;
|
|
166
|
+
const rightX = x + width;
|
|
167
|
+
ctx.beginPath();
|
|
168
|
+
ctx.moveTo(centerX, topY); // Top point
|
|
169
|
+
ctx.lineTo(rightX, bottomY); // Bottom right
|
|
170
|
+
ctx.lineTo(leftX, bottomY); // Bottom left
|
|
171
|
+
ctx.closePath();
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Draws a trapezium (isosceles trapezoid)
|
|
175
|
+
*/
|
|
176
|
+
function drawTrapezium(ctx, x, y, width, height, shapeProps) {
|
|
177
|
+
const topWidth = width * 0.6; // Top is 60% of bottom width
|
|
178
|
+
const topOffset = (width - topWidth) / 2;
|
|
179
|
+
ctx.beginPath();
|
|
180
|
+
ctx.moveTo(x + topOffset, y); // Top left
|
|
181
|
+
ctx.lineTo(x + topOffset + topWidth, y); // Top right
|
|
182
|
+
ctx.lineTo(x + width, y + height); // Bottom right
|
|
183
|
+
ctx.lineTo(x, y + height); // Bottom left
|
|
184
|
+
ctx.closePath();
|
|
185
|
+
if (shapeProps.fill !== false) {
|
|
186
|
+
ctx.fill();
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Creates trapezium path
|
|
191
|
+
*/
|
|
192
|
+
function createTrapeziumPath(ctx, x, y, width, height) {
|
|
193
|
+
const topWidth = width * 0.6; // Top is 60% of bottom width
|
|
194
|
+
const topOffset = (width - topWidth) / 2;
|
|
195
|
+
ctx.beginPath();
|
|
196
|
+
ctx.moveTo(x + topOffset, y); // Top left
|
|
197
|
+
ctx.lineTo(x + topOffset + topWidth, y); // Top right
|
|
198
|
+
ctx.lineTo(x + width, y + height); // Bottom right
|
|
199
|
+
ctx.lineTo(x, y + height); // Bottom left
|
|
200
|
+
ctx.closePath();
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Draws a star
|
|
204
|
+
*/
|
|
205
|
+
function drawStar(ctx, x, y, width, height, shapeProps) {
|
|
206
|
+
const centerX = x + width / 2;
|
|
207
|
+
const centerY = y + height / 2;
|
|
208
|
+
const outerRadius = shapeProps.outerRadius || Math.min(width, height) / 2;
|
|
209
|
+
const innerRadius = shapeProps.innerRadius || outerRadius * 0.4;
|
|
210
|
+
const points = 5; // 5-pointed star
|
|
211
|
+
ctx.beginPath();
|
|
212
|
+
for (let i = 0; i < points * 2; i++) {
|
|
213
|
+
const angle = (i * Math.PI) / points;
|
|
214
|
+
const radius = i % 2 === 0 ? outerRadius : innerRadius;
|
|
215
|
+
const pointX = centerX + Math.cos(angle - Math.PI / 2) * radius;
|
|
216
|
+
const pointY = centerY + Math.sin(angle - Math.PI / 2) * radius;
|
|
217
|
+
if (i === 0) {
|
|
218
|
+
ctx.moveTo(pointX, pointY);
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
ctx.lineTo(pointX, pointY);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
ctx.closePath();
|
|
225
|
+
if (shapeProps.fill !== false) {
|
|
226
|
+
ctx.fill();
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Creates star path
|
|
231
|
+
*/
|
|
232
|
+
function createStarPath(ctx, x, y, width, height, shapeProps) {
|
|
233
|
+
const centerX = x + width / 2;
|
|
234
|
+
const centerY = y + height / 2;
|
|
235
|
+
const outerRadius = shapeProps.outerRadius || Math.min(width, height) / 2;
|
|
236
|
+
const innerRadius = shapeProps.innerRadius || outerRadius * 0.4;
|
|
237
|
+
const points = 5; // 5-pointed star
|
|
238
|
+
ctx.beginPath();
|
|
239
|
+
for (let i = 0; i < points * 2; i++) {
|
|
240
|
+
const angle = (i * Math.PI) / points;
|
|
241
|
+
const radius = i % 2 === 0 ? outerRadius : innerRadius;
|
|
242
|
+
const pointX = centerX + Math.cos(angle - Math.PI / 2) * radius;
|
|
243
|
+
const pointY = centerY + Math.sin(angle - Math.PI / 2) * radius;
|
|
244
|
+
if (i === 0) {
|
|
245
|
+
ctx.moveTo(pointX, pointY);
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
ctx.lineTo(pointX, pointY);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
ctx.closePath();
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Draws a heart shape with improved bezier curves
|
|
255
|
+
*/
|
|
256
|
+
function drawHeart(ctx, x, y, width, height, shapeProps) {
|
|
257
|
+
ctx.beginPath();
|
|
258
|
+
ctx.moveTo(x + width / 2, y + height * 0.9);
|
|
259
|
+
ctx.bezierCurveTo(x + (width * 35) / 100, y + (height * 60) / 100, x + (width * 10) / 100, y + (height * 55) / 100, x + (width * 10) / 100, y + (height * 33.33) / 100);
|
|
260
|
+
ctx.bezierCurveTo(x + (width * 10) / 100, y + (height * 10) / 100, x + (width * 50) / 100, y + (height * 5) / 100, x + (width * 50) / 100, y + (height * 33.33) / 100);
|
|
261
|
+
ctx.bezierCurveTo(x + (width * 50) / 100, y + (height * 5) / 100, x + (width * 90) / 100, y + (height * 10) / 100, x + (width * 90) / 100, y + (height * 33.33) / 100);
|
|
262
|
+
ctx.bezierCurveTo(x + (width * 90) / 100, y + (height * 55) / 100, x + (width * 65) / 100, y + (height * 60) / 100, x + width / 2, y + height * 0.9);
|
|
263
|
+
ctx.closePath();
|
|
264
|
+
if (shapeProps.fill !== false) {
|
|
265
|
+
ctx.fill();
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Creates heart path with improved bezier curves
|
|
270
|
+
*/
|
|
271
|
+
function createHeartPath(ctx, x, y, width, height) {
|
|
272
|
+
ctx.beginPath();
|
|
273
|
+
ctx.moveTo(x + width / 2, y + height * 0.9);
|
|
274
|
+
ctx.bezierCurveTo(x + (width * 35) / 100, y + (height * 60) / 100, x + (width * 10) / 100, y + (height * 55) / 100, x + (width * 10) / 100, y + (height * 33.33) / 100);
|
|
275
|
+
ctx.bezierCurveTo(x + (width * 10) / 100, y + (height * 10) / 100, x + (width * 50) / 100, y + (height * 5) / 100, x + (width * 50) / 100, y + (height * 33.33) / 100);
|
|
276
|
+
ctx.bezierCurveTo(x + (width * 50) / 100, y + (height * 5) / 100, x + (width * 90) / 100, y + (height * 10) / 100, x + (width * 90) / 100, y + (height * 33.33) / 100);
|
|
277
|
+
ctx.bezierCurveTo(x + (width * 90) / 100, y + (height * 55) / 100, x + (width * 65) / 100, y + (height * 60) / 100, x + width / 2, y + height * 0.9);
|
|
278
|
+
ctx.closePath();
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Draws a polygon
|
|
282
|
+
*/
|
|
283
|
+
function drawPolygon(ctx, x, y, width, height, shapeProps) {
|
|
284
|
+
const centerX = x + width / 2;
|
|
285
|
+
const centerY = y + height / 2;
|
|
286
|
+
const radius = Math.min(width, height) / 2;
|
|
287
|
+
const sides = shapeProps.sides || 6; // Default to hexagon
|
|
288
|
+
ctx.beginPath();
|
|
289
|
+
for (let i = 0; i < sides; i++) {
|
|
290
|
+
const angle = (i * 2 * Math.PI) / sides;
|
|
291
|
+
const pointX = centerX + Math.cos(angle - Math.PI / 2) * radius;
|
|
292
|
+
const pointY = centerY + Math.sin(angle - Math.PI / 2) * radius;
|
|
293
|
+
if (i === 0) {
|
|
294
|
+
ctx.moveTo(pointX, pointY);
|
|
295
|
+
}
|
|
296
|
+
else {
|
|
297
|
+
ctx.lineTo(pointX, pointY);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
ctx.closePath();
|
|
301
|
+
if (shapeProps.fill !== false) {
|
|
302
|
+
ctx.fill();
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Creates polygon path
|
|
307
|
+
*/
|
|
308
|
+
function createPolygonPath(ctx, x, y, width, height, shapeProps) {
|
|
309
|
+
const centerX = x + width / 2;
|
|
310
|
+
const centerY = y + height / 2;
|
|
311
|
+
const radius = Math.min(width, height) / 2;
|
|
312
|
+
const sides = shapeProps.sides || 6; // Default to hexagon
|
|
313
|
+
ctx.beginPath();
|
|
314
|
+
for (let i = 0; i < sides; i++) {
|
|
315
|
+
const angle = (i * 2 * Math.PI) / sides;
|
|
316
|
+
const pointX = centerX + Math.cos(angle - Math.PI / 2) * radius;
|
|
317
|
+
const pointY = centerY + Math.sin(angle - Math.PI / 2) * radius;
|
|
318
|
+
if (i === 0) {
|
|
319
|
+
ctx.moveTo(pointX, pointY);
|
|
320
|
+
}
|
|
321
|
+
else {
|
|
322
|
+
ctx.lineTo(pointX, pointY);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
ctx.closePath();
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Checks if a source is a shape type
|
|
329
|
+
*/
|
|
330
|
+
function isShapeSource(source) {
|
|
331
|
+
const shapeTypes = ['rectangle', 'square', 'circle', 'triangle', 'trapezium', 'star', 'heart', 'polygon'];
|
|
332
|
+
return typeof source === 'string' && shapeTypes.includes(source);
|
|
333
|
+
}
|
|
334
|
+
//# sourceMappingURL=shapes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shapes.js","sourceRoot":"","sources":["../../../../../lib/Canvas/utils/Shapes/shapes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { SKRSContext2D } from '@napi-rs/canvas';
|
|
2
|
+
import { TextProperties } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Enhanced text renderer with comprehensive styling options
|
|
5
|
+
*/
|
|
6
|
+
export declare class EnhancedTextRenderer {
|
|
7
|
+
/**
|
|
8
|
+
* Renders text with all enhanced features
|
|
9
|
+
* @param ctx - Canvas 2D context
|
|
10
|
+
* @param textProps - Text properties configuration
|
|
11
|
+
*/
|
|
12
|
+
static renderText(ctx: SKRSContext2D, textProps: TextProperties): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Registers a custom font from file path
|
|
15
|
+
* @param fontPath - Path to font file
|
|
16
|
+
* @param fontName - Name to register the font as
|
|
17
|
+
*/
|
|
18
|
+
private static registerCustomFont;
|
|
19
|
+
/**
|
|
20
|
+
* Applies transformations (rotation, opacity)
|
|
21
|
+
* @param ctx - Canvas 2D context
|
|
22
|
+
* @param textProps - Text properties
|
|
23
|
+
*/
|
|
24
|
+
private static applyTransformations;
|
|
25
|
+
/**
|
|
26
|
+
* Sets up font properties and spacing
|
|
27
|
+
* @param ctx - Canvas 2D context
|
|
28
|
+
* @param textProps - Text properties
|
|
29
|
+
*/
|
|
30
|
+
private static setupFont;
|
|
31
|
+
/**
|
|
32
|
+
* Sets up text alignment
|
|
33
|
+
* @param ctx - Canvas 2D context
|
|
34
|
+
* @param textProps - Text properties
|
|
35
|
+
*/
|
|
36
|
+
private static setupAlignment;
|
|
37
|
+
/**
|
|
38
|
+
* Renders wrapped text with all effects
|
|
39
|
+
* @param ctx - Canvas 2D context
|
|
40
|
+
* @param textProps - Text properties
|
|
41
|
+
*/
|
|
42
|
+
private static renderWrappedText;
|
|
43
|
+
/**
|
|
44
|
+
* Renders single line text with all effects
|
|
45
|
+
* @param ctx - Canvas 2D context
|
|
46
|
+
* @param textProps - Text properties
|
|
47
|
+
*/
|
|
48
|
+
private static renderSingleLine;
|
|
49
|
+
/**
|
|
50
|
+
* Renders a single line of text with all effects applied
|
|
51
|
+
* @param ctx - Canvas 2D context
|
|
52
|
+
* @param text - Text to render
|
|
53
|
+
* @param x - X position
|
|
54
|
+
* @param y - Y position
|
|
55
|
+
* @param textProps - Text properties
|
|
56
|
+
*/
|
|
57
|
+
private static renderTextLine;
|
|
58
|
+
/**
|
|
59
|
+
* Renders highlight background
|
|
60
|
+
* @param ctx - Canvas 2D context
|
|
61
|
+
* @param x - X position
|
|
62
|
+
* @param y - Y position
|
|
63
|
+
* @param width - Text width
|
|
64
|
+
* @param height - Text height
|
|
65
|
+
* @param highlight - Highlight options
|
|
66
|
+
*/
|
|
67
|
+
private static renderHighlight;
|
|
68
|
+
/**
|
|
69
|
+
* Renders glow effect
|
|
70
|
+
* @param ctx - Canvas 2D context
|
|
71
|
+
* @param text - Text to render
|
|
72
|
+
* @param x - X position
|
|
73
|
+
* @param y - Y position
|
|
74
|
+
* @param glow - Glow options
|
|
75
|
+
*/
|
|
76
|
+
private static renderGlow;
|
|
77
|
+
/**
|
|
78
|
+
* Renders shadow effect
|
|
79
|
+
* @param ctx - Canvas 2D context
|
|
80
|
+
* @param text - Text to render
|
|
81
|
+
* @param x - X position
|
|
82
|
+
* @param y - Y position
|
|
83
|
+
* @param shadow - Shadow options
|
|
84
|
+
*/
|
|
85
|
+
private static renderShadow;
|
|
86
|
+
/**
|
|
87
|
+
* Renders stroke/outline
|
|
88
|
+
* @param ctx - Canvas 2D context
|
|
89
|
+
* @param text - Text to render
|
|
90
|
+
* @param x - X position
|
|
91
|
+
* @param y - Y position
|
|
92
|
+
* @param stroke - Stroke options
|
|
93
|
+
*/
|
|
94
|
+
private static renderStroke;
|
|
95
|
+
/**
|
|
96
|
+
* Renders text fill
|
|
97
|
+
* @param ctx - Canvas 2D context
|
|
98
|
+
* @param text - Text to render
|
|
99
|
+
* @param x - X position
|
|
100
|
+
* @param y - Y position
|
|
101
|
+
* @param textProps - Text properties
|
|
102
|
+
*/
|
|
103
|
+
private static renderFill;
|
|
104
|
+
/**
|
|
105
|
+
* Renders text decorations (underline, overline, strikethrough)
|
|
106
|
+
* @param ctx - Canvas 2D context
|
|
107
|
+
* @param text - Text to render
|
|
108
|
+
* @param x - X position
|
|
109
|
+
* @param y - Y position
|
|
110
|
+
* @param width - Text width
|
|
111
|
+
* @param height - Text height
|
|
112
|
+
* @param textProps - Text properties
|
|
113
|
+
*/
|
|
114
|
+
private static renderDecorations;
|
|
115
|
+
/**
|
|
116
|
+
* Creates a gradient for text fill or stroke
|
|
117
|
+
* @param ctx - Canvas 2D context
|
|
118
|
+
* @param gradientOptions - Gradient configuration
|
|
119
|
+
* @param startX - Start X position
|
|
120
|
+
* @param startY - Start Y position
|
|
121
|
+
* @param endX - End X position
|
|
122
|
+
* @param endY - End Y position
|
|
123
|
+
* @returns Canvas gradient
|
|
124
|
+
*/
|
|
125
|
+
private static createGradient;
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=enhancedTextRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enhancedTextRenderer.d.ts","sourceRoot":"","sources":["../../../../../lib/Canvas/utils/Texts/enhancedTextRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAY,MAAM,UAAU,CAAC;AAIpD;;GAEG;AACH,qBAAa,oBAAoB;IAC/B;;;;OAIG;WACU,UAAU,CAAC,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BrF;;;;OAIG;mBACkB,kBAAkB;IASvC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAcnC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IAyBxB;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAK7B;;;;OAIG;mBACkB,iBAAiB;IAuCtC;;;;OAIG;mBACkB,gBAAgB;IAIrC;;;;;;;OAOG;mBACkB,cAAc;IAwCnC;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAqB9B;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAqBzB;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAuB3B;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IA0B3B;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAoBzB;;;;;;;;;OASG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAoDhC;;;;;;;;;OASG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;CAmC9B"}
|