uplot-plus 0.1.0 → 0.1.2

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.
@@ -18,7 +18,15 @@ export declare class CanvasRenderer {
18
18
  private pxRatio;
19
19
  private pathCache;
20
20
  private pathCacheSize;
21
- private lruOrder;
21
+ private bandCache;
22
+ private lruHead;
23
+ private lruTail;
24
+ private lruMap;
25
+ private lruKey;
26
+ /** Unlink a node from the doubly-linked list */
27
+ private lruUnlink;
28
+ /** Append a node to the tail (most-recently-used) */
29
+ private lruAppend;
22
30
  private snapshotCanvas;
23
31
  private snapshotValid;
24
32
  private cachedFillStyle;
@@ -62,6 +70,9 @@ export declare class CanvasRenderer {
62
70
  clearGroupCache(group: number): void;
63
71
  /** Invalidate all cached paths (e.g. on scale change) */
64
72
  clearCache(): void;
73
+ private bandKey;
74
+ getCachedBandPath(group: number, upper: number, lower: number, i0: number, i1: number): Path2D | undefined;
75
+ setCachedBandPath(group: number, upper: number, lower: number, i0: number, i1: number, path: Path2D): void;
65
76
  /**
66
77
  * Draw a single series onto the canvas (assumes context is already clipped).
67
78
  * Builds/caches paths and delegates to drawSeriesPath.
@@ -1 +1 @@
1
- {"version":3,"file":"CanvasRenderer.d.ts","sourceRoot":"","sources":["../../src/rendering/CanvasRenderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CanvasRenderer.d.ts","sourceRoot":"","sources":["../../src/rendering/CanvasRenderer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"drawAxes.d.ts","sourceRoot":"","sources":["../../src/rendering/drawAxes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AA4E/C;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,wBAAwB,EAC7B,UAAU,EAAE,SAAS,EAAE,EACvB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,UAAU,GAAG,SAAS,EAChD,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,MAAM,GACd,IAAI,CA+JN"}
1
+ {"version":3,"file":"drawAxes.d.ts","sourceRoot":"","sources":["../../src/rendering/drawAxes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AA4E/C;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,wBAAwB,EAC7B,UAAU,EAAE,SAAS,EAAE,EACvB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,UAAU,GAAG,SAAS,EAChD,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,MAAM,GACd,IAAI,CAuKN"}
@@ -1,8 +1,12 @@
1
1
  import type { BBox, ScaleState } from '../types';
2
2
  import type { BandConfig } from '../types/bands';
3
3
  /**
4
- * Draw a filled band between two series within the plot area.
5
- * Renders the region between upper and lower y-values as a filled polygon.
4
+ * Build a Path2D for the filled region between two series.
5
+ * Returns null if no valid points exist.
6
6
  */
7
- export declare function drawBand(ctx: CanvasRenderingContext2D, band: BandConfig, dataX: ArrayLike<number>, upperY: ArrayLike<number | null>, lowerY: ArrayLike<number | null>, xScale: ScaleState, yScale: ScaleState, plotBox: BBox, pxRatio: number, i0: number, i1: number): void;
7
+ export declare function buildBandPath(dataX: ArrayLike<number>, upperY: ArrayLike<number | null>, lowerY: ArrayLike<number | null>, xScale: ScaleState, yScale: ScaleState, plotBox: BBox, pxRatio: number, i0: number, i1: number): Path2D | null;
8
+ /**
9
+ * Draw a pre-built band path onto the canvas.
10
+ */
11
+ export declare function drawBandPath(ctx: CanvasRenderingContext2D, band: BandConfig, path: Path2D): void;
8
12
  //# sourceMappingURL=drawBands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"drawBands.d.ts","sourceRoot":"","sources":["../../src/rendering/drawBands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,GAAG,EAAE,wBAAwB,EAC7B,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EACxB,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,EAChC,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,EAChC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,IAAI,CA+CN"}
1
+ {"version":3,"file":"drawBands.d.ts","sourceRoot":"","sources":["../../src/rendering/drawBands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EACxB,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,EAChC,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,EAChC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,MAAM,GAAG,IAAI,CAuCf;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,wBAAwB,EAC7B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,GACX,IAAI,CAKN"}
@@ -1 +1 @@
1
- {"version":3,"file":"drawSeries.d.ts","sourceRoot":"","sources":["../../src/rendering/drawSeries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AA2BlD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,wBAAwB,EAC7B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,IAAI,GACb,IAAI,CA8CN"}
1
+ {"version":3,"file":"drawSeries.d.ts","sourceRoot":"","sources":["../../src/rendering/drawSeries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAkClD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,wBAAwB,EAC7B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,IAAI,GACb,IAAI,CA8CN"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "uplot-plus",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "High-performance React charting library with multi-x-axis support",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",