react-native-livechart 3.3.0 → 3.4.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/README.md +4 -1
- package/dist/components/LiveChart.d.ts.map +1 -1
- package/dist/components/LiveChartSeries.d.ts.map +1 -1
- package/dist/components/ReferenceLineOverlay.d.ts +10 -3
- package/dist/components/ReferenceLineOverlay.d.ts.map +1 -1
- package/dist/components/ScrubActionOverlay.d.ts +32 -0
- package/dist/components/ScrubActionOverlay.d.ts.map +1 -0
- package/dist/components/XAxisOverlay.d.ts.map +1 -1
- package/dist/constants.d.ts +4 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/core/resolveConfig.d.ts +23 -1
- package/dist/core/resolveConfig.d.ts.map +1 -1
- package/dist/hooks/crosshairShared.d.ts +110 -0
- package/dist/hooks/crosshairShared.d.ts.map +1 -1
- package/dist/hooks/useCrosshair.d.ts +14 -2
- package/dist/hooks/useCrosshair.d.ts.map +1 -1
- package/dist/hooks/useMarkers.d.ts +2 -0
- package/dist/hooks/useMarkers.d.ts.map +1 -1
- package/dist/hooks/useReferenceLine.d.ts +36 -3
- package/dist/hooks/useReferenceLine.d.ts.map +1 -1
- package/dist/hooks/useReferenceLinePress.d.ts +23 -0
- package/dist/hooks/useReferenceLinePress.d.ts.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/math/referenceLines.d.ts +23 -0
- package/dist/math/referenceLines.d.ts.map +1 -1
- package/dist/types.d.ts +131 -6
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/LiveChart.tsx +165 -21
- package/src/components/LiveChartSeries.tsx +39 -2
- package/src/components/ReferenceLineOverlay.tsx +121 -94
- package/src/components/ScrubActionOverlay.tsx +187 -0
- package/src/components/XAxisOverlay.tsx +2 -1
- package/src/constants.ts +5 -0
- package/src/core/resolveConfig.ts +40 -0
- package/src/hooks/crosshairShared.ts +293 -0
- package/src/hooks/useCrosshair.ts +340 -6
- package/src/hooks/useMarkers.ts +18 -2
- package/src/hooks/useReferenceLine.ts +259 -14
- package/src/hooks/useReferenceLinePress.ts +92 -0
- package/src/index.ts +3 -0
- package/src/math/referenceLines.ts +55 -0
- package/src/types.ts +134 -6
package/README.md
CHANGED
|
@@ -28,6 +28,7 @@ High-performance **live** line and candlestick charts for React Native, built on
|
|
|
28
28
|
- 📈 **Line & candlestick** modes (with line/candle morph) in a single component
|
|
29
29
|
- 🧬 **Multi-series** charts with a toggleable legend and per-series live dots
|
|
30
30
|
- 🔍 **Scrubbing** with a crosshair and worklet-friendly `onScrub` payloads
|
|
31
|
+
- 🎯 **Order ticket** (`scrubAction`) — tap to drop a price reticle, drag to fine-tune a level, press the action badge to fire `onScrubAction` (e.g. open a limit-order sheet)
|
|
31
32
|
- ⚡ **Momentum** detection and **degen** effects (particle bursts + shake on big swings)
|
|
32
33
|
- 🏷️ **Trade markers** driven by a `SharedValue` trade stream
|
|
33
34
|
- 🕔 **Segments** — label time ranges (after-hours, overnight, sessions) with scrub-focus: one color at rest, and scrubbing a segment keeps it full while the others de-emphasize
|
|
@@ -148,10 +149,12 @@ The tables below are a **highlight** — the **canonical, full reference is the
|
|
|
148
149
|
| `segments` | `ChartSegment[]` — labeled time ranges (sessions, after-hours) with scrub-focus dimming |
|
|
149
150
|
| `degen` | Particle burst + shake on momentum swings |
|
|
150
151
|
| `scrub` | Crosshair scrubbing |
|
|
152
|
+
| `scrubAction` | `true` / `ScrubActionConfig` — "order ticket": tap to drop a price reticle, drag to adjust, press the action badge |
|
|
151
153
|
| `momentum` | `true` / `false` / `"up"`, `"down"`, or `"flat"` / `MomentumConfig` |
|
|
152
154
|
| `dot` | `true` / `false` (hide) / `DotConfig` — `radius`, `ring` (halo), `color` |
|
|
153
155
|
| `metrics` | Sizing & motion tokens — geometry/feel analogue of `palette` |
|
|
154
156
|
| `onScrub` | Callback: `ScrubPoint` or `null` |
|
|
157
|
+
| `onScrubAction` | Callback: `ScrubActionPoint` — the chosen price level on badge press |
|
|
155
158
|
|
|
156
159
|
### `LiveChartSeries` (multi-series)
|
|
157
160
|
|
|
@@ -164,7 +167,7 @@ The tables below are a **highlight** — the **canonical, full reference is the
|
|
|
164
167
|
| `onSeriesToggle` | Chip tap |
|
|
165
168
|
| `onScrub` | Worklet-friendly multi-series scrub payload |
|
|
166
169
|
|
|
167
|
-
These tables are a **highlight, not the full surface** (`LiveChart` alone has ~48 props). Other shared props include `font`, `insets`, `smoothing`, `xAxis`, `yAxis`, `referenceLines`, `gridStyle`, `palette`, `metrics`, `markers`, `leftEdgeFade`, `line`, `formatValue`, `formatTime`, and `emptyText`; single-series adds `gradient`, `badge`, `pulse`, `valueLine`, `segments`, and `showValue`. Every overlay toggle follows the same **`boolean | Config`** convention (`badge`, `gradient`, `pulse`, `valueLine`, `scrub`, `yAxis`, `xAxis`, `leftEdgeFade`, `legend`, and `dot`) — pass `true`/omit for defaults, `false` to disable, or an object to customize. Both charts share the same `dot` styling (a `DotConfig` base — `radius`, `ring`, `color`); multi-series extends it with `pulse`, `valueLine`, and `valueLabel`. Beyond `palette` (color), `metrics` exposes sizing & motion tokens (badge/candle geometry, grid/motion speeds) with the same per-key override model. See the TypeScript types and JSDoc for the complete, canonical reference.
|
|
170
|
+
These tables are a **highlight, not the full surface** (`LiveChart` alone has ~48 props). Other shared props include `font`, `insets`, `smoothing`, `xAxis`, `yAxis`, `referenceLines`, `gridStyle`, `palette`, `metrics`, `markers`, `leftEdgeFade`, `line`, `formatValue`, `formatTime`, and `emptyText`; single-series adds `gradient`, `badge`, `pulse`, `valueLine`, `segments`, `scrubAction`, and `showValue`. Every overlay toggle follows the same **`boolean | Config`** convention (`badge`, `gradient`, `pulse`, `valueLine`, `scrub`, `yAxis`, `xAxis`, `leftEdgeFade`, `legend`, and `dot`) — pass `true`/omit for defaults, `false` to disable, or an object to customize. Both charts share the same `dot` styling (a `DotConfig` base — `radius`, `ring`, `color`); multi-series extends it with `pulse`, `valueLine`, and `valueLabel`. Beyond `palette` (color), `metrics` exposes sizing & motion tokens (badge/candle geometry, grid/motion speeds) with the same per-key override model. See the TypeScript types and JSDoc for the complete, canonical reference.
|
|
168
171
|
|
|
169
172
|
## Migrating to v2
|
|
170
173
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveChart.d.ts","sourceRoot":"","sources":["../../src/components/LiveChart.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LiveChart.d.ts","sourceRoot":"","sources":["../../src/components/LiveChart.tsx"],"names":[],"mappings":"AAyEA,OAAO,KAAK,EAAE,cAAc,EAAsB,MAAM,UAAU,CAAC;AAo/BnE,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,2CAqE9C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveChartSeries.d.ts","sourceRoot":"","sources":["../../src/components/LiveChartSeries.tsx"],"names":[],"mappings":"AA+DA,OAAO,KAAK,EAAE,oBAAoB,EAAwB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"LiveChartSeries.d.ts","sourceRoot":"","sources":["../../src/components/LiveChartSeries.tsx"],"names":[],"mappings":"AA+DA,OAAO,KAAK,EAAE,oBAAoB,EAAwB,MAAM,UAAU,CAAC;AAkjB3E,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,2CAqH1D"}
|
|
@@ -5,15 +5,22 @@ import type { LiveChartPalette, ReferenceLine } from "../types";
|
|
|
5
5
|
/**
|
|
6
6
|
* Renders one reference line or band into the chart canvas. Handles all three
|
|
7
7
|
* `ReferenceLine` forms (horizontal line, horizontal value band, vertical time
|
|
8
|
-
* band) plus the
|
|
9
|
-
* so callers can `.map()` over a variable-length
|
|
8
|
+
* band) plus the Form-A pill badge (in-range tag + off-screen chevron pin).
|
|
9
|
+
* Self-contained so callers can `.map()` over a variable-length array.
|
|
10
10
|
*/
|
|
11
|
-
export declare function ReferenceLineOverlay({ engine, padding, line, palette, formatValue, font, }: {
|
|
11
|
+
export declare function ReferenceLineOverlay({ engine, padding, line, palette, formatValue, font, badgeLayer, }: {
|
|
12
12
|
engine: ChartEngineLayout;
|
|
13
13
|
padding: ChartPadding;
|
|
14
14
|
line: ReferenceLine;
|
|
15
15
|
palette: LiveChartPalette;
|
|
16
16
|
formatValue: (v: number) => string;
|
|
17
17
|
font: SkFont;
|
|
18
|
+
/**
|
|
19
|
+
* Render only the badge + label (`true`) or only the lines / bands (`false`,
|
|
20
|
+
* default). The caller draws the base pass behind the chart content and the
|
|
21
|
+
* badge pass **above** the left-edge fade, so badges/labels stay crisp instead
|
|
22
|
+
* of being erased by the fade's `dstOut` blend.
|
|
23
|
+
*/
|
|
24
|
+
badgeLayer?: boolean;
|
|
18
25
|
}): import("react/jsx-runtime").JSX.Element;
|
|
19
26
|
//# sourceMappingURL=ReferenceLineOverlay.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReferenceLineOverlay.d.ts","sourceRoot":"","sources":["../../src/components/ReferenceLineOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,MAAM,EACZ,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"ReferenceLineOverlay.d.ts","sourceRoot":"","sources":["../../src/components/ReferenceLineOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,MAAM,EACZ,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAIjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAShE;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,MAAM,EACN,OAAO,EACP,IAAI,EACJ,OAAO,EACP,WAAW,EACX,IAAI,EACJ,UAAkB,GACnB,EAAE;IACD,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,2CAyPA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type SkFont } from "@shopify/react-native-skia";
|
|
2
|
+
import { type SharedValue } from "react-native-reanimated";
|
|
3
|
+
import type { ChartEngineLayout } from "../core/useLiveChartEngine";
|
|
4
|
+
import type { ChartPadding } from "../draw/line";
|
|
5
|
+
import type { ActionBadgeLayout, TimeBadgeLayout } from "../hooks/crosshairShared";
|
|
6
|
+
import type { LiveChartPalette } from "../types";
|
|
7
|
+
/**
|
|
8
|
+
* Scrub-action ("order ticket") overlay: the locked reticle (a horizontal price
|
|
9
|
+
* level line + a faint vertical line crossing at the reticle) and the right-gutter
|
|
10
|
+
* action badge — a circular icon button + a separate price pill. All keyed off the
|
|
11
|
+
* lock SharedValues, so it tracks the reticle on the UI thread without re-renders.
|
|
12
|
+
*
|
|
13
|
+
* Mounted by `LiveChart` **outside** the degen-shake group so the rendered badge
|
|
14
|
+
* stays aligned with the (untransformed) tap hit-test in {@link useCrosshair}.
|
|
15
|
+
* Visibility rides on a 0/1 opacity driven by `lockActive` (no React remount).
|
|
16
|
+
*/
|
|
17
|
+
export declare function ScrubActionOverlay({ lockActive, lockX, lockY, actionBadge, timeBadge, engine, padding, palette, font, icon, lineColor, background, iconColor, }: {
|
|
18
|
+
lockActive: SharedValue<boolean>;
|
|
19
|
+
lockX: SharedValue<number>;
|
|
20
|
+
lockY: SharedValue<number>;
|
|
21
|
+
actionBadge: SharedValue<ActionBadgeLayout>;
|
|
22
|
+
timeBadge?: SharedValue<TimeBadgeLayout>;
|
|
23
|
+
engine: ChartEngineLayout;
|
|
24
|
+
padding: ChartPadding;
|
|
25
|
+
palette: LiveChartPalette;
|
|
26
|
+
font: SkFont;
|
|
27
|
+
icon: string;
|
|
28
|
+
lineColor?: string;
|
|
29
|
+
background?: string;
|
|
30
|
+
iconColor?: string;
|
|
31
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
32
|
+
//# sourceMappingURL=ScrubActionOverlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScrubActionOverlay.d.ts","sourceRoot":"","sources":["../../src/components/ScrubActionOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,MAAM,EACZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,UAAU,EACV,KAAK,EACL,KAAK,EACL,WAAW,EACX,SAAS,EACT,MAAM,EACN,OAAO,EACP,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,UAAU,EACV,SAAS,GACV,EAAE;IACD,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACjC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,WAAW,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAC5C,SAAS,CAAC,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC;IACzC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,2CAiIA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XAxisOverlay.d.ts","sourceRoot":"","sources":["../../src/components/XAxisOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"XAxisOverlay.d.ts","sourceRoot":"","sources":["../../src/components/XAxisOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAOjD,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,MAAM,EACN,OAAO,EACP,OAAO,EACP,IAAI,GACL,EAAE;IACD,OAAO,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;IACnC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd,2CA8DA"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -21,6 +21,10 @@ export declare const BADGE_TAIL_LEN: number;
|
|
|
21
21
|
export declare const BADGE_MARGIN_RIGHT: number;
|
|
22
22
|
/** Gap between the live dot and the badge tail tip. */
|
|
23
23
|
export declare const BADGE_DOT_GAP: number;
|
|
24
|
+
/** Baseline offset (px) below the plot bottom where x-axis time labels sit.
|
|
25
|
+
* Shared so overlays that align to the time-axis row (e.g. the scrub-action
|
|
26
|
+
* time badge) match the {@link XAxisOverlay} labels. */
|
|
27
|
+
export declare const X_AXIS_LABEL_OFFSET_Y = 19;
|
|
24
28
|
/** Maximum simultaneous series rendered (paths/dots slots). */
|
|
25
29
|
export declare const MAX_MULTI_SERIES = 12;
|
|
26
30
|
/** Default width (px) of the left-edge fade band */
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,aAAa,EACd,MAAM,SAAS,CAAC;AAEjB,mFAAmF;AACnF,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAOxC,yCAAyC;AACzC,eAAO,MAAM,sBAAsB,EAAE,YAOpC,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,uBAAuB,EAAE,aAIrC,CAAC;AAEF,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB,EAAE,WAGnC,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,uBAAuB,EAAE,aAGrC,CAAC;AAEF,4CAA4C;AAC5C,eAAO,MAAM,4BAA4B,EAAE,iBAI1C,CAAC;AAGF,2EAA2E;AAC3E,eAAO,MAAM,gBAAgB,QAA8B,CAAC;AAC5D,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,QAA8B,CAAC;AAC5D,mEAAmE;AACnE,eAAO,MAAM,cAAc,QAAoC,CAAC;AAChE,mEAAmE;AACnE,eAAO,MAAM,kBAAkB,QAAoC,CAAC;AACpE,uDAAuD;AACvD,eAAO,MAAM,aAAa,QAAgC,CAAC;AAE3D,+DAA+D;AAC/D,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,oDAAoD;AACpD,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC;;;;;GAKG;AACH,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,aAAa,EACd,MAAM,SAAS,CAAC;AAEjB,mFAAmF;AACnF,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAOxC,yCAAyC;AACzC,eAAO,MAAM,sBAAsB,EAAE,YAOpC,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,uBAAuB,EAAE,aAIrC,CAAC;AAEF,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB,EAAE,WAGnC,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,uBAAuB,EAAE,aAGrC,CAAC;AAEF,4CAA4C;AAC5C,eAAO,MAAM,4BAA4B,EAAE,iBAI1C,CAAC;AAGF,2EAA2E;AAC3E,eAAO,MAAM,gBAAgB,QAA8B,CAAC;AAC5D,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,QAA8B,CAAC;AAC5D,mEAAmE;AACnE,eAAO,MAAM,cAAc,QAAoC,CAAC;AAChE,mEAAmE;AACnE,eAAO,MAAM,kBAAkB,QAAoC,CAAC;AACpE,uDAAuD;AACvD,eAAO,MAAM,aAAa,QAAgC,CAAC;AAE3D;;yDAEyD;AACzD,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,+DAA+D;AAC/D,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,oDAAoD;AACpD,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC;;;;;GAKG;AACH,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,YAAY,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AxisLabelConfig, BadgeConfig, BadgeVariant, DegenOptions, FontConfig, FontWeight, GradientConfig, GridStyleConfig, LeftEdgeFadeConfig, LegendConfig, LegendStyle, LiveChartMetrics, LiveChartMetricsOverride, DotConfig, DotRingConfig, MultiSeriesDotConfig, PulseConfig, ReferenceLine, ScrubConfig, SelectionDotConfig, SelectionDotProps, SelectionDotRingConfig, TradeEvent, ValueLineConfig, XAxisConfig, YAxisConfig } from "../types";
|
|
1
|
+
import type { AxisLabelConfig, BadgeConfig, BadgeVariant, DegenOptions, FontConfig, FontWeight, GradientConfig, GridStyleConfig, LeftEdgeFadeConfig, LegendConfig, LegendStyle, LiveChartMetrics, LiveChartMetricsOverride, DotConfig, DotRingConfig, MultiSeriesDotConfig, PulseConfig, ReferenceLine, ScrubActionConfig, ScrubConfig, SelectionDotConfig, SelectionDotProps, SelectionDotRingConfig, TradeEvent, ValueLineConfig, XAxisConfig, YAxisConfig } from "../types";
|
|
2
2
|
import type { ComponentType, ReactElement } from "react";
|
|
3
3
|
import type { SharedValue } from "react-native-reanimated";
|
|
4
4
|
export interface ResolvedValueLineConfig {
|
|
@@ -45,6 +45,23 @@ export interface ResolvedScrubConfig {
|
|
|
45
45
|
/** Press-and-hold delay (ms) before scrubbing activates. 0 = immediate. */
|
|
46
46
|
panGestureDelay: number;
|
|
47
47
|
}
|
|
48
|
+
export interface ResolvedScrubActionConfig {
|
|
49
|
+
/** Glyph drawn in the action badge. */
|
|
50
|
+
icon: string;
|
|
51
|
+
/** undefined → palette.badgeBg */
|
|
52
|
+
background: string | undefined;
|
|
53
|
+
/** undefined → palette.badgeText */
|
|
54
|
+
iconColor: string | undefined;
|
|
55
|
+
/** undefined → palette.crosshairLine */
|
|
56
|
+
lineColor: string | undefined;
|
|
57
|
+
/** Show the price readout pill; false → icon-only badge. */
|
|
58
|
+
text: boolean;
|
|
59
|
+
/** Show the date/time pill where the vertical line meets the x-axis. */
|
|
60
|
+
timeBadge: boolean;
|
|
61
|
+
/** undefined → no rounding */
|
|
62
|
+
snap: number | undefined;
|
|
63
|
+
dismissOnTapOutside: boolean;
|
|
64
|
+
}
|
|
48
65
|
export interface ResolvedGradientConfig {
|
|
49
66
|
/** undefined → use palette.fillTop (theme-aware) at render time */
|
|
50
67
|
topOpacity: number | undefined;
|
|
@@ -143,6 +160,11 @@ export declare function resolveXAxis(prop: boolean | XAxisConfig | undefined): R
|
|
|
143
160
|
* `true` → defaults, object → merged with defaults, falsy → null.
|
|
144
161
|
*/
|
|
145
162
|
export declare function resolveScrub(prop: boolean | ScrubConfig | undefined): ResolvedScrubConfig | null;
|
|
163
|
+
/**
|
|
164
|
+
* Resolves `scrubAction` prop to a fully-typed config or null (disabled).
|
|
165
|
+
* Opt-in: `false`/`undefined` → null; `true` → defaults; object → merged.
|
|
166
|
+
*/
|
|
167
|
+
export declare function resolveScrubAction(prop: boolean | ScrubActionConfig | undefined): ResolvedScrubActionConfig | null;
|
|
146
168
|
/**
|
|
147
169
|
* Resolves `gradient` prop to a fully-typed config or null (disabled).
|
|
148
170
|
* `true` → defaults (use palette colors), object → merged with defaults, falsy → null.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveConfig.d.ts","sourceRoot":"","sources":["../../src/core/resolveConfig.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resolveConfig.d.ts","sourceRoot":"","sources":["../../src/core/resolveConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,20 @@ export interface CrosshairState {
|
|
|
33
33
|
* (inactive / no value / degenerate range). See {@link computeScrubDotY}. */
|
|
34
34
|
scrubDotY: SharedValue<number>;
|
|
35
35
|
gesture: ReturnType<typeof Gesture.Pan>;
|
|
36
|
+
/** Whether a reticle is currently placed/locked. */
|
|
37
|
+
lockActive?: SharedValue<boolean>;
|
|
38
|
+
/** Locked reticle X in canvas px (-1 when none). */
|
|
39
|
+
lockX?: SharedValue<number>;
|
|
40
|
+
/** Locked reticle Y in canvas px (-1 when none). */
|
|
41
|
+
lockY?: SharedValue<number>;
|
|
42
|
+
/** Chosen price = value at the reticle Y (optionally snapped); null when none. */
|
|
43
|
+
lockPrice?: SharedValue<number | null>;
|
|
44
|
+
/** Right-gutter action-badge layout (also the tap hit rect). */
|
|
45
|
+
actionBadge?: SharedValue<ActionBadgeLayout>;
|
|
46
|
+
/** X-axis time-badge layout at the reticle (opt-in; hidden when off). */
|
|
47
|
+
timeBadge?: SharedValue<TimeBadgeLayout>;
|
|
48
|
+
/** Tap gesture that places/moves the reticle, presses the badge, or dismisses. */
|
|
49
|
+
tapGesture?: ReturnType<typeof Gesture.Tap>;
|
|
36
50
|
}
|
|
37
51
|
/**
|
|
38
52
|
* Maps a scrub value to its Y pixel at the crosshair intersection — the same
|
|
@@ -41,6 +55,17 @@ export interface CrosshairState {
|
|
|
41
55
|
* the dot to the vertical center of the plot.
|
|
42
56
|
*/
|
|
43
57
|
export declare function computeScrubDotY(value: number | null, displayMin: number, displayMax: number, canvasHeight: number, padTop: number, padBottom: number): number;
|
|
58
|
+
/**
|
|
59
|
+
* Inverse of {@link computeScrubDotY}: maps a canvas Y pixel back to a value (a
|
|
60
|
+
* free price *level*, used by scrub-action mode where the reticle Y is the chosen
|
|
61
|
+
* price, not the line value at the reticle X). Returns null when the canvas isn't
|
|
62
|
+
* laid out. A degenerate (zero) range collapses to the single value; a Y dragged
|
|
63
|
+
* past the plot edges clamps to `displayMin` / `displayMax` rather than
|
|
64
|
+
* extrapolating to a nonsensical price.
|
|
65
|
+
*/
|
|
66
|
+
export declare function computeValueAtY(y: number, displayMin: number, displayMax: number, canvasHeight: number, padTop: number, padBottom: number): number | null;
|
|
67
|
+
/** Rounds `price` to the nearest `increment` (no-op when increment is falsy/≤0). */
|
|
68
|
+
export declare function snapPrice(price: number, increment?: number): number;
|
|
44
69
|
/**
|
|
45
70
|
* Maps a scrub X position to a window timestamp.
|
|
46
71
|
* Returns -1 when inactive or when the canvas is not yet laid out.
|
|
@@ -85,6 +110,91 @@ export declare function deriveScrubValueSingle(scrubActive: boolean, scrubTime:
|
|
|
85
110
|
time: number;
|
|
86
111
|
value: number;
|
|
87
112
|
}[]): number | null;
|
|
113
|
+
/**
|
|
114
|
+
* Right-gutter action-badge layout for scrub-action mode — two pills, vertically
|
|
115
|
+
* centered on the locked reticle Y and anchored to the canvas right edge:
|
|
116
|
+
*
|
|
117
|
+
* - a **circular** icon button (the action), and
|
|
118
|
+
* - a capsule **price pill** showing the formatted value,
|
|
119
|
+
*
|
|
120
|
+
* separated by {@link ACTION_BADGE_GAP}px (`[icon] [price]`). The price pill is
|
|
121
|
+
* right-anchored in the gutter with its text horizontally centered; a lone icon
|
|
122
|
+
* (icon-only) anchors to the plot's right edge, attached to the level line.
|
|
123
|
+
* Either element is omitted when its content is empty (icon-only, or no price).
|
|
124
|
+
* The union rect (`x/y/w/h`) is the single source of truth for the tap hit-test
|
|
125
|
+
* (see {@link pointInRect}). When not locked / not laid out / both empty, returns
|
|
126
|
+
* {@link HIDDEN_ACTION_BADGE}.
|
|
127
|
+
*
|
|
128
|
+
* The price text is sized to its actual visual bounds via `font.measureText`
|
|
129
|
+
* (run only while a reticle is shown) so the readout stays exactly centered —
|
|
130
|
+
* see the inline note on `priceTextX` below.
|
|
131
|
+
*/
|
|
132
|
+
export interface ActionBadgeLayout {
|
|
133
|
+
/** Union hit rect (icon button + price pill). */
|
|
134
|
+
x: number;
|
|
135
|
+
y: number;
|
|
136
|
+
w: number;
|
|
137
|
+
h: number;
|
|
138
|
+
/** Whether the circular icon button is shown. */
|
|
139
|
+
hasIcon: boolean;
|
|
140
|
+
/** Icon button circle center + radius (the glyph is centered on this by the overlay). */
|
|
141
|
+
iconCx: number;
|
|
142
|
+
iconCy: number;
|
|
143
|
+
iconR: number;
|
|
144
|
+
/** Whether the price pill is shown. */
|
|
145
|
+
hasPrice: boolean;
|
|
146
|
+
/** Price pill rect. */
|
|
147
|
+
priceX: number;
|
|
148
|
+
priceY: number;
|
|
149
|
+
priceW: number;
|
|
150
|
+
priceH: number;
|
|
151
|
+
/** Price text left x. */
|
|
152
|
+
priceTextX: number;
|
|
153
|
+
/** Shared baseline y for the icon glyph + price text. */
|
|
154
|
+
textY: number;
|
|
155
|
+
/** Formatted price string drawn in the price pill. */
|
|
156
|
+
priceText: string;
|
|
157
|
+
/** Whether the badge is shown (locked + laid out + has content). */
|
|
158
|
+
visible: boolean;
|
|
159
|
+
}
|
|
160
|
+
export declare const HIDDEN_ACTION_BADGE: ActionBadgeLayout;
|
|
161
|
+
export declare function computeActionBadgeLayout(locked: boolean, lockY: number, priceText: string, icon: string, canvasWidth: number,
|
|
162
|
+
/** Plot's right edge (= canvasWidth - padding.right) — where the level line ends. */
|
|
163
|
+
plotRight: number, font: SkFont, marginEdge: number, padX: number, padY: number): ActionBadgeLayout;
|
|
164
|
+
/**
|
|
165
|
+
* X-axis time-badge layout for scrub-action mode — a small capsule pinned where
|
|
166
|
+
* the reticle's vertical line meets the time axis (the bottom gutter), centered
|
|
167
|
+
* on the reticle X and clamped to stay within the canvas. Display-only (no
|
|
168
|
+
* hit-test): an opt-in readout of the date/time under the reticle, formatted by
|
|
169
|
+
* the chart's `formatTime`. Hidden when not locked / not laid out / empty text.
|
|
170
|
+
*/
|
|
171
|
+
export interface TimeBadgeLayout {
|
|
172
|
+
/** Pill rect. */
|
|
173
|
+
x: number;
|
|
174
|
+
y: number;
|
|
175
|
+
w: number;
|
|
176
|
+
h: number;
|
|
177
|
+
/** Time text left x (visual-bounds centered) + shared baseline y. */
|
|
178
|
+
textX: number;
|
|
179
|
+
textY: number;
|
|
180
|
+
/** Formatted time string drawn in the pill. */
|
|
181
|
+
timeText: string;
|
|
182
|
+
/** Whether the badge is shown (locked + laid out + has text). */
|
|
183
|
+
visible: boolean;
|
|
184
|
+
}
|
|
185
|
+
export declare const HIDDEN_TIME_BADGE: TimeBadgeLayout;
|
|
186
|
+
export declare function computeTimeBadgeLayout(locked: boolean, lockX: number, timeText: string, canvasWidth: number,
|
|
187
|
+
/** Baseline y where the x-axis time labels sit (= canvasHeight - padding.bottom
|
|
188
|
+
* + X_AXIS_LABEL_OFFSET_Y). The pill is vertically centered on this row so it
|
|
189
|
+
* aligns with the axis values it overlays. */
|
|
190
|
+
labelBaselineY: number, font: SkFont, padX: number, padY: number, marginEdge: number): TimeBadgeLayout;
|
|
191
|
+
/** Axis-aligned point-in-rect test with an optional touch-target inflation. */
|
|
192
|
+
export declare function pointInRect(px: number, py: number, rect: {
|
|
193
|
+
x: number;
|
|
194
|
+
y: number;
|
|
195
|
+
w: number;
|
|
196
|
+
h: number;
|
|
197
|
+
}, slop?: number): boolean;
|
|
88
198
|
/** Single-series crosshair tooltip — extracted for tests. */
|
|
89
199
|
export declare function deriveCrosshairTooltipSingle(scrubActive: boolean, scrubX: number, scrubTime: number, scrubValue: number | null, padding: ChartPadding, canvasWidth: number, formatValue: (v: number) => string, formatTime: (t: number) => string, font: SkFont, monoCharWidth?: number): TooltipLayout;
|
|
90
200
|
//# sourceMappingURL=crosshairShared.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crosshairShared.d.ts","sourceRoot":"","sources":["../../src/hooks/crosshairShared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAWjD,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,0FAA0F;IAC1F,YAAY,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,OAAO,CAAC;KACd,EAAE,CAAC;CACL;AAED,eAAO,MAAM,cAAc,EAAE,aAY5B,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5B,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,UAAU,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACvC,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,aAAa,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;IAC1C;kFAC8E;IAC9E,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"crosshairShared.d.ts","sourceRoot":"","sources":["../../src/hooks/crosshairShared.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { type SkFont } from "@shopify/react-native-skia";
|
|
2
2
|
import { type SharedValue } from "react-native-reanimated";
|
|
3
|
+
import type { ResolvedScrubActionConfig } from "../core/resolveConfig";
|
|
3
4
|
import type { SingleEngineState } from "../core/useLiveChartEngine";
|
|
4
5
|
import { type ChartPadding } from "../draw/line";
|
|
5
|
-
import type { CandlePoint, LiveChartPalette, ScrubPoint } from "../types";
|
|
6
|
+
import type { BadgeMetrics, CandlePoint, LiveChartPalette, ScrubActionPoint, ScrubPoint } from "../types";
|
|
6
7
|
import { type CrosshairState } from "./crosshairShared";
|
|
7
8
|
export type { CrosshairState, TooltipLayout } from "./crosshairShared";
|
|
8
9
|
export type { ScrubPoint };
|
|
@@ -18,5 +19,16 @@ export interface CrosshairCandleOpts {
|
|
|
18
19
|
*/
|
|
19
20
|
export declare function useCrosshair(engine: SingleEngineState, padding: ChartPadding, _palette: LiveChartPalette, formatValue: (v: number) => string, formatTime: (t: number) => string, font: SkFont, enabled: boolean, onScrub?: (point: ScrubPoint | null) => void, candleOpts?: CrosshairCandleOpts,
|
|
20
21
|
/** Press-and-hold delay (ms) before scrubbing activates. 0 = immediate. */
|
|
21
|
-
panGestureDelay?: number, onGestureStart?: () => void, onGestureEnd?: () => void
|
|
22
|
+
panGestureDelay?: number, onGestureStart?: () => void, onGestureEnd?: () => void,
|
|
23
|
+
/** Scrub-action ("order ticket") config; `null`/omitted disables lock mode. */
|
|
24
|
+
scrubAction?: ResolvedScrubActionConfig | null, onScrubAction?: (point: ScrubActionPoint) => void,
|
|
25
|
+
/** Badge geometry (gutter margins / pad) for the action pill. */
|
|
26
|
+
badgeMetrics?: BadgeMetrics,
|
|
27
|
+
/**
|
|
28
|
+
* Worklet predicate: true when a tap at (x, y) lands on another interactive
|
|
29
|
+
* overlay (a marker, or a pressable reference-line badge). The scrub-action tap
|
|
30
|
+
* defers to it (no reticle placed) so that overlay's tap handler can act.
|
|
31
|
+
* Omitted when nothing coexists.
|
|
32
|
+
*/
|
|
33
|
+
deferTapHit?: (x: number, y: number) => boolean): CrosshairState;
|
|
22
34
|
//# sourceMappingURL=useCrosshair.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCrosshair.d.ts","sourceRoot":"","sources":["../../src/hooks/useCrosshair.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAGzD,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"useCrosshair.d.ts","sourceRoot":"","sources":["../../src/hooks/useCrosshair.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAGzD,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACX,MAAM,UAAU,CAAC;AAClB,OAAO,EAaL,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AA4C3B,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvE,YAAY,EAAE,UAAU,EAAE,CAAC;AAEzB,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,EACzB,4BAA4B,EAC5B,sBAAsB,EACtB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAE7B,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxB,OAAO,CAAC,EAAE,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;IACrC,UAAU,CAAC,EAAE,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC7C,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,gBAAgB,EAC1B,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAClC,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,KAAK,IAAI,EAC5C,UAAU,CAAC,EAAE,mBAAmB;AAChC,2EAA2E;AAC3E,eAAe,SAAI,EACnB,cAAc,CAAC,EAAE,MAAM,IAAI,EAC3B,YAAY,CAAC,EAAE,MAAM,IAAI;AACzB,+EAA+E;AAC/E,WAAW,CAAC,EAAE,yBAAyB,GAAG,IAAI,EAC9C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI;AACjD,iEAAiE;AACjE,YAAY,GAAE,YAAqC;AACnD;;;;;GAKG;AACH,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,GAC9C,cAAc,CAwfhB"}
|
|
@@ -13,5 +13,7 @@ export declare function useMarkers(engine: ChartEngineLayout, padding: ChartPadd
|
|
|
13
13
|
autostart?: boolean): {
|
|
14
14
|
projected: SharedValue<ProjectedMarker[]>;
|
|
15
15
|
tapGesture: ReturnType<typeof Gesture.Tap>;
|
|
16
|
+
/** Worklet hit-test: true when (x, y) lands on a projected marker. */
|
|
17
|
+
hitTest: (x: number, y: number) => boolean;
|
|
16
18
|
};
|
|
17
19
|
//# sourceMappingURL=useMarkers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMarkers.d.ts","sourceRoot":"","sources":["../../src/hooks/useMarkers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,KAAK,EACV,cAAc,EACd,MAAM,EACN,gBAAgB,EAChB,YAAY,EACb,MAAM,UAAU,CAAC;AAElB;;;GAGG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAC9B,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,KAAK,IAAI,EACxD,QAAQ,CAAC,EAAE,WAAW,CAAC,YAAY,EAAE,CAAC,EACtC,QAAQ,CAAC,EAAE,WAAW,CAAC,cAAc,EAAE,CAAC;AACxC,6EAA6E;AAC7E,SAAS,UAAO,GACf;
|
|
1
|
+
{"version":3,"file":"useMarkers.d.ts","sourceRoot":"","sources":["../../src/hooks/useMarkers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,KAAK,EACV,cAAc,EACd,MAAM,EACN,gBAAgB,EAChB,YAAY,EACb,MAAM,UAAU,CAAC;AAElB;;;GAGG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAC9B,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,KAAK,IAAI,EACxD,QAAQ,CAAC,EAAE,WAAW,CAAC,YAAY,EAAE,CAAC,EACtC,QAAQ,CAAC,EAAE,WAAW,CAAC,cAAc,EAAE,CAAC;AACxC,6EAA6E;AAC7E,SAAS,UAAO,GACf;IACD,SAAS,EAAE,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC;IAC1C,UAAU,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,sEAAsE;IACtE,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;CAC5C,CA0EA"}
|
|
@@ -14,19 +14,52 @@ export interface ReferenceLineLayout {
|
|
|
14
14
|
x1: number;
|
|
15
15
|
/** Right x extent. */
|
|
16
16
|
x2: number;
|
|
17
|
-
/** Resolved label text (with appended value when `showValue`). */
|
|
17
|
+
/** Resolved label text (with appended value when `showValue`); "" when hidden. */
|
|
18
18
|
label: string;
|
|
19
19
|
labelX: number;
|
|
20
20
|
labelY: number;
|
|
21
|
-
/** True when a Form-A
|
|
21
|
+
/** True when a Form-A value is off-screen (badge pinned to the edge + chevron). */
|
|
22
22
|
offAxis: boolean;
|
|
23
23
|
/** Off-axis chevron points up (target above range) vs down (below). */
|
|
24
24
|
chevronUp: boolean;
|
|
25
|
+
/** True when the value renders as a pill badge (icon / text / chevron tag). */
|
|
26
|
+
badge: boolean;
|
|
27
|
+
/** Badge pill rect left x. */
|
|
28
|
+
pillX: number;
|
|
29
|
+
/** Badge pill rect width. */
|
|
30
|
+
pillW: number;
|
|
31
|
+
/** Badge icon glyph x (-1 when no icon). */
|
|
32
|
+
iconX: number;
|
|
33
|
+
/** Badge icon glyph (""/none). */
|
|
34
|
+
icon: string;
|
|
35
|
+
/** Off-axis chevron center x (-1 when no chevron). */
|
|
36
|
+
chevronCx: number;
|
|
37
|
+
/** Connector dashed-line start x (-1 when no connector). */
|
|
38
|
+
connStart: number;
|
|
39
|
+
/** Connector dashed-line end x. */
|
|
40
|
+
connEnd: number;
|
|
25
41
|
}
|
|
42
|
+
/** Axis-aligned screen rect of a reference-line badge pill (the press hit-target). */
|
|
43
|
+
export interface ReferenceBadgeRect {
|
|
44
|
+
x: number;
|
|
45
|
+
y: number;
|
|
46
|
+
w: number;
|
|
47
|
+
h: number;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Screen-space pill rect for a Form-A reference line's **badge**, or `null` when
|
|
51
|
+
* the line has no pressable badge (no `badge`/`offAxisBadge`, not a value line, a
|
|
52
|
+
* legacy off-axis badge while in range, or the canvas isn't laid out / range is
|
|
53
|
+
* degenerate). Shares `badgeGeometry` + the edge classification with
|
|
54
|
+
* {@link useReferenceLine}, so the hit-target tracks the rendered pill exactly.
|
|
55
|
+
* Pure worklet — used by {@link useReferenceLinePress} for tap hit-testing.
|
|
56
|
+
*/
|
|
57
|
+
export declare function computeReferenceBadgeRect(line: ReferenceLine, canvasWidth: number, canvasHeight: number, padding: ChartPadding, dMin: number, dMax: number, font: SkFont, formatValue: (value: number) => string): ReferenceBadgeRect | null;
|
|
26
58
|
/**
|
|
27
59
|
* Derives screen-space layout for a single reference line or band. Supports all
|
|
28
60
|
* three `ReferenceLine` forms (horizontal line, horizontal value band, vertical
|
|
29
|
-
* time band) plus the
|
|
61
|
+
* time band) plus the pill badge for a Form-A value (in-range tag + off-screen
|
|
62
|
+
* chevron pin).
|
|
30
63
|
*/
|
|
31
64
|
export declare function useReferenceLine(engine: ChartEngineLayout, padding: ChartPadding, line: ReferenceLine | undefined, formatValue: (v: number) => string, font: SkFont): SharedValue<ReferenceLineLayout>;
|
|
32
65
|
//# sourceMappingURL=useReferenceLine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useReferenceLine.d.ts","sourceRoot":"","sources":["../../src/hooks/useReferenceLine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"useReferenceLine.d.ts","sourceRoot":"","sources":["../../src/hooks/useReferenceLine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAOjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,kFAAkF;AAClF,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,kCAAkC;IAClC,CAAC,EAAE,MAAM,CAAC;IACV,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,sBAAsB;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,kFAAkF;IAClF,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,OAAO,EAAE,OAAO,CAAC;IACjB,uEAAuE;IACvE,SAAS,EAAE,OAAO,CAAC;IACnB,+EAA+E;IAC/E,KAAK,EAAE,OAAO,CAAC;IACf,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB;AA8ID,sFAAsF;AACtF,MAAM,WAAW,kBAAkB;IACjC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,aAAa,EACnB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GACrC,kBAAkB,GAAG,IAAI,CAwC3B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,aAAa,GAAG,SAAS,EAC/B,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAClC,IAAI,EAAE,MAAM,GACX,WAAW,CAAC,mBAAmB,CAAC,CA2LlC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { SkFont } from "@shopify/react-native-skia";
|
|
2
|
+
import { Gesture } from "react-native-gesture-handler";
|
|
3
|
+
import type { ChartEngineLayout } from "../core/useLiveChartEngine";
|
|
4
|
+
import type { ChartPadding } from "../draw/line";
|
|
5
|
+
import type { ReferenceLine } from "../types";
|
|
6
|
+
/**
|
|
7
|
+
* Builds a tap gesture that hit-tests a chart's reference-line **badges** (the
|
|
8
|
+
* pill tags for working orders / alerts / targets) and fires `onPress(line,
|
|
9
|
+
* index)` when one is tapped. Mirrors {@link useMarkers}: badge rects are
|
|
10
|
+
* projected to screen each frame on the UI thread (so they track the rescaling
|
|
11
|
+
* axis exactly like the rendered pills), and the gesture hit-tests against them.
|
|
12
|
+
*
|
|
13
|
+
* Also returns a `hitTest` worklet so a coexisting gesture (the scrub-action tap)
|
|
14
|
+
* can defer to a badge under the finger instead of acting on it. Only badge-tagged
|
|
15
|
+
* Form-A (value) lines are pressable; everything else projects to `null`.
|
|
16
|
+
*/
|
|
17
|
+
export declare function useReferenceLinePress(engine: ChartEngineLayout, padding: ChartPadding, lines: ReferenceLine[], font: SkFont, formatValue: (v: number) => string, active: boolean,
|
|
18
|
+
/** Touch-target inflation around each pill, in px. */
|
|
19
|
+
hitSlop: number, onPress?: (line: ReferenceLine, index: number) => void): {
|
|
20
|
+
tapGesture: ReturnType<typeof Gesture.Tap>;
|
|
21
|
+
hitTest: (x: number, y: number) => boolean;
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=useReferenceLinePress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useReferenceLinePress.d.ts","sourceRoot":"","sources":["../../src/hooks/useReferenceLinePress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAIvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAO9C;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,aAAa,EAAE,EACtB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAClC,MAAM,EAAE,OAAO;AACf,sDAAsD;AACtD,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACrD;IACD,UAAU,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;CAC5C,CAqDA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,5 +14,5 @@ export { formatTime, formatValue } from "./lib/format";
|
|
|
14
14
|
export { MONO_FONT_FAMILY } from "./lib/monoFontFamily";
|
|
15
15
|
export { useDegen } from "./hooks/useDegen";
|
|
16
16
|
export { useTradeStream } from "./hooks/useTradeStream";
|
|
17
|
-
export type { AxisLabelConfig, BadgeConfig, BadgeMetrics, BadgeVariant, CandleMetrics, CandlePoint, ChartInsets, ChartSegment, DegenOptions, DegenShakePayload, EmptyStateMetrics, FontConfig, FontWeight, GradientConfig, GridMetrics, GridStyleConfig, LeftEdgeFadeConfig, LegendConfig, LegendStyle, LineConfig, LiveChartCoreProps, LiveChartMetrics, LiveChartMetricsOverride, LiveChartPalette, LiveChartPoint, LiveChartProps, LiveChartSeriesProps, Marker, MarkerHoverEvent, MarkerKind, Momentum, MomentumConfig, MotionMetrics, MultiSeriesDotConfig, PulseConfig, ReferenceLine, ScrubConfig, ScrubPoint, ScrubPointCore, ScrubPointMulti, ScrubSeriesValue, SelectionDotConfig, SelectionDotProps, SelectionDotRingConfig, SeriesConfig, ThemeMode, TradeEvent, ValueLineConfig, XAxisConfig, YAxisConfig, } from "./types";
|
|
17
|
+
export type { AxisLabelConfig, BadgeConfig, BadgeMetrics, BadgeVariant, CandleMetrics, CandlePoint, ChartInsets, ChartSegment, DegenOptions, DegenShakePayload, EmptyStateMetrics, FontConfig, FontWeight, GradientConfig, GridMetrics, GridStyleConfig, LeftEdgeFadeConfig, LegendConfig, LegendStyle, LineConfig, LiveChartCoreProps, LiveChartMetrics, LiveChartMetricsOverride, LiveChartPalette, LiveChartPoint, LiveChartProps, LiveChartSeriesProps, Marker, MarkerHoverEvent, MarkerKind, Momentum, MomentumConfig, MotionMetrics, MultiSeriesDotConfig, PulseConfig, ReferenceLine, ReferenceLineBadgeConfig, ScrubActionConfig, ScrubActionPoint, ScrubConfig, ScrubPoint, ScrubPointCore, ScrubPointMulti, ScrubSeriesValue, SelectionDotConfig, SelectionDotProps, SelectionDotRingConfig, SeriesConfig, ThemeMode, TradeEvent, ValueLineConfig, XAxisConfig, YAxisConfig, } from "./types";
|
|
18
18
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,mBAAmB,EAAE,CAAC;AAC3D,YAAY,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAIjF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAIxD,YAAY,EACV,eAAe,EACf,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,cAAc,EACd,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,MAAM,EACN,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,WAAW,EACX,UAAU,EACV,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,SAAS,EACT,UAAU,EACV,eAAe,EACf,WAAW,EACX,WAAW,GACZ,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,mBAAmB,EAAE,CAAC;AAC3D,YAAY,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAIjF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAIxD,YAAY,EACV,eAAe,EACf,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,cAAc,EACd,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,MAAM,EACN,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,SAAS,EACT,UAAU,EACV,eAAe,EACf,WAAW,EACX,WAAW,GACZ,MAAM,SAAS,CAAC"}
|
|
@@ -12,6 +12,29 @@ export declare function referenceLineForm(rl: ReferenceLine): ReferenceLineForm;
|
|
|
12
12
|
* time bands (Form C) which constrain time, not value.
|
|
13
13
|
*/
|
|
14
14
|
export declare function collectReferenceValues(lines: ReferenceLine[]): number[];
|
|
15
|
+
/** Fully-resolved badge presentation for a Form-A reference line. */
|
|
16
|
+
export interface ResolvedReferenceBadge {
|
|
17
|
+
position: "left" | "right";
|
|
18
|
+
/** Leading glyph, or "" for none. */
|
|
19
|
+
icon: string;
|
|
20
|
+
/** Whether the text label is shown. */
|
|
21
|
+
showText: boolean;
|
|
22
|
+
/** undefined → theme tooltipBg at render time. */
|
|
23
|
+
background: string | undefined;
|
|
24
|
+
/** undefined → the line color at render time. */
|
|
25
|
+
borderColor: string | undefined;
|
|
26
|
+
radius: number;
|
|
27
|
+
/** Show the pill at the value when in range (`badge`) vs only off-screen (legacy `offAxisBadge`). */
|
|
28
|
+
inRange: boolean;
|
|
29
|
+
/** Legacy `"word: value"` text format (off-axis badge) vs the `label`/value format. */
|
|
30
|
+
legacyText: boolean;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Resolves a Form-A reference line's badge presentation from the new `badge`
|
|
34
|
+
* config or the legacy `offAxisBadge` flag (the `badge` config wins). Returns
|
|
35
|
+
* null when neither is set. Pure — driven only by the line props.
|
|
36
|
+
*/
|
|
37
|
+
export declare function resolveReferenceBadge(rl: ReferenceLine): ResolvedReferenceBadge | null;
|
|
15
38
|
/**
|
|
16
39
|
* Where a Y value sits relative to the visible plot range:
|
|
17
40
|
* `"in"` (within [min, max]), `"above"` (greater than max), or `"below"`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"referenceLines.d.ts","sourceRoot":"","sources":["../../src/math/referenceLines.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,6EAA6E;AAC7E,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,YAAY,GAAG,WAAW,GAAG,MAAM,CAAC;AAE7E;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,aAAa,GAAG,iBAAiB,CAQtE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,CAgBvE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,IAAI,GAAG,OAAO,GAAG,OAAO,CAK1B"}
|
|
1
|
+
{"version":3,"file":"referenceLines.d.ts","sourceRoot":"","sources":["../../src/math/referenceLines.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,6EAA6E;AAC7E,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,YAAY,GAAG,WAAW,GAAG,MAAM,CAAC;AAE7E;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,aAAa,GAAG,iBAAiB,CAQtE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,CAgBvE;AAED,qEAAqE;AACrE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,QAAQ,EAAE,OAAO,CAAC;IAClB,kDAAkD;IAClD,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,iDAAiD;IACjD,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,qGAAqG;IACrG,OAAO,EAAE,OAAO,CAAC;IACjB,uFAAuF;IACvF,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,aAAa,GAChB,sBAAsB,GAAG,IAAI,CA4B/B;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,IAAI,GAAG,OAAO,GAAG,OAAO,CAK1B"}
|