@meonode/canvas 1.6.0 → 1.7.1

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.
Files changed (59) hide show
  1. package/dist/cjs/canvas/canvas.helper.d.ts +20 -1
  2. package/dist/cjs/canvas/canvas.helper.d.ts.map +1 -1
  3. package/dist/cjs/canvas/canvas.helper.js +230 -0
  4. package/dist/cjs/canvas/canvas.helper.js.map +1 -1
  5. package/dist/cjs/canvas/canvas.type.d.ts +19 -8
  6. package/dist/cjs/canvas/canvas.type.d.ts.map +1 -1
  7. package/dist/cjs/canvas/chart.canvas.util.d.ts +2 -2
  8. package/dist/cjs/canvas/chart.canvas.util.d.ts.map +1 -1
  9. package/dist/cjs/canvas/chart.canvas.util.js +101 -26
  10. package/dist/cjs/canvas/chart.canvas.util.js.map +1 -1
  11. package/dist/cjs/canvas/grid.canvas.util.d.ts +3 -3
  12. package/dist/cjs/canvas/grid.canvas.util.d.ts.map +1 -1
  13. package/dist/cjs/canvas/grid.canvas.util.js.map +1 -1
  14. package/dist/cjs/canvas/image.canvas.util.d.ts +40 -4
  15. package/dist/cjs/canvas/image.canvas.util.d.ts.map +1 -1
  16. package/dist/cjs/canvas/image.canvas.util.js +114 -4
  17. package/dist/cjs/canvas/image.canvas.util.js.map +1 -1
  18. package/dist/cjs/canvas/layout.canvas.util.d.ts +4 -4
  19. package/dist/cjs/canvas/layout.canvas.util.d.ts.map +1 -1
  20. package/dist/cjs/canvas/layout.canvas.util.js +1 -1
  21. package/dist/cjs/canvas/layout.canvas.util.js.map +1 -1
  22. package/dist/cjs/canvas/root.canvas.util.d.ts +5 -3
  23. package/dist/cjs/canvas/root.canvas.util.d.ts.map +1 -1
  24. package/dist/cjs/canvas/root.canvas.util.js +64 -43
  25. package/dist/cjs/canvas/root.canvas.util.js.map +1 -1
  26. package/dist/cjs/canvas/text.canvas.util.d.ts +2 -2
  27. package/dist/cjs/canvas/text.canvas.util.d.ts.map +1 -1
  28. package/dist/cjs/canvas/text.canvas.util.js +0 -1
  29. package/dist/cjs/canvas/text.canvas.util.js.map +1 -1
  30. package/dist/cjs/index.d.ts +1 -1
  31. package/dist/cjs/index.d.ts.map +1 -1
  32. package/dist/cjs/index.js +1 -0
  33. package/dist/cjs/index.js.map +1 -1
  34. package/dist/esm/canvas/canvas.helper.d.ts +20 -1
  35. package/dist/esm/canvas/canvas.helper.d.ts.map +1 -1
  36. package/dist/esm/canvas/canvas.helper.js +230 -1
  37. package/dist/esm/canvas/canvas.type.d.ts +19 -8
  38. package/dist/esm/canvas/canvas.type.d.ts.map +1 -1
  39. package/dist/esm/canvas/chart.canvas.util.d.ts +2 -2
  40. package/dist/esm/canvas/chart.canvas.util.d.ts.map +1 -1
  41. package/dist/esm/canvas/chart.canvas.util.js +102 -27
  42. package/dist/esm/canvas/grid.canvas.util.d.ts +3 -3
  43. package/dist/esm/canvas/grid.canvas.util.d.ts.map +1 -1
  44. package/dist/esm/canvas/image.canvas.util.d.ts +40 -4
  45. package/dist/esm/canvas/image.canvas.util.d.ts.map +1 -1
  46. package/dist/esm/canvas/image.canvas.util.js +112 -5
  47. package/dist/esm/canvas/layout.canvas.util.d.ts +4 -4
  48. package/dist/esm/canvas/layout.canvas.util.d.ts.map +1 -1
  49. package/dist/esm/canvas/layout.canvas.util.js +1 -1
  50. package/dist/esm/canvas/root.canvas.util.d.ts +5 -3
  51. package/dist/esm/canvas/root.canvas.util.d.ts.map +1 -1
  52. package/dist/esm/canvas/root.canvas.util.js +65 -44
  53. package/dist/esm/canvas/text.canvas.util.d.ts +2 -2
  54. package/dist/esm/canvas/text.canvas.util.d.ts.map +1 -1
  55. package/dist/esm/canvas/text.canvas.util.js +0 -1
  56. package/dist/esm/index.d.ts +1 -1
  57. package/dist/esm/index.d.ts.map +1 -1
  58. package/dist/esm/index.js +1 -1
  59. 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 | NodeDescriptor | false | undefined;
