@wavemaker/react-native-echarts 1.0.0-dev.5 → 1.0.0-dev.9

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 (184) hide show
  1. package/README.md +29 -3
  2. package/area/area-chart.d.ts +1 -1
  3. package/area/area-chart.d.ts.map +1 -1
  4. package/area/area-chart.js +63 -37
  5. package/area/area-chart.props.d.ts +4 -0
  6. package/area/area-chart.props.d.ts.map +1 -1
  7. package/area/index.d.ts +1 -1
  8. package/area/index.d.ts.map +1 -1
  9. package/axis.d.ts +26 -0
  10. package/axis.d.ts.map +1 -1
  11. package/axis.js +35 -0
  12. package/bubble/bubble-chart.d.ts.map +1 -1
  13. package/bubble/bubble-chart.js +59 -33
  14. package/candlestick/candlestick-chart.d.ts.map +1 -1
  15. package/candlestick/candlestick-chart.js +15 -8
  16. package/cartesian/tooltip/axis-tooltip-presets.d.ts +5 -0
  17. package/cartesian/tooltip/axis-tooltip-presets.d.ts.map +1 -0
  18. package/cartesian/tooltip/axis-tooltip-presets.js +46 -0
  19. package/cartesian/tooltip/axis-tooltip.types.d.ts +38 -0
  20. package/cartesian/tooltip/axis-tooltip.types.d.ts.map +1 -0
  21. package/cartesian/tooltip/axis-tooltip.types.js +4 -0
  22. package/cartesian/tooltip/axis-tooltip.utils.d.ts +10 -0
  23. package/cartesian/tooltip/axis-tooltip.utils.d.ts.map +1 -0
  24. package/cartesian/tooltip/axis-tooltip.utils.js +121 -0
  25. package/cartesian/tooltip/default-axis-tooltip.d.ts +9 -0
  26. package/cartesian/tooltip/default-axis-tooltip.d.ts.map +1 -0
  27. package/cartesian/tooltip/default-axis-tooltip.js +53 -0
  28. package/cartesian/tooltip/index.d.ts +7 -0
  29. package/cartesian/tooltip/index.d.ts.map +1 -0
  30. package/cartesian/tooltip/index.js +4 -0
  31. package/cartesian/tooltip/use-axis-tooltip.d.ts +38 -0
  32. package/cartesian/tooltip/use-axis-tooltip.d.ts.map +1 -0
  33. package/cartesian/tooltip/use-axis-tooltip.js +54 -0
  34. package/column/column-chart.d.ts.map +1 -1
  35. package/column/column-chart.js +86 -31
  36. package/geo/geo-chart.d.ts.map +1 -1
  37. package/geo/geo-chart.js +56 -24
  38. package/geo/geo-chart.props.d.ts +11 -5
  39. package/geo/geo-chart.props.d.ts.map +1 -1
  40. package/geo/index.d.ts +1 -0
  41. package/geo/index.d.ts.map +1 -1
  42. package/geo/index.js +1 -0
  43. package/geo/tooltip/default-geo-tooltip.d.ts +6 -0
  44. package/geo/tooltip/default-geo-tooltip.d.ts.map +1 -0
  45. package/geo/tooltip/default-geo-tooltip.js +47 -0
  46. package/geo/tooltip/geo-item-tooltip-presets.d.ts +5 -0
  47. package/geo/tooltip/geo-item-tooltip-presets.d.ts.map +1 -0
  48. package/geo/tooltip/geo-item-tooltip-presets.js +35 -0
  49. package/geo/tooltip/geo-item-tooltip.types.d.ts +19 -0
  50. package/geo/tooltip/geo-item-tooltip.types.d.ts.map +1 -0
  51. package/geo/tooltip/geo-item-tooltip.types.js +3 -0
  52. package/geo/tooltip/geo-item-tooltip.utils.d.ts +14 -0
  53. package/geo/tooltip/geo-item-tooltip.utils.d.ts.map +1 -0
  54. package/geo/tooltip/geo-item-tooltip.utils.js +220 -0
  55. package/geo/tooltip/index.d.ts +7 -0
  56. package/geo/tooltip/index.d.ts.map +1 -0
  57. package/geo/tooltip/index.js +4 -0
  58. package/geo/tooltip/use-geo-item-tooltip.d.ts +26 -0
  59. package/geo/tooltip/use-geo-item-tooltip.d.ts.map +1 -0
  60. package/geo/tooltip/use-geo-item-tooltip.js +59 -0
  61. package/geo/us-chart.js +1 -1
  62. package/geo/us-states.json +54 -0
  63. package/geo/world.json +1 -0
  64. package/index.d.ts +2 -0
  65. package/index.d.ts.map +1 -1
  66. package/index.js +2 -0
  67. package/line/index.d.ts +1 -1
  68. package/line/index.d.ts.map +1 -1
  69. package/line/line-chart.d.ts +1 -1
  70. package/line/line-chart.d.ts.map +1 -1
  71. package/line/line-chart.props.d.ts +5 -0
  72. package/line/line-chart.props.d.ts.map +1 -1
  73. package/package.json +1 -1
  74. package/pie/index.d.ts +1 -0
  75. package/pie/index.d.ts.map +1 -1
  76. package/pie/index.js +1 -0
  77. package/pie/pie-chart.d.ts.map +1 -1
  78. package/pie/pie-chart.js +59 -36
  79. package/pie/pie-chart.props.d.ts +12 -6
  80. package/pie/pie-chart.props.d.ts.map +1 -1
  81. package/pie/tooltip/default-pie-tooltip.d.ts +5 -0
  82. package/pie/tooltip/default-pie-tooltip.d.ts.map +1 -0
  83. package/pie/tooltip/default-pie-tooltip.js +57 -0
  84. package/pie/tooltip/index.d.ts +7 -0
  85. package/pie/tooltip/index.d.ts.map +1 -0
  86. package/pie/tooltip/index.js +4 -0
  87. package/pie/tooltip/pie-item-tooltip-presets.d.ts +5 -0
  88. package/pie/tooltip/pie-item-tooltip-presets.d.ts.map +1 -0
  89. package/pie/tooltip/pie-item-tooltip-presets.js +39 -0
  90. package/pie/tooltip/pie-item-tooltip.types.d.ts +28 -0
  91. package/pie/tooltip/pie-item-tooltip.types.d.ts.map +1 -0
  92. package/pie/tooltip/pie-item-tooltip.types.js +3 -0
  93. package/pie/tooltip/pie-item-tooltip.utils.d.ts +9 -0
  94. package/pie/tooltip/pie-item-tooltip.utils.d.ts.map +1 -0
  95. package/pie/tooltip/pie-item-tooltip.utils.js +139 -0
  96. package/pie/tooltip/use-pie-item-tooltip.d.ts +24 -0
  97. package/pie/tooltip/use-pie-item-tooltip.d.ts.map +1 -0
  98. package/pie/tooltip/use-pie-item-tooltip.js +45 -0
  99. package/props/cartesian.d.ts +43 -11
  100. package/props/cartesian.d.ts.map +1 -1
  101. package/radar/index.d.ts +1 -0
  102. package/radar/index.d.ts.map +1 -1
  103. package/radar/index.js +1 -0
  104. package/radar/radar-chart.d.ts.map +1 -1
  105. package/radar/radar-chart.js +52 -10
  106. package/radar/radar-chart.props.d.ts +13 -0
  107. package/radar/radar-chart.props.d.ts.map +1 -1
  108. package/radar/tooltip/default-radar-tooltip.d.ts +6 -0
  109. package/radar/tooltip/default-radar-tooltip.d.ts.map +1 -0
  110. package/radar/tooltip/default-radar-tooltip.js +47 -0
  111. package/radar/tooltip/index.d.ts +7 -0
  112. package/radar/tooltip/index.d.ts.map +1 -0
  113. package/radar/tooltip/index.js +4 -0
  114. package/radar/tooltip/radar-item-tooltip-presets.d.ts +5 -0
  115. package/radar/tooltip/radar-item-tooltip-presets.d.ts.map +1 -0
  116. package/radar/tooltip/radar-item-tooltip-presets.js +50 -0
  117. package/radar/tooltip/radar-item-tooltip.types.d.ts +28 -0
  118. package/radar/tooltip/radar-item-tooltip.types.d.ts.map +1 -0
  119. package/radar/tooltip/radar-item-tooltip.types.js +3 -0
  120. package/radar/tooltip/radar-item-tooltip.utils.d.ts +9 -0
  121. package/radar/tooltip/radar-item-tooltip.utils.d.ts.map +1 -0
  122. package/radar/tooltip/radar-item-tooltip.utils.js +77 -0
  123. package/radar/tooltip/use-radar-item-tooltip.d.ts +22 -0
  124. package/radar/tooltip/use-radar-item-tooltip.d.ts.map +1 -0
  125. package/radar/tooltip/use-radar-item-tooltip.js +43 -0
  126. package/radial/index.d.ts +1 -0
  127. package/radial/index.d.ts.map +1 -1
  128. package/radial/index.js +1 -0
  129. package/radial/radial-chart.d.ts.map +1 -1
  130. package/radial/radial-chart.js +42 -10
  131. package/radial/radial-chart.props.d.ts +14 -1
  132. package/radial/radial-chart.props.d.ts.map +1 -1
  133. package/radial/tooltip/default-radial-tooltip.d.ts +6 -0
  134. package/radial/tooltip/default-radial-tooltip.d.ts.map +1 -0
  135. package/radial/tooltip/default-radial-tooltip.js +52 -0
  136. package/radial/tooltip/index.d.ts +7 -0
  137. package/radial/tooltip/index.d.ts.map +1 -0
  138. package/radial/tooltip/index.js +4 -0
  139. package/radial/tooltip/radial-item-tooltip-presets.d.ts +5 -0
  140. package/radial/tooltip/radial-item-tooltip-presets.d.ts.map +1 -0
  141. package/radial/tooltip/radial-item-tooltip-presets.js +43 -0
  142. package/radial/tooltip/radial-item-tooltip.types.d.ts +23 -0
  143. package/radial/tooltip/radial-item-tooltip.types.d.ts.map +1 -0
  144. package/radial/tooltip/radial-item-tooltip.types.js +3 -0
  145. package/radial/tooltip/radial-item-tooltip.utils.d.ts +9 -0
  146. package/radial/tooltip/radial-item-tooltip.utils.d.ts.map +1 -0
  147. package/radial/tooltip/radial-item-tooltip.utils.js +122 -0
  148. package/radial/tooltip/use-radial-item-tooltip.d.ts +22 -0
  149. package/radial/tooltip/use-radial-item-tooltip.d.ts.map +1 -0
  150. package/radial/tooltip/use-radial-item-tooltip.js +43 -0
  151. package/scatter/index.d.ts +1 -0
  152. package/scatter/index.d.ts.map +1 -1
  153. package/scatter/index.js +1 -0
  154. package/scatter/scatter-chart.d.ts.map +1 -1
  155. package/scatter/scatter-chart.js +57 -20
  156. package/scatter/scatter-chart.props.d.ts +7 -1
  157. package/scatter/scatter-chart.props.d.ts.map +1 -1
  158. package/scatter/tooltip/default-scatter-tooltip.d.ts +8 -0
  159. package/scatter/tooltip/default-scatter-tooltip.d.ts.map +1 -0
  160. package/scatter/tooltip/default-scatter-tooltip.js +57 -0
  161. package/scatter/tooltip/index.d.ts +7 -0
  162. package/scatter/tooltip/index.d.ts.map +1 -0
  163. package/scatter/tooltip/index.js +4 -0
  164. package/scatter/tooltip/scatter-item-tooltip-presets.d.ts +5 -0
  165. package/scatter/tooltip/scatter-item-tooltip-presets.d.ts.map +1 -0
  166. package/scatter/tooltip/scatter-item-tooltip-presets.js +49 -0
  167. package/scatter/tooltip/scatter-item-tooltip.types.d.ts +22 -0
  168. package/scatter/tooltip/scatter-item-tooltip.types.d.ts.map +1 -0
  169. package/scatter/tooltip/scatter-item-tooltip.types.js +3 -0
  170. package/scatter/tooltip/scatter-item-tooltip.utils.d.ts +9 -0
  171. package/scatter/tooltip/scatter-item-tooltip.utils.d.ts.map +1 -0
  172. package/scatter/tooltip/scatter-item-tooltip.utils.js +83 -0
  173. package/scatter/tooltip/use-scatter-item-tooltip.d.ts +25 -0
  174. package/scatter/tooltip/use-scatter-item-tooltip.d.ts.map +1 -0
  175. package/scatter/tooltip/use-scatter-item-tooltip.js +46 -0
  176. package/tooltip/chart-pointer-tooltip-overlay.d.ts +11 -0
  177. package/tooltip/chart-pointer-tooltip-overlay.d.ts.map +1 -0
  178. package/tooltip/chart-pointer-tooltip-overlay.js +88 -0
  179. package/tooltip/chart-tooltip-preset-shells.d.ts +66 -0
  180. package/tooltip/chart-tooltip-preset-shells.d.ts.map +1 -0
  181. package/tooltip/chart-tooltip-preset-shells.js +409 -0
  182. package/tooltip/index.d.ts +7 -0
  183. package/tooltip/index.d.ts.map +1 -0
  184. package/tooltip/index.js +1 -0
