@meonode/canvas 1.6.0-beta.2 → 1.7.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/cjs/canvas/canvas.helper.d.ts +20 -1
- package/dist/cjs/canvas/canvas.helper.d.ts.map +1 -1
- package/dist/cjs/canvas/canvas.helper.js +230 -0
- package/dist/cjs/canvas/canvas.helper.js.map +1 -1
- package/dist/cjs/canvas/canvas.type.d.ts +19 -8
- package/dist/cjs/canvas/canvas.type.d.ts.map +1 -1
- package/dist/cjs/canvas/chart.canvas.util.d.ts +2 -2
- package/dist/cjs/canvas/chart.canvas.util.d.ts.map +1 -1
- package/dist/cjs/canvas/chart.canvas.util.js +101 -26
- package/dist/cjs/canvas/chart.canvas.util.js.map +1 -1
- package/dist/cjs/canvas/grid.canvas.util.d.ts +3 -3
- package/dist/cjs/canvas/grid.canvas.util.d.ts.map +1 -1
- package/dist/cjs/canvas/grid.canvas.util.js.map +1 -1
- package/dist/cjs/canvas/image.canvas.util.d.ts +2 -2
- package/dist/cjs/canvas/image.canvas.util.d.ts.map +1 -1
- package/dist/cjs/canvas/image.canvas.util.js.map +1 -1
- package/dist/cjs/canvas/layout.canvas.util.d.ts +4 -4
- package/dist/cjs/canvas/layout.canvas.util.d.ts.map +1 -1
- package/dist/cjs/canvas/layout.canvas.util.js +1 -1
- package/dist/cjs/canvas/layout.canvas.util.js.map +1 -1
- package/dist/cjs/canvas/root.canvas.util.d.ts +3 -3
- package/dist/cjs/canvas/root.canvas.util.d.ts.map +1 -1
- package/dist/cjs/canvas/root.canvas.util.js +6 -4
- package/dist/cjs/canvas/root.canvas.util.js.map +1 -1
- package/dist/cjs/canvas/text.canvas.util.d.ts +2 -2
- package/dist/cjs/canvas/text.canvas.util.d.ts.map +1 -1
- package/dist/cjs/canvas/text.canvas.util.js +0 -1
- package/dist/cjs/canvas/text.canvas.util.js.map +1 -1
- package/dist/esm/canvas/canvas.helper.d.ts +20 -1
- package/dist/esm/canvas/canvas.helper.d.ts.map +1 -1
- package/dist/esm/canvas/canvas.helper.js +230 -1
- package/dist/esm/canvas/canvas.type.d.ts +19 -8
- package/dist/esm/canvas/canvas.type.d.ts.map +1 -1
- package/dist/esm/canvas/chart.canvas.util.d.ts +2 -2
- package/dist/esm/canvas/chart.canvas.util.d.ts.map +1 -1
- package/dist/esm/canvas/chart.canvas.util.js +102 -27
- package/dist/esm/canvas/grid.canvas.util.d.ts +3 -3
- package/dist/esm/canvas/grid.canvas.util.d.ts.map +1 -1
- package/dist/esm/canvas/image.canvas.util.d.ts +2 -2
- package/dist/esm/canvas/image.canvas.util.d.ts.map +1 -1
- package/dist/esm/canvas/layout.canvas.util.d.ts +4 -4
- package/dist/esm/canvas/layout.canvas.util.d.ts.map +1 -1
- package/dist/esm/canvas/layout.canvas.util.js +1 -1
- package/dist/esm/canvas/root.canvas.util.d.ts +3 -3
- package/dist/esm/canvas/root.canvas.util.d.ts.map +1 -1
- package/dist/esm/canvas/root.canvas.util.js +6 -4
- package/dist/esm/canvas/text.canvas.util.d.ts +2 -2
- package/dist/esm/canvas/text.canvas.util.d.ts.map +1 -1
- package/dist/esm/canvas/text.canvas.util.js +0 -1
- package/package.json +1 -1
|
@@ -209,5 +209,234 @@ function parsePercentage(value, base) {
|
|
|
209
209
|
}
|
|
210
210
|
return 0;
|
|
211
211
|
}
|
|
212
|
+
/**
|
|
213
|
+
* Pre-processes a RootProps descriptor tree on the main thread before postMessage.
|
|
214
|
+
* Executes function props against available data, stores results as serializable fields,
|
|
215
|
+
* then strips remaining functions as a safety net.
|
|
216
|
+
*/
|
|
217
|
+
class WorkerPreProcessor {
|
|
218
|
+
static CHART_COLORS = ['#FF6384', '#36A2EB', '#FFCE56', '#4BC0C0', '#9966FF', '#FF9F40', '#C9CBCF'];
|
|
219
|
+
static process(props) {
|
|
220
|
+
const cloned = { ...props };
|
|
221
|
+
if (cloned.children) {
|
|
222
|
+
const childArray = Array.isArray(cloned.children) ? cloned.children : [cloned.children];
|
|
223
|
+
cloned.children = childArray.map(child => {
|
|
224
|
+
if (child && typeof child === 'object' && '__type' in child) {
|
|
225
|
+
return this.processDescriptor(child);
|
|
226
|
+
}
|
|
227
|
+
return child;
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
return this.stripNonSerializable(cloned);
|
|
231
|
+
}
|
|
232
|
+
static processDescriptor(desc) {
|
|
233
|
+
if (desc.__type === 'Chart') {
|
|
234
|
+
return this.processChartDescriptor(desc);
|
|
235
|
+
}
|
|
236
|
+
if ('children' in desc && desc.children) {
|
|
237
|
+
return { ...desc, children: desc.children.map(c => this.processDescriptor(c)) };
|
|
238
|
+
}
|
|
239
|
+
return desc;
|
|
240
|
+
}
|
|
241
|
+
static processChartDescriptor(desc) {
|
|
242
|
+
const props = { ...desc.props };
|
|
243
|
+
const options = { ...(props.options || {}) };
|
|
244
|
+
const chartType = props.type;
|
|
245
|
+
const data = props.data;
|
|
246
|
+
// xAxisLabelFormatter
|
|
247
|
+
if (typeof options.xAxisLabelFormatter === 'function' && (chartType === 'bar' || chartType === 'line')) {
|
|
248
|
+
const cartData = data;
|
|
249
|
+
if (cartData.labels) {
|
|
250
|
+
options._preComputedXAxisLabels = cartData.labels.map((label, index) => {
|
|
251
|
+
try {
|
|
252
|
+
return options.xAxisLabelFormatter(label, index);
|
|
253
|
+
}
|
|
254
|
+
catch (err) {
|
|
255
|
+
console.warn(`[WorkerPreProcessor] xAxisLabelFormatter threw for label "${label}" at index ${index}:`, err);
|
|
256
|
+
return label;
|
|
257
|
+
}
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
delete options.xAxisLabelFormatter;
|
|
261
|
+
}
|
|
262
|
+
// yAxisLabelFormatter
|
|
263
|
+
if (typeof options.yAxisLabelFormatter === 'function' && (chartType === 'bar' || chartType === 'line')) {
|
|
264
|
+
const cartData = data;
|
|
265
|
+
const maxValue = Math.max(...cartData.datasets.flatMap((d) => d.data));
|
|
266
|
+
const labels = [];
|
|
267
|
+
for (let i = 0; i <= 5; i++) {
|
|
268
|
+
const value = maxValue - (maxValue / 5) * i;
|
|
269
|
+
try {
|
|
270
|
+
labels.push(options.yAxisLabelFormatter(value));
|
|
271
|
+
}
|
|
272
|
+
catch (err) {
|
|
273
|
+
console.warn(`[WorkerPreProcessor] yAxisLabelFormatter threw for value ${value}:`, err);
|
|
274
|
+
labels.push(String(value));
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
options._preComputedYAxisLabels = labels;
|
|
278
|
+
delete options.yAxisLabelFormatter;
|
|
279
|
+
}
|
|
280
|
+
// renderLegendItem
|
|
281
|
+
if (typeof options.renderLegendItem === 'function') {
|
|
282
|
+
if (chartType === 'bar' || chartType === 'line') {
|
|
283
|
+
const cartData = data;
|
|
284
|
+
options._preComputedLegendItems = cartData.datasets.map((item, index) => {
|
|
285
|
+
const color = item.color || this.generateColor(index);
|
|
286
|
+
try {
|
|
287
|
+
const result = options.renderLegendItem({ item, index, color });
|
|
288
|
+
return this.nodeToDescriptor(result);
|
|
289
|
+
}
|
|
290
|
+
catch (err) {
|
|
291
|
+
console.warn(`[WorkerPreProcessor] renderLegendItem threw at index ${index}:`, err);
|
|
292
|
+
return null;
|
|
293
|
+
}
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
else {
|
|
297
|
+
const pieData = data;
|
|
298
|
+
options._preComputedLegendItems = pieData.map((item, index) => {
|
|
299
|
+
const color = item.color || this.generateColor(index);
|
|
300
|
+
try {
|
|
301
|
+
const result = options.renderLegendItem({ item, index, color });
|
|
302
|
+
return this.nodeToDescriptor(result);
|
|
303
|
+
}
|
|
304
|
+
catch (err) {
|
|
305
|
+
console.warn(`[WorkerPreProcessor] renderLegendItem threw at index ${index}:`, err);
|
|
306
|
+
return null;
|
|
307
|
+
}
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
delete options.renderLegendItem;
|
|
311
|
+
}
|
|
312
|
+
// renderLabelItem
|
|
313
|
+
if (typeof options.renderLabelItem === 'function') {
|
|
314
|
+
if (chartType === 'bar' || chartType === 'line') {
|
|
315
|
+
const cartData = data;
|
|
316
|
+
options._preComputedLabelItems = cartData.labels.map((label, index) => {
|
|
317
|
+
try {
|
|
318
|
+
const result = options.renderLabelItem({ item: label, index });
|
|
319
|
+
return this.nodeToDescriptor(result);
|
|
320
|
+
}
|
|
321
|
+
catch (err) {
|
|
322
|
+
console.warn(`[WorkerPreProcessor] renderLabelItem threw at index ${index}:`, err);
|
|
323
|
+
return null;
|
|
324
|
+
}
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
else {
|
|
328
|
+
const pieData = data;
|
|
329
|
+
options._preComputedLabelItems = pieData.map((item, index) => {
|
|
330
|
+
try {
|
|
331
|
+
const result = options.renderLabelItem({ item, index });
|
|
332
|
+
return this.nodeToDescriptor(result);
|
|
333
|
+
}
|
|
334
|
+
catch (err) {
|
|
335
|
+
console.warn(`[WorkerPreProcessor] renderLabelItem threw at index ${index}:`, err);
|
|
336
|
+
return null;
|
|
337
|
+
}
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
delete options.renderLabelItem;
|
|
341
|
+
}
|
|
342
|
+
// renderValueItem
|
|
343
|
+
if (typeof options.renderValueItem === 'function' && (chartType === 'bar' || chartType === 'line')) {
|
|
344
|
+
const cartData = data;
|
|
345
|
+
options._preComputedValueItems = cartData.datasets.map((dataset, datasetIndex) => dataset.data.map((value, index) => {
|
|
346
|
+
try {
|
|
347
|
+
const result = options.renderValueItem({ item: value, index, datasetIndex });
|
|
348
|
+
return this.nodeToDescriptor(result);
|
|
349
|
+
}
|
|
350
|
+
catch (err) {
|
|
351
|
+
console.warn(`[WorkerPreProcessor] renderValueItem threw at dataset ${datasetIndex}, index ${index}:`, err);
|
|
352
|
+
return null;
|
|
353
|
+
}
|
|
354
|
+
}));
|
|
355
|
+
delete options.renderValueItem;
|
|
356
|
+
}
|
|
357
|
+
props.options = options;
|
|
358
|
+
return { ...desc, props };
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* Converts a BoxNode instance or CanvasElement to a CanvasElement.
|
|
362
|
+
* Public API functions (Box(), Text(), etc.) already return CanvasElements,
|
|
363
|
+
* but if someone returns an actual class instance, we convert it via initialProps.
|
|
364
|
+
*/
|
|
365
|
+
static nodeToDescriptor(node) {
|
|
366
|
+
if (!node)
|
|
367
|
+
return node;
|
|
368
|
+
// Already a CanvasElement (has __type)
|
|
369
|
+
if (typeof node === 'object' && '__type' in node)
|
|
370
|
+
return node;
|
|
371
|
+
// Class instance (e.g. BoxNode, TextNode, ImageNode) — convert via duck-typing
|
|
372
|
+
if (typeof node === 'object' && node.constructor !== Object) {
|
|
373
|
+
if ('initialProps' in node && 'name' in node) {
|
|
374
|
+
const { children, ...rest } = node.initialProps || {};
|
|
375
|
+
const childArray = Array.isArray(children) ? children : children ? [children] : [];
|
|
376
|
+
const convertedChildren = childArray
|
|
377
|
+
.filter((c) => c)
|
|
378
|
+
.map((c) => this.nodeToDescriptor(c))
|
|
379
|
+
.filter((c) => !!c);
|
|
380
|
+
const name = node.name;
|
|
381
|
+
const type = name === 'TextNode'
|
|
382
|
+
? 'Text'
|
|
383
|
+
: name === 'Row'
|
|
384
|
+
? 'Row'
|
|
385
|
+
: name === 'Image'
|
|
386
|
+
? 'Image'
|
|
387
|
+
: rest.flexDirection === Style.FlexDirection.Column
|
|
388
|
+
? 'Column'
|
|
389
|
+
: 'Box';
|
|
390
|
+
if (type === 'Text') {
|
|
391
|
+
// TextNode stores original text in segments — fall back to joined segment text
|
|
392
|
+
const text = node.segments?.map((s) => s.text).join('') ?? '';
|
|
393
|
+
return { __type: 'Text', text, props: rest };
|
|
394
|
+
}
|
|
395
|
+
if (type === 'Image') {
|
|
396
|
+
return { __type: 'Image', props: rest };
|
|
397
|
+
}
|
|
398
|
+
return {
|
|
399
|
+
__type: type,
|
|
400
|
+
props: rest,
|
|
401
|
+
...(convertedChildren.length > 0 ? { children: convertedChildren } : {}),
|
|
402
|
+
};
|
|
403
|
+
}
|
|
404
|
+
console.warn('[WorkerPreProcessor] Render function returned an unrecognized class instance. Use descriptor functions (Box(), Text(), etc.) instead.');
|
|
405
|
+
return null;
|
|
406
|
+
}
|
|
407
|
+
return node;
|
|
408
|
+
}
|
|
409
|
+
static generateColor(index) {
|
|
410
|
+
return this.CHART_COLORS[index % this.CHART_COLORS.length];
|
|
411
|
+
}
|
|
412
|
+
static stripNonSerializable(obj) {
|
|
413
|
+
if (obj === null || obj === undefined)
|
|
414
|
+
return obj;
|
|
415
|
+
if (typeof obj === 'function')
|
|
416
|
+
return undefined;
|
|
417
|
+
if (typeof obj === 'symbol')
|
|
418
|
+
return undefined;
|
|
419
|
+
if (typeof obj !== 'object')
|
|
420
|
+
return obj;
|
|
421
|
+
// Preserve binary data types
|
|
422
|
+
if (Buffer.isBuffer(obj))
|
|
423
|
+
return obj;
|
|
424
|
+
if (obj instanceof ArrayBuffer)
|
|
425
|
+
return obj;
|
|
426
|
+
if (ArrayBuffer.isView(obj))
|
|
427
|
+
return obj;
|
|
428
|
+
if (Array.isArray(obj)) {
|
|
429
|
+
return obj.map(item => this.stripNonSerializable(item));
|
|
430
|
+
}
|
|
431
|
+
const result = {};
|
|
432
|
+
for (const key of Object.keys(obj)) {
|
|
433
|
+
const value = obj[key];
|
|
434
|
+
if (typeof value === 'function' || typeof value === 'symbol')
|
|
435
|
+
continue;
|
|
436
|
+
result[key] = this.stripNonSerializable(value);
|
|
437
|
+
}
|
|
438
|
+
return result;
|
|
439
|
+
}
|
|
440
|
+
}
|
|
212
441
|
|
|
213
|
-
export { drawBorders, drawRoundedRectPath, parseBorderRadius, parsePercentage };
|
|
442
|
+
export { WorkerPreProcessor, drawBorders, drawRoundedRectPath, parseBorderRadius, parsePercentage };
|
|
@@ -14,27 +14,27 @@ export interface BaseProps {
|
|
|
14
14
|
*/
|
|
15
15
|
key?: string;
|
|
16
16
|
}
|
|
17
|
-
export type Children = BoxNode | TextNode | ImageNode | GridNode |
|
|
18
|
-
export type
|
|
17
|
+
export type Children = BoxNode | TextNode | ImageNode | GridNode | CanvasElement | false | undefined;
|
|
18
|
+
export type CanvasElement = {
|
|
19
19
|
__type: 'Box';
|
|
20
20
|
props: Omit<BoxProps, 'children'>;
|
|
21
|
-
children?:
|
|
21
|
+
children?: CanvasElement[];
|
|
22
22
|
} | {
|
|
23
23
|
__type: 'Column';
|
|
24
24
|
props: Omit<BoxProps, 'children'>;
|
|
25
|
-
children?:
|
|
25
|
+
children?: CanvasElement[];
|
|
26
26
|
} | {
|
|
27
27
|
__type: 'Row';
|
|
28
28
|
props: Omit<BoxProps, 'children'>;
|
|
29
|
-
children?:
|
|
29
|
+
children?: CanvasElement[];
|
|
30
30
|
} | {
|
|
31
31
|
__type: 'Grid';
|
|
32
32
|
props: Omit<GridProps, 'children'>;
|
|
33
|
-
children?:
|
|
33
|
+
children?: CanvasElement[];
|
|
34
34
|
} | {
|
|
35
35
|
__type: 'GridItem';
|
|
36
36
|
props: Omit<GridItemProps, 'children'>;
|
|
37
|
-
children?:
|
|
37
|
+
children?: CanvasElement[];
|
|
38
38
|
} | {
|
|
39
39
|
__type: 'Image';
|
|
40
40
|
props: Omit<ImageProps, 'onLoad' | 'onError'>;
|
|
@@ -45,7 +45,7 @@ export type NodeDescriptor = {
|
|
|
45
45
|
} | {
|
|
46
46
|
__type: 'Chart';
|
|
47
47
|
props: Omit<ChartProps<ChartType>, 'options'> & {
|
|
48
|
-
options?: Record<string, unknown
|
|
48
|
+
options?: Record<string, unknown> & PreComputedChartOptions;
|
|
49
49
|
};
|
|
50
50
|
};
|
|
51
51
|
export interface FontRegistrationInfo {
|
|
@@ -805,6 +805,17 @@ interface PieChartSpecificOptions {
|
|
|
805
805
|
sliceBorderRadius?: number;
|
|
806
806
|
}
|
|
807
807
|
export type ChartOptions<T extends ChartType> = T extends 'bar' | 'line' ? BaseChartOptions<T> & CartesianChartSpecificOptions : T extends 'pie' | 'doughnut' ? BaseChartOptions<T> & PieChartSpecificOptions : BaseChartOptions<T>;
|
|
808
|
+
/**
|
|
809
|
+
* Pre-computed values from function props, resolved on the main thread
|
|
810
|
+
* before being sent to a worker thread via postMessage (structured clone).
|
|
811
|
+
*/
|
|
812
|
+
export interface PreComputedChartOptions {
|
|
813
|
+
_preComputedXAxisLabels?: string[];
|
|
814
|
+
_preComputedYAxisLabels?: string[];
|
|
815
|
+
_preComputedLegendItems?: (CanvasElement | null | undefined)[];
|
|
816
|
+
_preComputedLabelItems?: (CanvasElement | null | undefined)[];
|
|
817
|
+
_preComputedValueItems?: (CanvasElement | null | undefined)[][];
|
|
818
|
+
}
|
|
808
819
|
/**
|
|
809
820
|
* Properties for rendering a chart inside a `BoxNode`.
|
|
810
821
|
* Extends `BoxProps` so layout and visual styles can be applied.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas.type.d.ts","sourceRoot":"","sources":["../../../src/canvas/canvas.type.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"canvas.type.d.ts","sourceRoot":"","sources":["../../../src/canvas/canvas.type.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BoxNode } from '../canvas/layout.canvas.util.js';
|
|
2
|
-
import type { BaseProps, ChartProps, ChartType,
|
|
2
|
+
import type { BaseProps, ChartProps, ChartType, CanvasElement } from '../canvas/canvas.type.js';
|
|
3
3
|
import type { CanvasRenderingContext2D } from 'skia-canvas';
|
|
4
4
|
export declare class ChartNode<T extends ChartType> extends BoxNode {
|
|
5
5
|
private chartData;
|
|
@@ -17,5 +17,5 @@ export declare class ChartNode<T extends ChartType> extends BoxNode {
|
|
|
17
17
|
private renderLegend;
|
|
18
18
|
private generateColor;
|
|
19
19
|
}
|
|
20
|
-
export declare const Chart: <T extends ChartType>(props: ChartProps<T> & BaseProps) =>
|
|
20
|
+
export declare const Chart: <T extends ChartType>(props: ChartProps<T> & BaseProps) => CanvasElement;
|
|
21
21
|
//# sourceMappingURL=chart.canvas.util.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart.canvas.util.d.ts","sourceRoot":"","sources":["../../../src/canvas/chart.canvas.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"chart.canvas.util.d.ts","sourceRoot":"","sources":["../../../src/canvas/chart.canvas.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAuB,MAAM,gCAAgC,CAAA;AAC7E,OAAO,KAAK,EACV,SAAS,EAGT,UAAU,EACV,SAAS,EAET,aAAa,EAEd,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AA2B3D,qBAAa,SAAS,CAAC,CAAC,SAAS,SAAS,CAAE,SAAQ,OAAO;IACzD,OAAO,CAAC,SAAS,CAA0C;IAC3D,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,YAAY,CAAoD;gBAE5D,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS;IAyB5C,OAAO,CAAC,aAAa;IAqBrB,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,wBAAwB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IA8B3G,OAAO,CAAC,sBAAsB;IA4B9B,OAAO,CAAC,eAAe;IAqGvB,OAAO,CAAC,cAAc;IA4JtB,OAAO,CAAC,eAAe;IA0IvB,OAAO,CAAC,cAAc;IA4EtB,OAAO,CAAC,mBAAmB;IA4E3B,OAAO,CAAC,YAAY;IA8IpB,OAAO,CAAC,aAAa;CAItB;AAED,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,SAAS,EAAE,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,KAAG,aAG5E,CAAA"}
|
|
@@ -1,7 +1,29 @@
|
|
|
1
|
-
import { BoxNode, RowNode } from './layout.canvas.util.js';
|
|
1
|
+
import { BoxNode, RowNode, ColumnNode } from './layout.canvas.util.js';
|
|
2
2
|
import { Style } from '../constant/common.const.js';
|
|
3
3
|
import { TextNode } from './text.canvas.util.js';
|
|
4
|
+
import { ImageNode } from './image.canvas.util.js';
|
|
4
5
|
|
|
6
|
+
/**
|
|
7
|
+
* Local buildTree for pre-computed render function results.
|
|
8
|
+
* Handles only node types that render functions would return (Box, Column, Row, Text, Image).
|
|
9
|
+
* Avoids circular dependency with root.canvas.util.ts.
|
|
10
|
+
*/
|
|
11
|
+
function buildDescriptorTree(descriptor) {
|
|
12
|
+
switch (descriptor.__type) {
|
|
13
|
+
case 'Box':
|
|
14
|
+
return new BoxNode({ ...descriptor.props, children: descriptor.children?.map(buildDescriptorTree) });
|
|
15
|
+
case 'Column':
|
|
16
|
+
return new ColumnNode({ ...descriptor.props, children: descriptor.children?.map(buildDescriptorTree) });
|
|
17
|
+
case 'Row':
|
|
18
|
+
return new RowNode({ ...descriptor.props, children: descriptor.children?.map(buildDescriptorTree) });
|
|
19
|
+
case 'Image':
|
|
20
|
+
return new ImageNode(descriptor.props);
|
|
21
|
+
case 'Text':
|
|
22
|
+
return new TextNode(descriptor.text, descriptor.props);
|
|
23
|
+
default:
|
|
24
|
+
return new BoxNode({});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
5
27
|
class ChartNode extends BoxNode {
|
|
6
28
|
chartData;
|
|
7
29
|
chartType;
|
|
@@ -204,8 +226,8 @@ class ChartNode extends BoxNode {
|
|
|
204
226
|
if (chartOptions?.showYAxis) {
|
|
205
227
|
const fontSize = chartOptions.yAxisFontSize || 12;
|
|
206
228
|
ctx.font = `${fontSize}px ${this.props.fontFamily || 'sans-serif'}`;
|
|
207
|
-
const
|
|
208
|
-
|
|
229
|
+
const maxLabel = chartOptions._preComputedYAxisLabels?.[0] ??
|
|
230
|
+
(chartOptions.yAxisLabelFormatter ? chartOptions.yAxisLabelFormatter(maxValue) : this.getSmartYAxisFormatter(maxValue)(maxValue));
|
|
209
231
|
const yAxisWidth = ctx.measureText(maxLabel).width + 10;
|
|
210
232
|
chartX += yAxisWidth;
|
|
211
233
|
chartWidth -= yAxisWidth;
|
|
@@ -239,8 +261,8 @@ class ChartNode extends BoxNode {
|
|
|
239
261
|
ctx.stroke();
|
|
240
262
|
if (chartOptions?.showYAxis) {
|
|
241
263
|
const value = maxValue - (maxValue / 5) * i;
|
|
242
|
-
const
|
|
243
|
-
|
|
264
|
+
const label = chartOptions._preComputedYAxisLabels?.[i] ??
|
|
265
|
+
(chartOptions.yAxisLabelFormatter ? chartOptions.yAxisLabelFormatter(value) : this.getSmartYAxisFormatter(maxValue)(value));
|
|
244
266
|
TextNode.renderSimpleText(ctx, label, chartX - 5, gridY, {
|
|
245
267
|
color: chartOptions.yAxisColor || chartOptions.axisColor || '#000',
|
|
246
268
|
fontSize: chartOptions.yAxisFontSize || 12,
|
|
@@ -264,11 +286,18 @@ class ChartNode extends BoxNode {
|
|
|
264
286
|
// Render values
|
|
265
287
|
if (chartOptions?.showValues) {
|
|
266
288
|
const value = dataset.data[index];
|
|
267
|
-
const { renderValueItem } = chartOptions;
|
|
268
289
|
const valueX = barX + barWidth / 2;
|
|
269
290
|
const valueY = barY - 5; // 5px padding above bar
|
|
270
|
-
|
|
271
|
-
|
|
291
|
+
const preComputedValueDesc = chartOptions._preComputedValueItems?.[datasetIndex]?.[index];
|
|
292
|
+
if (preComputedValueDesc) {
|
|
293
|
+
const valueNode = buildDescriptorTree(preComputedValueDesc);
|
|
294
|
+
valueNode.processInitialChildren();
|
|
295
|
+
valueNode.node.calculateLayout(undefined, undefined, Style.Direction.LTR);
|
|
296
|
+
const layout = valueNode.node.getComputedLayout();
|
|
297
|
+
valueNode.render(ctx, valueX - layout.width / 2, valueY - layout.height);
|
|
298
|
+
}
|
|
299
|
+
else if (chartOptions.renderValueItem) {
|
|
300
|
+
const valueNode = chartOptions.renderValueItem({ item: value, index, datasetIndex });
|
|
272
301
|
if (valueNode) {
|
|
273
302
|
valueNode.processInitialChildren();
|
|
274
303
|
valueNode.node.calculateLayout(undefined, undefined, Style.Direction.LTR);
|
|
@@ -289,10 +318,17 @@ class ChartNode extends BoxNode {
|
|
|
289
318
|
});
|
|
290
319
|
// Render labels
|
|
291
320
|
if (chartOptions?.showLabels) {
|
|
292
|
-
const
|
|
293
|
-
const
|
|
294
|
-
if (
|
|
295
|
-
const labelNode =
|
|
321
|
+
const displayLabel = chartOptions._preComputedXAxisLabels?.[index] ?? (chartOptions.xAxisLabelFormatter ? chartOptions.xAxisLabelFormatter(label, index) : label);
|
|
322
|
+
const preComputedLabelDesc = chartOptions._preComputedLabelItems?.[index];
|
|
323
|
+
if (preComputedLabelDesc) {
|
|
324
|
+
const labelNode = buildDescriptorTree(preComputedLabelDesc);
|
|
325
|
+
labelNode.processInitialChildren();
|
|
326
|
+
labelNode.node.calculateLayout(undefined, undefined, Style.Direction.LTR);
|
|
327
|
+
const layout = labelNode.node.getComputedLayout();
|
|
328
|
+
labelNode.render(ctx, groupX + (groupWidth - barSpacing) / 2 - layout.width / 2, chartY + finalChartHeight + labelHeight / 2 - layout.height / 2);
|
|
329
|
+
}
|
|
330
|
+
else if (chartOptions.renderLabelItem) {
|
|
331
|
+
const labelNode = chartOptions.renderLabelItem({ item: label, index });
|
|
296
332
|
if (labelNode) {
|
|
297
333
|
labelNode.processInitialChildren();
|
|
298
334
|
labelNode.node.calculateLayout(undefined, undefined, Style.Direction.LTR);
|
|
@@ -331,8 +367,8 @@ class ChartNode extends BoxNode {
|
|
|
331
367
|
if (chartOptions?.showYAxis) {
|
|
332
368
|
const fontSize = chartOptions.yAxisFontSize || 12;
|
|
333
369
|
ctx.font = `${fontSize}px ${this.props.fontFamily || 'sans-serif'}`;
|
|
334
|
-
const
|
|
335
|
-
|
|
370
|
+
const maxLabel = chartOptions._preComputedYAxisLabels?.[0] ??
|
|
371
|
+
(chartOptions.yAxisLabelFormatter ? chartOptions.yAxisLabelFormatter(maxValue) : this.getSmartYAxisFormatter(maxValue)(maxValue));
|
|
336
372
|
const yAxisWidth = ctx.measureText(maxLabel).width + 10;
|
|
337
373
|
chartX += yAxisWidth;
|
|
338
374
|
chartWidth -= yAxisWidth;
|
|
@@ -364,8 +400,8 @@ class ChartNode extends BoxNode {
|
|
|
364
400
|
ctx.stroke();
|
|
365
401
|
if (chartOptions?.showYAxis) {
|
|
366
402
|
const value = maxValue - (maxValue / 5) * i;
|
|
367
|
-
const
|
|
368
|
-
|
|
403
|
+
const label = chartOptions._preComputedYAxisLabels?.[i] ??
|
|
404
|
+
(chartOptions.yAxisLabelFormatter ? chartOptions.yAxisLabelFormatter(value) : this.getSmartYAxisFormatter(maxValue)(value));
|
|
369
405
|
TextNode.renderSimpleText(ctx, label, chartX - 5, gridY, {
|
|
370
406
|
color: chartOptions.yAxisColor || chartOptions.axisColor || '#000',
|
|
371
407
|
fontSize: chartOptions.yAxisFontSize || 12,
|
|
@@ -405,12 +441,19 @@ class ChartNode extends BoxNode {
|
|
|
405
441
|
});
|
|
406
442
|
// Render labels
|
|
407
443
|
if (chartOptions?.showLabels) {
|
|
408
|
-
const { renderLabelItem, xAxisLabelFormatter } = chartOptions;
|
|
409
444
|
labels.forEach((label, index) => {
|
|
410
445
|
const pointX = chartX + index * pointSpacing;
|
|
411
|
-
const displayLabel = xAxisLabelFormatter ? xAxisLabelFormatter(label, index) : label;
|
|
412
|
-
|
|
413
|
-
|
|
446
|
+
const displayLabel = chartOptions._preComputedXAxisLabels?.[index] ?? (chartOptions.xAxisLabelFormatter ? chartOptions.xAxisLabelFormatter(label, index) : label);
|
|
447
|
+
const preComputedLabelDesc = chartOptions._preComputedLabelItems?.[index];
|
|
448
|
+
if (preComputedLabelDesc) {
|
|
449
|
+
const labelNode = buildDescriptorTree(preComputedLabelDesc);
|
|
450
|
+
labelNode.processInitialChildren();
|
|
451
|
+
labelNode.node.calculateLayout(undefined, undefined, Style.Direction.LTR);
|
|
452
|
+
const layout = labelNode.node.getComputedLayout();
|
|
453
|
+
labelNode.render(ctx, pointX - layout.width / 2, chartY + finalChartHeight + labelHeight / 2 - layout.height / 2);
|
|
454
|
+
}
|
|
455
|
+
else if (chartOptions.renderLabelItem) {
|
|
456
|
+
const labelNode = chartOptions.renderLabelItem({ item: label, index });
|
|
414
457
|
if (labelNode) {
|
|
415
458
|
labelNode.processInitialChildren();
|
|
416
459
|
labelNode.node.calculateLayout(undefined, undefined, Style.Direction.LTR);
|
|
@@ -464,13 +507,20 @@ class ChartNode extends BoxNode {
|
|
|
464
507
|
ctx.stroke();
|
|
465
508
|
// Render labels
|
|
466
509
|
if (chartOptions?.showLabels) {
|
|
467
|
-
const { renderLabelItem } = chartOptions;
|
|
468
510
|
const labelAngle = startAngle + sliceAngle / 2;
|
|
469
511
|
const labelRadius = radius * 0.7;
|
|
470
512
|
const labelX = centerX + Math.cos(labelAngle) * labelRadius;
|
|
471
513
|
const labelY = centerY + Math.sin(labelAngle) * labelRadius;
|
|
472
|
-
|
|
473
|
-
|
|
514
|
+
const preComputedLabelDesc = chartOptions._preComputedLabelItems?.[index];
|
|
515
|
+
if (preComputedLabelDesc) {
|
|
516
|
+
const labelNode = buildDescriptorTree(preComputedLabelDesc);
|
|
517
|
+
labelNode.processInitialChildren();
|
|
518
|
+
labelNode.node.calculateLayout(undefined, undefined, Style.Direction.LTR);
|
|
519
|
+
const layout = labelNode.node.getComputedLayout();
|
|
520
|
+
labelNode.render(ctx, labelX - layout.width / 2, labelY - layout.height / 2);
|
|
521
|
+
}
|
|
522
|
+
else if (chartOptions.renderLabelItem) {
|
|
523
|
+
const labelNode = chartOptions.renderLabelItem({ item: point, index });
|
|
474
524
|
if (labelNode) {
|
|
475
525
|
labelNode.processInitialChildren();
|
|
476
526
|
labelNode.node.calculateLayout(undefined, undefined, Style.Direction.LTR);
|
|
@@ -525,13 +575,20 @@ class ChartNode extends BoxNode {
|
|
|
525
575
|
ctx.stroke();
|
|
526
576
|
// Render labels
|
|
527
577
|
if (chartOptions?.showLabels) {
|
|
528
|
-
const { renderLabelItem } = chartOptions;
|
|
529
578
|
const labelAngle = startAngle + sliceAngle / 2;
|
|
530
579
|
const labelRadius = innerRadius + (outerRadius - innerRadius) / 2;
|
|
531
580
|
const labelX = centerX + Math.cos(labelAngle) * labelRadius;
|
|
532
581
|
const labelY = centerY + Math.sin(labelAngle) * labelRadius;
|
|
533
|
-
|
|
534
|
-
|
|
582
|
+
const preComputedLabelDesc = chartOptions._preComputedLabelItems?.[index];
|
|
583
|
+
if (preComputedLabelDesc) {
|
|
584
|
+
const labelNode = buildDescriptorTree(preComputedLabelDesc);
|
|
585
|
+
labelNode.processInitialChildren();
|
|
586
|
+
labelNode.node.calculateLayout(undefined, undefined, Style.Direction.LTR);
|
|
587
|
+
const layout = labelNode.node.getComputedLayout();
|
|
588
|
+
labelNode.render(ctx, labelX - layout.width / 2, labelY - layout.height / 2);
|
|
589
|
+
}
|
|
590
|
+
else if (chartOptions.renderLabelItem) {
|
|
591
|
+
const labelNode = chartOptions.renderLabelItem({ item: point, index });
|
|
535
592
|
if (labelNode) {
|
|
536
593
|
labelNode.processInitialChildren();
|
|
537
594
|
labelNode.node.calculateLayout(undefined, undefined, Style.Direction.LTR);
|
|
@@ -556,7 +613,25 @@ class ChartNode extends BoxNode {
|
|
|
556
613
|
}
|
|
557
614
|
}
|
|
558
615
|
renderLegend(ctx, x, y, width, height) {
|
|
559
|
-
const { renderLegendItem } = this.chartOptions;
|
|
616
|
+
const { renderLegendItem, _preComputedLegendItems } = this.chartOptions;
|
|
617
|
+
if (_preComputedLegendItems) {
|
|
618
|
+
const finalNodes = _preComputedLegendItems.filter((desc) => !!desc).map(desc => buildDescriptorTree(desc));
|
|
619
|
+
if (finalNodes.length > 0) {
|
|
620
|
+
const legendContainer = new RowNode({
|
|
621
|
+
children: finalNodes,
|
|
622
|
+
width,
|
|
623
|
+
height,
|
|
624
|
+
justifyContent: Style.Justify.Center,
|
|
625
|
+
alignItems: Style.Align.Center,
|
|
626
|
+
flexWrap: Style.Wrap.Wrap,
|
|
627
|
+
gap: 10,
|
|
628
|
+
});
|
|
629
|
+
legendContainer.processInitialChildren();
|
|
630
|
+
legendContainer.node.calculateLayout(width, height, Style.Direction.LTR);
|
|
631
|
+
legendContainer.render(ctx, x, y);
|
|
632
|
+
}
|
|
633
|
+
return;
|
|
634
|
+
}
|
|
560
635
|
if (renderLegendItem) {
|
|
561
636
|
let legendNodes;
|
|
562
637
|
if (this.chartType === 'bar' || this.chartType === 'line') {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { GridProps, GridItemProps,
|
|
1
|
+
import type { GridProps, GridItemProps, CanvasElement } from '../canvas/canvas.type.js';
|
|
2
2
|
import { BoxNode, RowNode } from '../canvas/layout.canvas.util.js';
|
|
3
3
|
/**
|
|
4
4
|
* GridItem Node. Theoretically just a BoxNode but typed differently in factory.
|
|
@@ -11,7 +11,7 @@ export declare class GridItemNode extends BoxNode {
|
|
|
11
11
|
/**
|
|
12
12
|
* Factory for GridItem.
|
|
13
13
|
*/
|
|
14
|
-
export declare const GridItem: ({ children, ...rest }: GridItemProps) =>
|
|
14
|
+
export declare const GridItem: ({ children, ...rest }: GridItemProps) => CanvasElement;
|
|
15
15
|
/**
|
|
16
16
|
* Grid layout node that arranges children in a 2D grid.
|
|
17
17
|
* Implements a simplified version of the CSS Grid Layout algorithm.
|
|
@@ -42,5 +42,5 @@ export declare class GridNode extends RowNode {
|
|
|
42
42
|
/**
|
|
43
43
|
* Factory function to create a new GridNode instance.
|
|
44
44
|
*/
|
|
45
|
-
export declare const Grid: ({ children, ...rest }: GridProps) =>
|
|
45
|
+
export declare const Grid: ({ children, ...rest }: GridProps) => CanvasElement;
|
|
46
46
|
//# sourceMappingURL=grid.canvas.util.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid.canvas.util.d.ts","sourceRoot":"","sources":["../../../src/canvas/grid.canvas.util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAiB,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"grid.canvas.util.d.ts","sourceRoot":"","sources":["../../../src/canvas/grid.canvas.util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAiB,aAAa,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAErG,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAUjE;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,OAAO;gBAC3B,KAAK,EAAE,aAAa;CAMjC;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,uBAAuB,aAAa,KAAG,aAI9D,CAAA;AAEF;;;GAGG;AACH,qBAAa,QAAS,SAAQ,OAAO;IACnC;;;OAGG;gBACS,KAAK,EAAE,SAAS;IAQ5B;;OAEG;IACH,OAAO,CAAC,UAAU;IAwBlB;;OAEG;IACH,OAAO,CAAC,YAAY;IAmBpB;;OAEG;cACgB,+BAA+B;IAoTlD;;OAEG;IACH,OAAO,CAAC,aAAa;CAkCtB;AAED;;GAEG;AACH,eAAO,MAAM,IAAI,GAAI,uBAAuB,SAAS,KAAG,aAItD,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BaseProps, ImageProps,
|
|
1
|
+
import type { BaseProps, ImageProps, CanvasElement } from '../canvas/canvas.type.js';
|
|
2
2
|
import { type CanvasRenderingContext2D, Image as CanvasImage } from 'skia-canvas';
|
|
3
3
|
import { BoxNode } from '../canvas/layout.canvas.util.js';
|
|
4
4
|
/**
|
|
@@ -38,5 +38,5 @@ export declare class ImageNode extends BoxNode {
|
|
|
38
38
|
/**
|
|
39
39
|
* Factory function to create ImageNode instances
|
|
40
40
|
*/
|
|
41
|
-
export declare const Image: (props: ImageProps) =>
|
|
41
|
+
export declare const Image: (props: ImageProps) => CanvasElement;
|
|
42
42
|
//# sourceMappingURL=image.canvas.util.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image.canvas.util.d.ts","sourceRoot":"","sources":["../../../src/canvas/image.canvas.util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"image.canvas.util.d.ts","sourceRoot":"","sources":["../../../src/canvas/image.canvas.util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACnF,OAAO,EAAE,KAAK,wBAAwB,EAAE,KAAK,IAAI,WAAW,EAAa,MAAM,aAAa,CAAA;AAC5F,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAsBxD;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAA;AAEhE;;;GAGG;AACH,qBAAa,SAAU,SAAQ,OAAO;IAC5B,KAAK,EAAE,UAAU,GAAG,SAAS,CAAA;IACrC,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,YAAY,CAAI;IACxB,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,cAAc,CAA6B;gBAEvC,KAAK,EAAE,UAAU;IAYtB,IAAI,CAAC,KAAK,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpD;;;OAGG;YACW,iBAAiB;IAmE/B;;;OAGG;IACH,OAAO,CAAC,UAAU;IAgDX,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzC;;;OAGG;cACgB,cAAc,CAAC,GAAG,EAAE,wBAAwB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAoJrH;AAED;;GAEG;AACH,eAAO,MAAM,KAAK,GAAI,OAAO,UAAU,KAAG,aAGxC,CAAA"}
|