18
- export type NodeDescriptor = {
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?: NodeDescriptor[];
21
+ children?: CanvasElement[];
22
22
  } | {
23
23
  __type: 'Column';
24
24
  props: Omit<BoxProps, 'children'>;
25
- children?: NodeDescriptor[];
25
+ children?: CanvasElement[];
26
26
  } | {
27
27
  __type: 'Row';
28
28
  props: Omit<BoxProps, 'children'>;
29
- children?: NodeDescriptor[];
29
+ children?: CanvasElement[];
30
30
  } | {
31
31
  __type: 'Grid';
32
32
  props: Omit<GridProps, 'children'>;
33
- children?: NodeDescriptor[];
33
+ children?: CanvasElement[];
34
34
  } | {
35
35
  __type: 'GridItem';
36
36
  props: Omit<GridItemProps, 'children'>;
37
- children?: NodeDescriptor[];
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, NodeDescriptor } from '../canvas/canvas.type.js';
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) => NodeDescriptor;
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,EAAW,MAAM,gCAAgC,CAAA;AACjE,OAAO,KAAK,EAAE,SAAS,EAAoC,UAAU,EAAE,SAAS,EAAqB,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACpJ,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAI3D,qBAAa,SAAS,CAAC,CAAC,SAAS,SAAS,CAAE,SAAQ,OAAO;IACzD,OAAO,CAAC,SAAS,CAA0C;IAC3D,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,YAAY,CAA0B;gBAElC,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;IA4ItB,OAAO,CAAC,eAAe;IAgIvB,OAAO,CAAC,cAAc;IAsEtB,OAAO,CAAC,mBAAmB;IAsE3B,OAAO,CAAC,YAAY;IA0HpB,OAAO,CAAC,aAAa;CAItB;AAED,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,SAAS,EAAE,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,KAAG,cAG5E,CAAA"}
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 formatter = chartOptions.yAxisLabelFormatter || this.getSmartYAxisFormatter(maxValue);
208
- const maxLabel = formatter(maxValue);
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 formatter = chartOptions.yAxisLabelFormatter || this.getSmartYAxisFormatter(maxValue);
243
- const label = formatter(value);
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
- if (renderValueItem) {
271
- const valueNode = renderValueItem({ item: value, index, datasetIndex });
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 { renderLabelItem, xAxisLabelFormatter } = chartOptions;
293
- const displayLabel = xAxisLabelFormatter ? xAxisLabelFormatter(label, index) : label;
294
- if (renderLabelItem) {
295
- const labelNode = renderLabelItem({ item: label, index });
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 formatter = chartOptions.yAxisLabelFormatter || this.getSmartYAxisFormatter(maxValue);
335
- const maxLabel = formatter(maxValue);
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 formatter = chartOptions.yAxisLabelFormatter || this.getSmartYAxisFormatter(maxValue);
368
- const label = formatter(value);
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
- if (renderLabelItem) {
413
- const labelNode = renderLabelItem({ item: label, index });
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
- if (renderLabelItem) {
473
- const labelNode = renderLabelItem({ item: point, index });
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
- if (renderLabelItem) {
534
- const labelNode = renderLabelItem({ item: point, index });
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, NodeDescriptor } from '../canvas/canvas.type.js';
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) => NodeDescriptor;
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) => NodeDescriptor;
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,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAEtG,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,cAI9D,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,cAItD,CAAA"}
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"}