@@ -0,0 +1,139 @@
1
+ function resolveDataIndexInside(data, evt) {
2
+ if (typeof evt?.dataIndexInside === 'number' && !Number.isNaN(evt.dataIndexInside)) {
3
+ return evt.dataIndexInside;
4
+ }
5
+ if (typeof evt?.dataIndex === 'number' && !Number.isNaN(evt.dataIndex)) {
6
+ const mapped = typeof data?.indexOfRawIndex === 'function' ? data.indexOfRawIndex(evt.dataIndex) : evt.dataIndex;
7
+ if (typeof mapped === 'number' && !Number.isNaN(mapped))
8
+ return mapped;
9
+ }
10
+ return null;
11
+ }
12
+ function pieSectorCenter(data, diInside) {
13
+ const layout = data.getItemLayout?.(diInside);
14
+ if (!layout || !Number.isFinite(layout.cx) || !Number.isFinite(layout.cy))
15
+ return null;
16
+ const cx = Number(layout.cx);
17
+ const cy = Number(layout.cy);
18
+ const r = Number(layout.r);
19
+ const r0 = Number(layout.r0 ?? 0);
20
+ const startAngle = Number(layout.startAngle);
21
+ const endAngle = Number(layout.endAngle);
22
+ if (!Number.isFinite(startAngle) || !Number.isFinite(endAngle))
23
+ return null;
24
+ const mid = (startAngle + endAngle) / 2;
25
+ const avgR = (r0 + r) / 2;
26
+ return {
27
+ x: cx + Math.cos(mid) * avgR,
28
+ y: cy + Math.sin(mid) * avgR,
29
+ };
30
+ }
31
+ function pointerFromEventOrSector(chart, evt, seriesModel, data, diInside) {
32
+ const ex = evt?.x;
33
+ const ey = evt?.y;
34
+ if (typeof ex === 'number' && typeof ey === 'number' && !Number.isNaN(ex) && !Number.isNaN(ey)) {
35
+ return { x: ex, y: ey };
36
+ }
37
+ return pieSectorCenter(data, diInside);
38
+ }
39
+ function sliceValueAt(data, diInside) {
40
+ try {
41
+ const dim = typeof data.mapDimension === 'function' ? data.mapDimension('value') : null;
42
+ if (dim != null) {
43
+ const v = data.get(dim, diInside);
44
+ const n = Number(v);
45
+ if (Number.isFinite(n))
46
+ return n;
47
+ }
48
+ }
49
+ catch {
50
+ /* ignore */
51
+ }
52
+ const v0 = data.get?.(0, diInside);
53
+ const n0 = Number(v0);
54
+ if (Number.isFinite(n0))
55
+ return n0;
56
+ try {
57
+ const n1 = Number(data.get?.('value', diInside));
58
+ if (Number.isFinite(n1))
59
+ return n1;
60
+ }
61
+ catch {
62
+ /* ignore */
63
+ }
64
+ return NaN;
65
+ }
66
+ function seriesValueTotal(data) {
67
+ const n = typeof data.count === 'function' ? data.count() : 0;
68
+ let total = 0;
69
+ for (let i = 0; i < n; i++) {
70
+ const v = sliceValueAt(data, i);
71
+ if (Number.isFinite(v))
72
+ total += v;
73
+ }
74
+ return total;
75
+ }
76
+ /**
77
+ * Build pie item tooltip params from an ECharts `showTip` payload and chart instance.
78
+ * Ignores axis-style payloads (`dataByCoordSys`).
79
+ */
80
+ export function pieItemParamsFromShowTip(chart, evt, ctx, themeSeries) {
81
+ if (!chart || !evt)
82
+ return null;
83
+ if (Array.isArray(evt.dataByCoordSys) && evt.dataByCoordSys.length > 0)
84
+ return null;
85
+ const si = evt.seriesIndex;
86
+ if (typeof si !== 'number' || si < 0)
87
+ return null;
88
+ const seriesModel = chart.getModel?.().getSeriesByIndex?.(si);
89
+ const seriesKind = seriesModel?.subType ?? seriesModel?.get?.('type');
90
+ if (!seriesModel || seriesKind !== 'pie')
91
+ return null;
92
+ const data = seriesModel.getData?.();
93
+ if (!data)
94
+ return null;
95
+ const diInside = resolveDataIndexInside(data, evt);
96
+ if (diInside == null || diInside < 0)
97
+ return null;
98
+ const pixel = pointerFromEventOrSector(chart, evt, seriesModel, data, diInside);
99
+ if (!pixel)
100
+ return null;
101
+ const ring = ctx.normalizedSeries[si];
102
+ const row = ring?.data?.[diInside];
103
+ if (!row)
104
+ return null;
105
+ const name = String(data.getName?.(diInside) ?? row.name ?? '');
106
+ const fromModel = sliceValueAt(data, diInside);
107
+ const value = Number.isFinite(fromModel) ? fromModel : Number(row.value);
108
+ const total = seriesValueTotal(data);
109
+ const percent = total > 0 ? (value / total) * 100 : 0;
110
+ let color;
111
+ try {
112
+ const style = data.getItemVisual?.(diInside, 'style');
113
+ const fill = style?.fill;
114
+ if (typeof fill === 'string' && fill !== '')
115
+ color = fill;
116
+ }
117
+ catch {
118
+ /* ignore */
119
+ }
120
+ if (color == null) {
121
+ const themeLen = Math.max(themeSeries.length, 1);
122
+ color = themeSeries[diInside % themeLen]?.color;
123
+ }
124
+ const ringNameRaw = seriesModel.get?.('name');
125
+ const ringName = typeof ringNameRaw === 'string' && ringNameRaw !== '' ? ringNameRaw : ring?.name != null && ring.name !== ''
126
+ ? String(ring.name)
127
+ : undefined;
128
+ return {
129
+ pointerX: pixel.x,
130
+ pointerY: pixel.y,
131
+ seriesIndex: si,
132
+ dataIndex: diInside,
133
+ name,
134
+ value,
135
+ percent,
136
+ ...(typeof color === 'string' ? { color } : {}),
137
+ ...(ringName != null ? { ringName } : {}),
138
+ };
139
+ }
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import type { PieItemTooltipContext, PieItemTooltipParams } from './pie-item-tooltip.types';
3
+ export interface UsePieItemTooltipOptions {
4
+ active: boolean;
5
+ renderTooltip: (params: PieItemTooltipParams) => React.ReactNode;
6
+ contextRef: React.RefObject<PieItemTooltipContext>;
7
+ themeSeriesRef: React.RefObject<Array<{
8
+ color: string;
9
+ }>>;
10
+ width: number;
11
+ height: number;
12
+ }
13
+ export interface UsePieItemTooltipResult {
14
+ attachPieItemTooltipListeners: (chart: {
15
+ on: (ev: string, fn: (...args: any[]) => void) => void;
16
+ off: (ev: string, fn: (...args: any[]) => void) => void;
17
+ }) => () => void;
18
+ renderPieTooltipOverlay: () => React.ReactNode;
19
+ }
20
+ /**
21
+ * Pie / donut item tooltip as React Native UI (`trigger: 'item'`).
22
+ */
23
+ export declare function usePieItemTooltip(options: UsePieItemTooltipOptions): UsePieItemTooltipResult;
24
+ //# sourceMappingURL=use-pie-item-tooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-pie-item-tooltip.d.ts","sourceRoot":"","sources":["../../../../../components/chart/pie/tooltip/use-pie-item-tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAEhE,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAG5F,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,KAAK,CAAC,SAAS,CAAC;IACjE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACnD,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,6BAA6B,EAAE,CAAC,KAAK,EAAE;QACrC,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC;QACvD,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC;KACzD,KAAK,MAAM,IAAI,CAAC;IACjB,uBAAuB,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;CAChD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,uBAAuB,CAiD5F"}
@@ -0,0 +1,45 @@
1
+ import React, { useCallback, useEffect, useState } from 'react';
2
+ import { ChartPointerTooltipOverlay } from '../../tooltip/chart-pointer-tooltip-overlay';
3
+ import { pieItemParamsFromShowTip } from './pie-item-tooltip.utils';
4
+ /**
5
+ * Pie / donut item tooltip as React Native UI (`trigger: 'item'`).
6
+ */
7
+ export function usePieItemTooltip(options) {
8
+ const { active, renderTooltip, contextRef, themeSeriesRef, width, height } = options;
9
+ const [params, setParams] = useState(null);
10
+ useEffect(() => {
11
+ if (!active)
12
+ setParams(null);
13
+ }, [active]);
14
+ const attachPieItemTooltipListeners = useCallback((chart) => {
15
+ if (!active)
16
+ return () => { };
17
+ const onShowTip = (evt) => {
18
+ const ctx = contextRef.current;
19
+ if (!ctx?.normalizedSeries?.length) {
20
+ setParams(null);
21
+ return;
22
+ }
23
+ const next = pieItemParamsFromShowTip(chart, evt, ctx, themeSeriesRef.current ?? []);
24
+ setParams(next);
25
+ };
26
+ const onHideTip = () => setParams(null);
27
+ chart.on('showTip', onShowTip);
28
+ chart.on('hideTip', onHideTip);
29
+ return () => {
30
+ chart.off('showTip', onShowTip);
31
+ chart.off('hideTip', onHideTip);
32
+ };
33
+ }, [active, contextRef, themeSeriesRef]);
34
+ const renderPieTooltipOverlay = useCallback(() => {
35
+ if (!active || params == null)
36
+ return null;
37
+ return (<ChartPointerTooltipOverlay width={width} height={height} pointerX={params.pointerX} pointerY={params.pointerY}>
38
+ {renderTooltip(params)}
39
+ </ChartPointerTooltipOverlay>);
40
+ }, [active, renderTooltip, params, width, height]);
41
+ return {
42
+ attachPieItemTooltipListeners,
43
+ renderPieTooltipOverlay,
44
+ };
45
+ }
@@ -1,3 +1,6 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { AxisTooltipParams } from '../cartesian/tooltip/axis-tooltip.types';
3
+ import type { ChartTooltipOption } from '../tooltip';
1
4
  import type { CommonChartProps } from './common';
