@tradecanvas/core 1.49.0 → 1.50.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.
@@ -1,8 +1,8 @@
1
- import { ViewportState, Rect, DataSeries, PriceScaleMode, ScaleMargins } from '@tradecanvas/commons';
1
+ import { BarLayout, ViewportState, Rect, DataSeries, PriceScaleMode, ScaleMargins } from '@tradecanvas/commons';
2
2
  /**
3
- * Narrowest bar slot (bar + gap) in CSS pixels. Below the usual floor
4
- * (`minBarWidth` + the 2px gap) the chart only zooms out as far as it takes to
5
- * fit every loaded bar, and never past this.
3
+ * Narrowest bar slot (bar + gap) in CSS pixels. Below the usual floor (the
4
+ * slot whose body is `minBarWidth`) the chart only zooms out as far as it
5
+ * takes to fit every loaded bar, and never past this.
6
6
  */
7
7
  export declare const MIN_BAR_UNIT = 0.25;
8
8
  /** The narrowest `setMinBarUnit` allows: 50 bars a pixel. */
@@ -31,6 +31,7 @@ export declare class Viewport {
31
31
  private freePan;
32
32
  private minVisibleBars;
33
33
  private minBarUnit;
34
+ private barLayout;
34
35
  constructor(containerWidth: number, containerHeight: number, minBarWidth?: number, maxBarWidth?: number, rightMarginBars?: number);
35
36
  /**
36
37
  * Returns a snapshot (deep copy). Safe to store/pass. Cached: repeated
@@ -73,7 +74,16 @@ export declare class Viewport {
73
74
  private computeChartRect;
74
75
  resize(width: number, height: number): void;
75
76
  setChartRect(rect: Rect): void;
76
- /** The usual narrowest slot: `minBarWidth` plus the 2px gap. */
77
+ /**
78
+ * How a bar fills its slot (see `BarLayout`). Before any bars the chart
79
+ * opens at the layout's own slot; over bars on screen the zoom stays and
80
+ * only its split into body and gap changes.
81
+ */
82
+ setBarLayout(layout: BarLayout): void;
83
+ getBarLayout(): BarLayout;
84
+ /** The slot a chart opens at: 10 px classic (8 and a 2 px gap), φ⁴ golden. */
85
+ private openingUnit;
86
+ /** The usual narrowest slot: where the body is `minBarWidth` (classic: and the 2px gap). */
77
87
  private floorUnit;
78
88
  /**
79
89
  * The narrowest slot right now: the usual floor, or less when the loaded
@@ -89,8 +99,9 @@ export declare class Viewport {
89
99
  getMinBarUnit(): number;
90
100
  private maxUnit;
91
101
  /**
92
- * Split a slot into bar and gap: above the floor the gap stays 2px, below it
93
- * both shrink in the floor's proportions, so the bars never turn into gaps.
102
+ * Split a slot into bar and gap. Golden: the body is φ⁻¹ of it, at every
103
+ * size. Classic: above the floor the gap stays 2px, below it both shrink
104
+ * in the floor's proportions, so the bars never turn into gaps.
94
105
  */
95
106
  private applyUnit;
96
107
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Viewport.d.ts","sourceRoot":"","sources":["../../src/viewport/Viewport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAI1G;;;;GAIG;AACH,eAAO,MAAM,YAAY,OAAO,CAAC;AACjC,6DAA6D;AAC7D,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,4FAA4F;AAC5F,eAAO,MAAM,kBAAkB,QAAY,CAAC;AAI5C,qBAAa,QAAQ;IACnB,OAAO,CAAC,KAAK,CAAgB;IAE7B,OAAO,CAAC,cAAc,CAAoB;IAC1C;;;;;;;;;OASG;IACH,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,OAAO,CAAyE;IACxF,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,UAAU,CAAgB;gBAGhC,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,EACvB,WAAW,SAAI,EACf,WAAW,SAAK,EAChB,eAAe,SAAI;IAgBrB;;;OAGG;IACH,QAAQ,IAAI,aAAa;IAsBzB,8EAA8E;IAC9E,OAAO,CAAC,UAAU;IAIlB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAInC,UAAU,IAAI,OAAO;IAIrB,mFAAmF;IACnF,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAMxC,YAAY,IAAI,cAAc;IAI9B,wEAAwE;IACxE,cAAc,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAKvC,aAAa,IAAI,OAAO;IAIxB,4DAA4D;IAC5D,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKrC,+FAA+F;IAC/F,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,GAAE,MAAM,GAAG,IAAW,GAAG,IAAI;IAM5F,mEAAmE;IACnE,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAKjD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIlC,cAAc,IAAI,MAAM;IAIxB;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAO1E,qGAAqG;IACrG,OAAO,CAAC,SAAS;IAKjB,yEAAyE;IACzE,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOtC,OAAO,CAAC,gBAAgB;IASxB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAO3C,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAa9B,gEAAgE;IAChE,OAAO,CAAC,SAAS;IAIjB;;;OAGG;IACH,OAAO,CAAC,OAAO;IAQf;;;;OAIG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQ/B,aAAa,IAAI,MAAM;IAIvB,OAAO,CAAC,OAAO;IAIf;;;OAGG;IACH,OAAO,CAAC,SAAS;IAajB;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAQjB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAkBtD;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAM5C,eAAe,IAAI,YAAY;IAI/B,sDAAsD;IACtD,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAK3C;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQhC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAK7C;;;;OAIG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAUrC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAOnC;;;;;;;;;OASG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAsBxC;;;;OAIG;IACH,OAAO,IAAI,OAAO;IAKlB,WAAW,IAAI,IAAI;IAUnB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAwB1C;;;;OAIG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAY9C,OAAO,CAAC,WAAW;IAgDnB,OAAO,CAAC,kBAAkB;CAS3B"}
1
+ {"version":3,"file":"Viewport.d.ts","sourceRoot":"","sources":["../../src/viewport/Viewport.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tradecanvas/core",
3
- "version": "1.49.0",
3
+ "version": "1.50.0",
4
4
  "type": "module",
5
5
  "description": "Canvas rendering engine for @tradecanvas/chart",
6
6
  "license": "MIT",
@@ -38,7 +38,7 @@
38
38
  "README.md"
39
39
  ],
40
40
  "dependencies": {
41
- "@tradecanvas/commons": "1.49.0"
41
+ "@tradecanvas/commons": "1.50.0"
42
42
  },
43
43
  "devDependencies": {
44
44
  "jsdom": "^25.0.1",