2
5
  /**
3
6
  * Emitted when the user taps/clicks a series data point on Cartesian-based charts
@@ -40,23 +43,39 @@ export interface CartesianChartProps extends CommonChartProps {
40
43
  */
41
44
  boundaryGap?: boolean;
42
45
  /**
43
- * Custom X-axis tick values (numbers only). When provided, used as the x-axis data; labels are
44
- * generated using xAxisTickLabelFormatter. Otherwise each chart derives x-axis from data.
45
- * @default undefined
46
+ * X-axis minimum when set. Applies to the chart’s **X** axis (category or value, depending on the chart).
47
+ * For horizontal column/bar, the **value** (bar length) scale is on **X** — use `minX` / `maxX` / `intervalX` for that scale.
48
+ * When omitted, the minimum is derived from the data or chosen automatically.
46
49
  */
47
- xAxisTicks?: number[];
50
+ minX?: number;
48
51
  /**
49
- * Custom Y-axis tick positions (for value axis).
50
- * @default undefined
52
+ * X-axis maximum when set. See {@link minX} for layout notes. When omitted, the maximum is derived from the data or chosen automatically.
53
+ */
54
+ maxX?: number;
55
+ /**
56
+ * X-axis tick interval when set. See {@link minX} for layout notes. When omitted, the tick step is chosen automatically.
57
+ */
58
+ intervalX?: number;
59
+ /**
60
+ * Y-axis (value scale) minimum when set. Applies to the chart’s **Y** axis.
61
+ * When omitted, the minimum is derived from the data or chosen automatically.
62
+ */
63
+ minY?: number;
64
+ /**
65
+ * Y-axis (value scale) maximum when set. When omitted, the maximum is derived from the data or chosen automatically.
51
66
  */
52
- yAxisTicks?: number[];
67
+ maxY?: number;
68
+ /**
69
+ * Y-axis (value scale) tick interval when set. When omitted, the tick step is chosen automatically.
70
+ */
71
+ intervalY?: number;
53
72
  /**
54
73
  * Whether to show the X-axis line and labels.
55
74
  * @default true
56
75
  */
57
76
  showXAxis?: boolean;
58
77
  /**
59
- * Whether to show X-axis tick marks.
78
+ * Whether to show X-axis tick marks. Only applies when {@link showXAxis} is true.
60
79
  * @default true
61
80
  */
62
81
  showXAxisTicks?: boolean;
@@ -66,7 +85,7 @@ export interface CartesianChartProps extends CommonChartProps {
66
85
  */
67
86
  showYAxis?: boolean;
68
87
  /**
69
- * Whether to show Y-axis tick marks.
88
+ * Whether to show Y-axis tick marks. Only applies when {@link showYAxis} is true.
70
89
  * @default true
71
90
  */
72
91
  showYAxisTicks?: boolean;
@@ -100,10 +119,17 @@ export interface CartesianChartProps extends CommonChartProps {
100
119
  */
101
120
  showLegend?: boolean;
102
121
  /**
103
- * Whether to show the highlighter (emphasis) when interacting with the chart.
104
- * @default true
122
+ * Whether **emphasis** (hover highlight) is applied while the axis pointer / tooltip is near the series.
123
+ * Column and bar charts default this to `false`; area defaults to `true`.
105
124
  */
106
125
  showHighlighter?: boolean;
126
+ /**
127
+ * Built-in axis tooltip preset when `renderTooltip` is omitted (area, line, column, bar). Use `none` to hide the overlay.
128
+ * When `renderTooltip` is set, it replaces the preset body. The overlay is hidden only when `tooltip` is `none` and `renderTooltip` is omitted.
129
+ * Scatter and bubble use the same prop for **item** tooltips.
130
+ * @default 'card'
131
+ */
132
+ tooltip?: ChartTooltipOption;
107
133
  /**
108
134
  * Formatter for X-axis tick labels. (value, index?) => string
109
135
  */
@@ -116,5 +142,11 @@ export interface CartesianChartProps extends CommonChartProps {
116
142
  * Called when the user selects (taps/clicks) a data point on a series (when supported).
117
143
  */
118
144
  onSelect?: (event: CartesianChartSelectEvent) => void;
145
+ /**
146
+ * Overrides the default React Native axis tooltip body for charts that use the axis tooltip overlay (area, line, column, bar).
147
+ * Scatter and bubble charts use item tooltip `renderTooltip` on their own props instead.
148
+ * Takes precedence over {@link tooltip}.
149
+ */
150
+ renderTooltip?: (params: AxisTooltipParams) => ReactNode;
119
151
  }
120
152
  //# sourceMappingURL=cartesian.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cartesian.d.ts","sourceRoot":"","sources":["../../../../components/chart/props/cartesian.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,+DAA+D;IAC/D,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,yDAAyD;IACzD,IAAI,CAAC,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7E;;OAEG;IACH,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7E;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAC;CACvD"}
1
+ {"version":3,"file":"cartesian.d.ts","sourceRoot":"","sources":["../../../../components/chart/props/cartesian.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,+DAA+D;IAC/D,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,yDAAyD;IACzD,IAAI,CAAC,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B;;OAEG;IACH,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7E;;OAEG;IACH,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7E;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACtD;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,SAAS,CAAC;CAC1D"}
package/radar/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export { RadarChart } from './radar-chart';
2
2
  export type { RadarChartProps, RadarChartSelectEvent, RadarIndicator, RadarSeriesData, } from './radar-chart.props';
3
+ export * from './tooltip';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/chart/radar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EACV,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,eAAe,GAChB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/chart/radar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EACV,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,cAAc,WAAW,CAAC"}
package/radar/index.js CHANGED
@@ -1 +1,2 @@
1
1
  export { RadarChart } from './radar-chart';
2
+ export * from './tooltip';
@@ -1 +1 @@
1
- {"version":3,"file":"radar-chart.d.ts","sourceRoot":"","sources":["../../../../components/chart/radar/radar-chart.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EAIhB,MAAM,qBAAqB,CAAC;AAS7B,OAAO,KAAqC,MAAM,OAAO,CAAC;AAE1D,YAAY,EACV,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAkN7B,eAAO,MAAM,UAAU;;;;;;;CAErB,CAAC"}
1
+ {"version":3,"file":"radar-chart.d.ts","sourceRoot":"","sources":["../../../../components/chart/radar/radar-chart.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,eAAe,EAIhB,MAAM,qBAAqB,CAAC;AAW7B,OAAO,KAAqC,MAAM,OAAO,CAAC;AAG1D,YAAY,EACV,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAgQ7B,eAAO,MAAM,UAAU;;;;;;;CAErB,CAAC"}
@@ -1,10 +1,13 @@
1
1
  import { withResponsiveContainer } from '../chart-container';
2
2
  import { useChartTheme, withChartTheme } from '../chart-theme.context';
3
+ import { axisTooltipShowContentFlag } from '../cartesian/tooltip';
4
+ import { createRadarTooltipPreset, useRadarItemTooltip } from './tooltip';
3
5
  import { SkiaChart, SkiaRenderer } from '@wuba/react-native-echarts';
4
6
  import { RadarChart as EChartsRadarChart } from 'echarts/charts';
5
7
  import { GridComponent, LegendComponent, TooltipComponent, } from 'echarts/components';
6
8
  import * as echarts from 'echarts/core';
7
9
  import React, { useEffect, useMemo, useRef } from 'react';
10
+ import { View } from 'react-native';
8
11
  echarts.use([
9
12
  TooltipComponent,
10
13
  GridComponent,
@@ -27,17 +30,41 @@ function normalizeRadarSeries(data, indicatorCount) {
27
30
  value: item.value,
28
31
  }));
29
32
  }
30
- const ChartComponent = ({ indicators, data, width = 220, height = 350, symbol = 'none', symbolSize, showLegend = false, showHighlighter = true, showIndicatorLabels = true, showSplitLine = true, showAxisLine = true, onSelect, ...props }) => {
33
+ const ChartComponent = ({ indicators, data, width = 220, height = 350, symbol = 'none', symbolSize, showLegend = false, showHighlighter = true, showIndicatorLabels = true, showSplitLine = true, showAxisLine = true, tooltip = 'card', renderTooltip, onSelect, ...props }) => {
31
34
  const { theme } = useChartTheme(props.theme, props.colors);
32
35
  const chartRef = useRef(null);
33
36
  const onSelectRef = useRef(onSelect);
34
37
  onSelectRef.current = onSelect;
35
- const selectContextRef = useRef([]);
38
+ const radarContextRef = useRef({
39
+ indicators: [],
40
+ normalizedSeries: [],
41
+ });
42
+ const themeSeriesRef = useRef(theme.series);
43
+ themeSeriesRef.current = theme.series;
44
+ const tooltipOverlayActive = renderTooltip != null || tooltip !== 'none';
45
+ const renderTooltipFn = useMemo(() => {
46
+ if (renderTooltip != null)
47
+ return renderTooltip;
48
+ if (tooltip === 'none')
49
+ return () => null;
50
+ return createRadarTooltipPreset(tooltip);
51
+ }, [renderTooltip, tooltip]);
52
+ const { attachRadarItemTooltipListeners, renderRadarTooltipOverlay } = useRadarItemTooltip({
53
+ active: tooltipOverlayActive,
54
+ renderTooltip: renderTooltipFn,
55
+ contextRef: radarContextRef,
56
+ themeSeriesRef,
57
+ width,
58
+ height,
59
+ });
36
60
  const normalizedSeries = useMemo(() => {
37
61
  const count = indicators?.length ?? 0;
38
62
  return normalizeRadarSeries(data, count);
39
63
  }, [data, indicators?.length]);
40
- selectContextRef.current = normalizedSeries;
64
+ radarContextRef.current = {
65
+ indicators: (indicators ?? []).map((ind) => ({ name: ind.name })),
66
+ normalizedSeries,
67
+ };
41
68
  const indicatorMax = useMemo(() => {
42
69
  if (!indicators?.length)
43
70
  return [];
@@ -103,7 +130,11 @@ const ChartComponent = ({ indicators, data, width = 220, height = 350, symbol =
103
130
  lineStyle: { color: seriesColor, width: seriesLineWidth },
104
131
  areaStyle: { color: areaColor },
105
132
  emphasis: showHighlighter
106
- ? { focus: 'self', lineStyle: { width: seriesLineWidth + 1 }, areaStyle: { opacity: 0.8 } }
133
+ ? {
134
+ focus: 'none',
135
+ lineStyle: { width: seriesLineWidth + 1 },
136
+ areaStyle: { opacity: 0.8 },
137
+ }
107
138
  : { focus: 'none' },
108
139
  };
109
140
  }),
@@ -118,12 +149,16 @@ const ChartComponent = ({ indicators, data, width = 220, height = 350, symbol =
118
149
  backgroundColor: theme.legend.backgroundColor,
119
150
  }
120
151
  : undefined;
152
+ const tooltipConfig = tooltipOverlayActive
153
+ ? {
154
+ trigger: 'item',
155
+ ...axisTooltipShowContentFlag(true),
156
+ }
157
+ : { show: false };
121
158
  const config = {
122
159
  radar: radarConfig,
123
160
  series: [seriesConfig],
124
- tooltip: {
125
- trigger: 'item',
126
- },
161
+ tooltip: tooltipConfig,
127
162
  };
128
163
  if (legendConfig)
129
164
  config.legend = legendConfig;
@@ -140,9 +175,11 @@ const ChartComponent = ({ indicators, data, width = 220, height = 350, symbol =
140
175
  showIndicatorLabels,
141
176
  showSplitLine,
142
177
  showAxisLine,
178
+ tooltipOverlayActive,
143
179
  ]);
144
180
  useEffect(() => {
145
181
  let chart;
182
+ let detachRadarTooltip = () => { };
146
183
  if (chartRef.current) {
147
184
  try {
148
185
  chart = echarts.init(chartRef.current, 'light', {
@@ -150,6 +187,7 @@ const ChartComponent = ({ indicators, data, width = 220, height = 350, symbol =
150
187
  height,
151
188
  });
152
189
  chart.setOption(option);
190
+ detachRadarTooltip = attachRadarItemTooltipListeners(chart);
153
191
  const handleRadarClick = (params) => {
154
192
  const cb = onSelectRef.current;
155
193
  if (typeof cb !== 'function')
@@ -161,7 +199,7 @@ const ChartComponent = ({ indicators, data, width = 220, height = 350, symbol =
161
199
  const dataIndex = params.dataIndex;
162
200
  if (typeof dataIndex !== 'number' || dataIndex < 0)
163
201
  return;
164
- const row = selectContextRef.current[dataIndex];
202
+ const row = radarContextRef.current.normalizedSeries[dataIndex];
165
203
  if (!row)
166
204
  return;
167
205
  const event = {
@@ -179,6 +217,7 @@ const ChartComponent = ({ indicators, data, width = 220, height = 350, symbol =
179
217
  }
180
218
  }
181
219
  return () => {
220
+ detachRadarTooltip();
182
221
  if (chart) {
183
222
  try {
184
223
  chart.dispose();
@@ -188,8 +227,11 @@ const ChartComponent = ({ indicators, data, width = 220, height = 350, symbol =
188
227
  }
189
228
  }
190
229
  };
191
- }, [option, width, height]);
192
- return <SkiaChart ref={chartRef} useRNGH/>;
230
+ }, [option, width, height, attachRadarItemTooltipListeners]);
231
+ return (<View style={{ width, height, position: 'relative' }}>
232
+ <SkiaChart ref={chartRef} useRNGH/>
233
+ {renderRadarTooltipOverlay()}
234
+ </View>);
193
235
  };
194
236
  const RadarChartComponent = withResponsiveContainer(withChartTheme(ChartComponent));
195
237
  export const RadarChart = Object.assign(RadarChartComponent, {
@@ -1,4 +1,7 @@
1
1
  import type { CommonChartProps } from '../props/common';
2
+ import type { ChartTooltipOption } from '../tooltip';
3
+ import type { RadarItemTooltipParams } from './tooltip/radar-item-tooltip.types';
4
+ import type { ReactNode } from 'react';
2
5
  /** Emitted when the user taps/clicks a radar series (polygon). */
3
6
  export interface RadarChartSelectEvent {
4
7
  seriesIndex: number;
@@ -72,6 +75,16 @@ export interface RadarChartProps extends CommonChartProps {
72
75
  * @default true
73
76
  */
74
77
  showAxisLine?: boolean;
78
+ /**
79
+ * Built-in item tooltip preset when `renderTooltip` is omitted. Use `none` to hide the overlay.
80
+ * @default 'card'
81
+ */
82
+ tooltip?: ChartTooltipOption;
83
+ /**
84
+ * Overrides the default React Native item tooltip body (see {@link RadarItemTooltipParams}).
85
+ * Takes precedence over {@link tooltip}.
86
+ */
87
+ renderTooltip?: (params: RadarItemTooltipParams) => ReactNode;
75
88
  /**
76
89
  * Called when the user selects (taps/clicks) a radar series polygon.
77
90
  */
@@ -1 +1 @@
1
- {"version":3,"file":"radar-chart.props.d.ts","sourceRoot":"","sources":["../../../../components/chart/radar/radar-chart.props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,kEAAkE;AAClE,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GACvB,MAAM,EAAE,GACR,KAAK,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAAC;AAE9C;;;GAGG;AACH,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD;;;OAGG;IACH,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B;;OAEG;IACH,IAAI,EAAE,eAAe,CAAC;IACtB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;IACtG;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IACzE;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACnD"}
1
+ {"version":3,"file":"radar-chart.props.d.ts","sourceRoot":"","sources":["../../../../components/chart/radar/radar-chart.props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,kEAAkE;AAClE,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GACvB,MAAM,EAAE,GACR,KAAK,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAAC;AAE9C;;;GAGG;AACH,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD;;;OAGG;IACH,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B;;OAEG;IACH,IAAI,EAAE,eAAe,CAAC;IACtB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;IACtG;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IACzE;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,SAAS,CAAC;IAC9D;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACnD"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import type { ChartTheme } from '../../chart-theme.context';
3
+ import type { RadarItemTooltipParams } from './radar-item-tooltip.types';
4
+ /** Themed default radar item tooltip (React Native). */
5
+ export declare function createDefaultRadarTooltip(theme: Pick<ChartTheme, 'tooltip'>): (params: RadarItemTooltipParams) => React.ReactElement;
6
+ //# sourceMappingURL=default-radar-tooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-radar-tooltip.d.ts","sourceRoot":"","sources":["../../../../../components/chart/radar/tooltip/default-radar-tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEzE,wDAAwD;AACxD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,GACjC,CAAC,MAAM,EAAE,sBAAsB,KAAK,KAAK,CAAC,YAAY,CA+BxD"}
@@ -0,0 +1,47 @@
1
+ import React from 'react';
2
+ import { StyleSheet, Text, View } from 'react-native';
3
+ /** Themed default radar item tooltip (React Native). */
4
+ export function createDefaultRadarTooltip(theme) {
5
+ const t = theme.tooltip;
6
+ return function DefaultRadarTooltip(params) {
7
+ const { seriesName, dimensionValues, color } = params;
8
+ return (<View style={{
9
+ backgroundColor: t.backgroundColor,
10
+ borderColor: t.borderColor,
11
+ borderWidth: t.borderWidth,
12
+ borderRadius: t.borderRadius,
13
+ padding: t.padding,
14
+ }}>
15
+ <View style={{ flexDirection: 'row', alignItems: 'center', marginBottom: 6 }}>
16
+ {color != null && color !== '' ? (<View style={[styles.swatch, { backgroundColor: color }]}/>) : (<View style={styles.swatchPlaceholder}/>)}
17
+ <Text style={[styles.title, { color: t.labelColor }]}>{seriesName}</Text>
18
+ </View>
19
+ {dimensionValues.map((d) => (<Text key={d.indicatorName} style={[styles.line, { color: t.valueColor }]}>
20
+ <Text style={{ color: t.labelColor }}>{d.indicatorName}: </Text>
21
+ {Number.isFinite(d.value) ? String(d.value) : '—'}
22
+ </Text>))}
23
+ </View>);
24
+ };
25
+ }
26
+ const styles = StyleSheet.create({
27
+ title: {
28
+ fontWeight: '600',
29
+ fontSize: 13,
30
+ flex: 1,
31
+ },
32
+ line: {
33
+ fontSize: 12,
34
+ marginTop: 2,
35
+ },
36
+ swatch: {
37
+ width: 8,
38
+ height: 8,
39
+ borderRadius: 4,
40
+ marginRight: 6,
41
+ },
42
+ swatchPlaceholder: {
43
+ width: 8,
44
+ height: 8,
45
+ marginRight: 6,
46
+ },
47
+ });
@@ -0,0 +1,7 @@
1
+ export { createDefaultRadarTooltip } from './default-radar-tooltip';
2
+ export { createRadarTooltipPreset } from './radar-item-tooltip-presets';
3
+ export type { RadarItemTooltipContext, RadarItemTooltipDimension, RadarItemTooltipParams, } from './radar-item-tooltip.types';
4
+ export { radarItemParamsFromShowTip } from './radar-item-tooltip.utils';
5
+ export { useRadarItemTooltip } from './use-radar-item-tooltip';
6
+ export type { UseRadarItemTooltipOptions, UseRadarItemTooltipResult } from './use-radar-item-tooltip';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../components/chart/radar/tooltip/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,YAAY,EACV,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { createDefaultRadarTooltip } from './default-radar-tooltip';
2
+ export { createRadarTooltipPreset } from './radar-item-tooltip-presets';
3
+ export { radarItemParamsFromShowTip } from './radar-item-tooltip.utils';
4
+ export { useRadarItemTooltip } from './use-radar-item-tooltip';
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import type { ChartTooltipPreset } from '../../tooltip';
3
+ import type { RadarItemTooltipParams } from './radar-item-tooltip.types';
4
+ export declare function createRadarTooltipPreset(preset: ChartTooltipPreset): (params: RadarItemTooltipParams) => React.ReactElement;
5
+ //# sourceMappingURL=radar-item-tooltip-presets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radar-item-tooltip-presets.d.ts","sourceRoot":"","sources":["../../../../../components/chart/radar/tooltip/radar-item-tooltip-presets.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAOxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAqEzE,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,kBAAkB,GACzB,CAAC,MAAM,EAAE,sBAAsB,KAAK,KAAK,CAAC,YAAY,CAYxD"}