react-native-metrify 0.1.0-alpha.4 → 0.1.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +184 -1
  3. package/dist/cjs/core/index.js +1 -0
  4. package/dist/cjs/core/index.js.map +1 -1
  5. package/dist/cjs/core/utils/dataTransform.js +331 -0
  6. package/dist/cjs/core/utils/dataTransform.js.map +1 -0
  7. package/dist/cjs/widgets/AreaChart/AreaChart.js +17 -137
  8. package/dist/cjs/widgets/AreaChart/AreaChart.js.map +1 -1
  9. package/dist/cjs/widgets/BarChart/BarChart.js +11 -1
  10. package/dist/cjs/widgets/BarChart/BarChart.js.map +1 -1
  11. package/dist/cjs/widgets/BoxPlot/BoxPlot.js +12 -1
  12. package/dist/cjs/widgets/BoxPlot/BoxPlot.js.map +1 -1
  13. package/dist/cjs/widgets/BubbleChart/BubbleChart.js +31 -2
  14. package/dist/cjs/widgets/BubbleChart/BubbleChart.js.map +1 -1
  15. package/dist/cjs/widgets/CandlestickChart/CandlestickChart.js +11 -1
  16. package/dist/cjs/widgets/CandlestickChart/CandlestickChart.js.map +1 -1
  17. package/dist/cjs/widgets/FunnelChart/FunnelChart.js +11 -1
  18. package/dist/cjs/widgets/FunnelChart/FunnelChart.js.map +1 -1
  19. package/dist/cjs/widgets/GroupedBarChart/GroupedBarChart.js +12 -1
  20. package/dist/cjs/widgets/GroupedBarChart/GroupedBarChart.js.map +1 -1
  21. package/dist/cjs/widgets/Heatmap/Heatmap.js +14 -1
  22. package/dist/cjs/widgets/Heatmap/Heatmap.js.map +1 -1
  23. package/dist/cjs/widgets/Histogram/Histogram.js +12 -1
  24. package/dist/cjs/widgets/Histogram/Histogram.js.map +1 -1
  25. package/dist/cjs/widgets/HorizontalBarChart/HorizontalBarChart.js +11 -1
  26. package/dist/cjs/widgets/HorizontalBarChart/HorizontalBarChart.js.map +1 -1
  27. package/dist/cjs/widgets/LineChart/LineChart.js +40 -6
  28. package/dist/cjs/widgets/LineChart/LineChart.js.map +1 -1
  29. package/dist/cjs/widgets/MultiLineSparkline/MultiLineSparkline.js +11 -1
  30. package/dist/cjs/widgets/MultiLineSparkline/MultiLineSparkline.js.map +1 -1
  31. package/dist/cjs/widgets/PieChart/PieChart.js +12 -1
  32. package/dist/cjs/widgets/PieChart/PieChart.js.map +1 -1
  33. package/dist/cjs/widgets/RadarChart/RadarChart.js +18 -1
  34. package/dist/cjs/widgets/RadarChart/RadarChart.js.map +1 -1
  35. package/dist/cjs/widgets/SankeyDiagram/SankeyDiagram.js +11 -1
  36. package/dist/cjs/widgets/SankeyDiagram/SankeyDiagram.js.map +1 -1
  37. package/dist/cjs/widgets/ScatterPlot/ScatterPlot.js +32 -3
  38. package/dist/cjs/widgets/ScatterPlot/ScatterPlot.js.map +1 -1
  39. package/dist/cjs/widgets/Sparkline/Sparkline.js +11 -1
  40. package/dist/cjs/widgets/Sparkline/Sparkline.js.map +1 -1
  41. package/dist/cjs/widgets/StackedBarChart/StackedBarChart.js +12 -1
  42. package/dist/cjs/widgets/StackedBarChart/StackedBarChart.js.map +1 -1
  43. package/dist/cjs/widgets/SunburstChart/SunburstChart.js +11 -1
  44. package/dist/cjs/widgets/SunburstChart/SunburstChart.js.map +1 -1
  45. package/dist/cjs/widgets/Treemap/Treemap.js +11 -1
  46. package/dist/cjs/widgets/Treemap/Treemap.js.map +1 -1
  47. package/dist/cjs/widgets/WaterfallChart/WaterfallChart.js +11 -1
  48. package/dist/cjs/widgets/WaterfallChart/WaterfallChart.js.map +1 -1
  49. package/dist/core/index.d.ts +1 -0
  50. package/dist/core/index.d.ts.map +1 -1
  51. package/dist/core/utils/dataTransform.d.ts +209 -0
  52. package/dist/core/utils/dataTransform.d.ts.map +1 -0
  53. package/dist/esm/core/index.js +1 -0
  54. package/dist/esm/core/index.js.map +1 -1
  55. package/dist/esm/core/utils/dataTransform.js +309 -0
  56. package/dist/esm/core/utils/dataTransform.js.map +1 -0
  57. package/dist/esm/widgets/AreaChart/AreaChart.js +18 -138
  58. package/dist/esm/widgets/AreaChart/AreaChart.js.map +1 -1
  59. package/dist/esm/widgets/BarChart/BarChart.js +11 -1
  60. package/dist/esm/widgets/BarChart/BarChart.js.map +1 -1
  61. package/dist/esm/widgets/BoxPlot/BoxPlot.js +12 -1
  62. package/dist/esm/widgets/BoxPlot/BoxPlot.js.map +1 -1
  63. package/dist/esm/widgets/BubbleChart/BubbleChart.js +31 -2
  64. package/dist/esm/widgets/BubbleChart/BubbleChart.js.map +1 -1
  65. package/dist/esm/widgets/CandlestickChart/CandlestickChart.js +11 -1
  66. package/dist/esm/widgets/CandlestickChart/CandlestickChart.js.map +1 -1
  67. package/dist/esm/widgets/FunnelChart/FunnelChart.js +11 -1
  68. package/dist/esm/widgets/FunnelChart/FunnelChart.js.map +1 -1
  69. package/dist/esm/widgets/GroupedBarChart/GroupedBarChart.js +12 -1
  70. package/dist/esm/widgets/GroupedBarChart/GroupedBarChart.js.map +1 -1
  71. package/dist/esm/widgets/Heatmap/Heatmap.js +14 -1
  72. package/dist/esm/widgets/Heatmap/Heatmap.js.map +1 -1
  73. package/dist/esm/widgets/Histogram/Histogram.js +12 -1
  74. package/dist/esm/widgets/Histogram/Histogram.js.map +1 -1
  75. package/dist/esm/widgets/HorizontalBarChart/HorizontalBarChart.js +11 -1
  76. package/dist/esm/widgets/HorizontalBarChart/HorizontalBarChart.js.map +1 -1
  77. package/dist/esm/widgets/LineChart/LineChart.js +42 -8
  78. package/dist/esm/widgets/LineChart/LineChart.js.map +1 -1
  79. package/dist/esm/widgets/MultiLineSparkline/MultiLineSparkline.js +11 -1
  80. package/dist/esm/widgets/MultiLineSparkline/MultiLineSparkline.js.map +1 -1
  81. package/dist/esm/widgets/PieChart/PieChart.js +12 -1
  82. package/dist/esm/widgets/PieChart/PieChart.js.map +1 -1
  83. package/dist/esm/widgets/RadarChart/RadarChart.js +18 -1
  84. package/dist/esm/widgets/RadarChart/RadarChart.js.map +1 -1
  85. package/dist/esm/widgets/SankeyDiagram/SankeyDiagram.js +11 -1
  86. package/dist/esm/widgets/SankeyDiagram/SankeyDiagram.js.map +1 -1
  87. package/dist/esm/widgets/ScatterPlot/ScatterPlot.js +32 -3
  88. package/dist/esm/widgets/ScatterPlot/ScatterPlot.js.map +1 -1
  89. package/dist/esm/widgets/Sparkline/Sparkline.js +11 -1
  90. package/dist/esm/widgets/Sparkline/Sparkline.js.map +1 -1
  91. package/dist/esm/widgets/StackedBarChart/StackedBarChart.js +12 -1
  92. package/dist/esm/widgets/StackedBarChart/StackedBarChart.js.map +1 -1
  93. package/dist/esm/widgets/SunburstChart/SunburstChart.js +11 -1
  94. package/dist/esm/widgets/SunburstChart/SunburstChart.js.map +1 -1
  95. package/dist/esm/widgets/Treemap/Treemap.js +11 -1
  96. package/dist/esm/widgets/Treemap/Treemap.js.map +1 -1
  97. package/dist/esm/widgets/WaterfallChart/WaterfallChart.js +11 -1
  98. package/dist/esm/widgets/WaterfallChart/WaterfallChart.js.map +1 -1
  99. package/dist/widgets/AreaChart/AreaChart.d.ts +14 -3
  100. package/dist/widgets/AreaChart/AreaChart.d.ts.map +1 -1
  101. package/dist/widgets/AreaChart/types.d.ts +8 -26
  102. package/dist/widgets/AreaChart/types.d.ts.map +1 -1
  103. package/dist/widgets/BarChart/BarChart.d.ts.map +1 -1
  104. package/dist/widgets/BarChart/types.d.ts +32 -5
  105. package/dist/widgets/BarChart/types.d.ts.map +1 -1
  106. package/dist/widgets/BoxPlot/BoxPlot.d.ts.map +1 -1
  107. package/dist/widgets/BoxPlot/types.d.ts +38 -5
  108. package/dist/widgets/BoxPlot/types.d.ts.map +1 -1
  109. package/dist/widgets/BubbleChart/BubbleChart.d.ts.map +1 -1
  110. package/dist/widgets/BubbleChart/types.d.ts +35 -5
  111. package/dist/widgets/BubbleChart/types.d.ts.map +1 -1
  112. package/dist/widgets/CandlestickChart/CandlestickChart.d.ts.map +1 -1
  113. package/dist/widgets/CandlestickChart/types.d.ts +38 -2
  114. package/dist/widgets/CandlestickChart/types.d.ts.map +1 -1
  115. package/dist/widgets/FunnelChart/FunnelChart.d.ts.map +1 -1
  116. package/dist/widgets/FunnelChart/types.d.ts +29 -5
  117. package/dist/widgets/FunnelChart/types.d.ts.map +1 -1
  118. package/dist/widgets/Gauge/types.d.ts +2 -2
  119. package/dist/widgets/Gauge/types.d.ts.map +1 -1
  120. package/dist/widgets/GroupedBarChart/GroupedBarChart.d.ts.map +1 -1
  121. package/dist/widgets/GroupedBarChart/types.d.ts +34 -5
  122. package/dist/widgets/GroupedBarChart/types.d.ts.map +1 -1
  123. package/dist/widgets/Heatmap/Heatmap.d.ts.map +1 -1
  124. package/dist/widgets/Heatmap/types.d.ts +32 -5
  125. package/dist/widgets/Heatmap/types.d.ts.map +1 -1
  126. package/dist/widgets/Histogram/Histogram.d.ts.map +1 -1
  127. package/dist/widgets/Histogram/types.d.ts +27 -5
  128. package/dist/widgets/Histogram/types.d.ts.map +1 -1
  129. package/dist/widgets/HorizontalBarChart/HorizontalBarChart.d.ts.map +1 -1
  130. package/dist/widgets/HorizontalBarChart/types.d.ts +30 -5
  131. package/dist/widgets/HorizontalBarChart/types.d.ts.map +1 -1
  132. package/dist/widgets/KPI/types.d.ts +2 -2
  133. package/dist/widgets/KPI/types.d.ts.map +1 -1
  134. package/dist/widgets/LineChart/LineChart.d.ts.map +1 -1
  135. package/dist/widgets/LineChart/types.d.ts +41 -2
  136. package/dist/widgets/LineChart/types.d.ts.map +1 -1
  137. package/dist/widgets/MultiLineSparkline/MultiLineSparkline.d.ts.map +1 -1
  138. package/dist/widgets/MultiLineSparkline/types.d.ts +28 -5
  139. package/dist/widgets/MultiLineSparkline/types.d.ts.map +1 -1
  140. package/dist/widgets/PieChart/PieChart.d.ts.map +1 -1
  141. package/dist/widgets/PieChart/types.d.ts +31 -5
  142. package/dist/widgets/PieChart/types.d.ts.map +1 -1
  143. package/dist/widgets/Progress/types.d.ts +2 -2
  144. package/dist/widgets/Progress/types.d.ts.map +1 -1
  145. package/dist/widgets/RadarChart/RadarChart.d.ts.map +1 -1
  146. package/dist/widgets/RadarChart/types.d.ts +32 -5
  147. package/dist/widgets/RadarChart/types.d.ts.map +1 -1
  148. package/dist/widgets/SankeyDiagram/SankeyDiagram.d.ts.map +1 -1
  149. package/dist/widgets/SankeyDiagram/types.d.ts +32 -5
  150. package/dist/widgets/SankeyDiagram/types.d.ts.map +1 -1
  151. package/dist/widgets/ScatterPlot/ScatterPlot.d.ts.map +1 -1
  152. package/dist/widgets/ScatterPlot/types.d.ts +32 -5
  153. package/dist/widgets/ScatterPlot/types.d.ts.map +1 -1
  154. package/dist/widgets/Sparkline/Sparkline.d.ts.map +1 -1
  155. package/dist/widgets/Sparkline/types.d.ts +24 -5
  156. package/dist/widgets/Sparkline/types.d.ts.map +1 -1
  157. package/dist/widgets/StackedBarChart/StackedBarChart.d.ts.map +1 -1
  158. package/dist/widgets/StackedBarChart/types.d.ts +33 -5
  159. package/dist/widgets/StackedBarChart/types.d.ts.map +1 -1
  160. package/dist/widgets/SunburstChart/SunburstChart.d.ts.map +1 -1
  161. package/dist/widgets/SunburstChart/types.d.ts +30 -5
  162. package/dist/widgets/SunburstChart/types.d.ts.map +1 -1
  163. package/dist/widgets/Treemap/Treemap.d.ts.map +1 -1
  164. package/dist/widgets/Treemap/types.d.ts +31 -5
  165. package/dist/widgets/Treemap/types.d.ts.map +1 -1
  166. package/dist/widgets/WaterfallChart/WaterfallChart.d.ts.map +1 -1
  167. package/dist/widgets/WaterfallChart/types.d.ts +32 -5
  168. package/dist/widgets/WaterfallChart/types.d.ts.map +1 -1
  169. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,41 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [0.1.0-beta.1] - 2026-01-23
6
+
7
+ **🎉 Beta Release - Significant API Improvements**
8
+
9
+ This release includes major improvements and consolidations. Moving to beta indicates the API is stabilizing.
10
+
11
+ ### 🚀 New Features
12
+ - **LineChart**: Added `filled` prop to create area charts (replaces AreaChart)
13
+ - **LineChart**: Added `showGradient` prop for beautiful gradient fills when `filled={true}`
14
+ - **ScatterPlot**: Added X-axis labels and grid lines for better data visualization
15
+ - **BubbleChart**: Added X-axis labels and grid lines for better data visualization
16
+
17
+ ### 🐛 Bug Fixes
18
+ - **LineChart**: Fixed duplicate X-axis labels when using multiple `dataKeys`
19
+ - **ScatterPlot**: Now shows meaningful X-axis metrics instead of just dots
20
+ - **BubbleChart**: Better visual differentiation from ScatterPlot
21
+
22
+ ### ⚠️ Deprecations
23
+ - **AreaChart**: Now deprecated in favor of `LineChart` with `filled={true}`
24
+ - AreaChart still works (backward compatible) but is now just a wrapper around LineChart
25
+ - Migration: Replace `<AreaChart ... />` with `<LineChart ... filled={true} />`
26
+
27
+ ### 📚 Documentation
28
+ - Updated README.md with LineChart area chart examples
29
+ - Updated API_REFERENCE.md with new props and deprecation notices
30
+ - Updated SIMPLE_API_GUIDE.md with consolidated LineChart/AreaChart usage
31
+ - Added migration examples for AreaChart → LineChart
32
+
33
+ ### 🔧 Technical Improvements
34
+ - Reduced code duplication (~200 lines) by consolidating AreaChart into LineChart
35
+ - Improved TypeScript types - AreaChart now uses LineChart types directly
36
+ - Better axis rendering with proper X-axis support across scatter-based charts
37
+
38
+ ---
39
+
5
40
  ## [0.1.0-alpha.4] - 2026-01-22
6
41
 
7
42
  ### Fixed
package/README.md CHANGED
@@ -80,6 +80,68 @@ export default function App() {
80
80
 
81
81
  ### 2. Use any chart component
82
82
 
83
+ #### Simple API (Recommended)
84
+
85
+ ```tsx
86
+ import { LineChart, AreaChart, BarChart } from 'react-native-metrify';
87
+ import { View } from 'react-native';
88
+
89
+ // Your data - just a simple array of objects!
90
+ const data = [
91
+ { name: 'Jan', sales: 4000, expenses: 2400 },
92
+ { name: 'Feb', sales: 3000, expenses: 1398 },
93
+ { name: 'Mar', sales: 2000, expenses: 9800 },
94
+ { name: 'Apr', sales: 2780, expenses: 3908 },
95
+ { name: 'May', sales: 1890, expenses: 4800 },
96
+ { name: 'Jun', sales: 2390, expenses: 3800 },
97
+ ];
98
+
99
+ export default function Dashboard() {
100
+ return (
101
+ <View>
102
+ {/* LineChart - Just specify data and keys! */}
103
+ <LineChart
104
+ data={data}
105
+ xKey="name"
106
+ dataKeys={['sales', 'expenses']}
107
+ colors={['#82ca9d', '#ff7c7c']}
108
+ labels={['Sales', 'Expenses']}
109
+ width={350}
110
+ height={250}
111
+ showGrid
112
+ showLegend
113
+ />
114
+
115
+ {/* LineChart as Area Chart - Just add filled prop! */}
116
+ <LineChart
117
+ data={data}
118
+ xKey="name"
119
+ dataKeys={['revenue']}
120
+ colors={['#8884d8']}
121
+ width={350}
122
+ height={250}
123
+ filled={true} // Makes it an area chart!
124
+ showGradient={true} // Beautiful gradient fill
125
+ />
126
+
127
+ {/* BarChart - Single value per item */}
128
+ <BarChart
129
+ data={data}
130
+ xKey="name"
131
+ dataKey="sales"
132
+ width={350}
133
+ height={250}
134
+ showValues
135
+ />
136
+ </View>
137
+ );
138
+ }
139
+ ```
140
+
141
+ #### Advanced API (Full Control)
142
+
143
+ For more control, you can still use the original API:
144
+
83
145
  ```tsx
84
146
  import { KPI, LineChart, Gauge } from 'react-native-metrify';
85
147
  import { View } from 'react-native';
@@ -202,7 +264,7 @@ export default function Dashboard() {
202
264
 
203
265
  **Bar Charts:** BarChart, HorizontalBarChart, StackedBarChart, GroupedBarChart, WaterfallChart, Histogram
204
266
 
205
- **Line & Area:** LineChart, AreaChart, MultiLineSparkline
267
+ **Line & Area:** LineChart (with area support), MultiLineSparkline, ~~AreaChart~~ (deprecated, use LineChart with `filled={true}`)
206
268
 
207
269
  **Distribution:** PieChart, FunnelChart, BoxPlot
208
270
 
@@ -210,6 +272,104 @@ export default function Dashboard() {
210
272
 
211
273
  **Hierarchical:** Treemap, SunburstChart, SankeyDiagram
212
274
 
275
+ ## 💡 Simple API (Data-Driven)
276
+
277
+ We've made it super easy to use charts! Inspired by Recharts, you can now pass your data directly without manual transformation.
278
+
279
+ ### Before vs After
280
+
281
+ **❌ Old Way (Complex):**
282
+ ```tsx
283
+ // Had to manually transform your data
284
+ const chartData = {
285
+ series: [
286
+ {
287
+ data: data.map(d => ({ x: d.month, y: d.sales })),
288
+ color: '#82ca9d',
289
+ label: 'Sales'
290
+ },
291
+ {
292
+ data: data.map(d => ({ x: d.month, y: d.expenses })),
293
+ color: '#ff7c7c',
294
+ label: 'Expenses'
295
+ }
296
+ ]
297
+ };
298
+
299
+ <LineChart data={chartData} width={350} height={250} />
300
+ ```
301
+
302
+ **✅ New Way (Simple):**
303
+ ```tsx
304
+ // Just pass your data and specify the keys!
305
+ <LineChart
306
+ data={data}
307
+ xKey="month"
308
+ dataKeys={['sales', 'expenses']}
309
+ colors={['#82ca9d', '#ff7c7c']}
310
+ labels={['Sales', 'Expenses']}
311
+ width={350}
312
+ height={250}
313
+ />
314
+ ```
315
+
316
+ ### Supported Charts
317
+
318
+ The Simple API is available for **ALL** chart types:
319
+
320
+ **Line & Area:** LineChart, AreaChart
321
+ **Bar Charts:** BarChart, GroupedBarChart, StackedBarChart, HorizontalBarChart
322
+ **Pie & Distribution:** PieChart, FunnelChart
323
+ **Scatter:** ScatterPlot, BubbleChart
324
+ **Multi-Axis:** RadarChart
325
+ **Statistical:** Heatmap, BoxPlot, Histogram
326
+ **Financial:** WaterfallChart, CandlestickChart
327
+
328
+ ### Quick Examples
329
+
330
+ ```tsx
331
+ // LineChart - Multiple series
332
+ <LineChart data={data} xKey="month" dataKeys={['sales', 'expenses']} />
333
+
334
+ // LineChart as Area Chart - Just add filled prop
335
+ <LineChart data={data} xKey="month" dataKeys={['revenue']} filled={true} showGradient />
336
+
337
+ // AreaChart still works (deprecated, uses LineChart internally)
338
+ <AreaChart data={data} xKey="month" dataKeys={['revenue']} />
339
+
340
+ // BarChart - Single value
341
+ <BarChart data={data} xKey="category" dataKey="revenue" />
342
+
343
+ // PieChart - Segments
344
+ <PieChart data={data} labelKey="category" valueKey="amount" />
345
+
346
+ // ScatterPlot - X/Y coordinates
347
+ <ScatterPlot data={data} xKey="x" yKey="y" />
348
+
349
+ // RadarChart - Multi-axis comparison
350
+ <RadarChart data={data} categoryKey="skill" dataKeys={['you', 'teamAvg']} />
351
+
352
+ // Heatmap - Grid visualization
353
+ <Heatmap data={data} xKey="day" yKey="hour" valueKey="activity" />
354
+
355
+ // And 15+ more charts!
356
+ ```
357
+
358
+ ### Full Documentation
359
+
360
+ 📖 **[Complete Simple API Reference →](./SIMPLE_API_REFERENCE.md)**
361
+
362
+ See all chart types with detailed examples in `SIMPLE_API_REFERENCE.md`
363
+
364
+ ### Benefits
365
+
366
+ ✓ **60% less code** - No manual data transformation needed
367
+ ✓ **Works with ALL charts** - Consistent API across 20+ chart types
368
+ ✓ **Familiar API** - Similar to Recharts and other popular charting libraries
369
+ ✓ **Backward compatible** - Old API still works perfectly
370
+ ✓ **Automatic colors** - Uses a nice default palette if you don't specify colors
371
+ ✓ **TypeScript support** - Full type safety with autocomplete
372
+
213
373
  ## 🎨 Theming
214
374
 
215
375
  ### Using Built-in Themes
@@ -283,7 +443,30 @@ interface BaseWidgetProps {
283
443
 
284
444
  ### LineChart Component
285
445
 
446
+ **New in v0.1.0-beta.1:** LineChart now supports area charts with the `filled` prop!
447
+
286
448
  ```tsx
449
+ // Regular Line Chart
450
+ <LineChart
451
+ data={data}
452
+ xKey="month"
453
+ dataKeys={['sales', 'expenses']}
454
+ width={350}
455
+ height={250}
456
+ />
457
+
458
+ // Area Chart (filled line chart)
459
+ <LineChart
460
+ data={data}
461
+ xKey="month"
462
+ dataKeys={['revenue']}
463
+ width={350}
464
+ height={250}
465
+ filled={true} // Enable area fill
466
+ showGradient={true} // Show gradient (optional)
467
+ />
468
+
469
+ // Legacy API still works
287
470
  <LineChart
288
471
  data={{
289
472
  series: [
@@ -33,4 +33,5 @@ __exportStar(require("./types"), exports);
33
33
  // Utils
34
34
  __exportStar(require("./utils/time"), exports);
35
35
  __exportStar(require("./utils/responsive"), exports);
36
+ __exportStar(require("./utils/dataTransform"), exports);
36
37
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;AAEH,iBAAiB;AACjB,yCAAuB;AAEvB,mBAAmB;AACnB,2CAAyB;AAEzB,eAAe;AACf,0CAAwB;AAExB,oBAAoB;AACpB,8CAA4B;AAE5B,QAAQ;AACR,0CAAwB;AAExB,QAAQ;AACR,0CAAwB;AAExB,QAAQ;AACR,+CAA6B;AAC7B,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;AAEH,iBAAiB;AACjB,yCAAuB;AAEvB,mBAAmB;AACnB,2CAAyB;AAEzB,eAAe;AACf,0CAAwB;AAExB,oBAAoB;AACpB,8CAA4B;AAE5B,QAAQ;AACR,0CAAwB;AAExB,QAAQ;AACR,0CAAwB;AAExB,QAAQ;AACR,+CAA6B;AAC7B,qDAAmC;AACnC,wDAAsC"}
@@ -0,0 +1,331 @@
1
+ "use strict";
2
+ /**
3
+ * Data transformation utilities for converting simple data arrays
4
+ * into the internal format used by widgets
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.DEFAULT_COLORS = void 0;
8
+ exports.isSimpleDataFormat = isSimpleDataFormat;
9
+ exports.transformToSeriesData = transformToSeriesData;
10
+ exports.transformToBarData = transformToBarData;
11
+ exports.transformToPieData = transformToPieData;
12
+ exports.transformToScatterData = transformToScatterData;
13
+ exports.transformToGroupedBarData = transformToGroupedBarData;
14
+ exports.transformToStackedBarData = transformToStackedBarData;
15
+ exports.transformToRadarData = transformToRadarData;
16
+ exports.transformToHeatmapData = transformToHeatmapData;
17
+ exports.transformToBoxPlotData = transformToBoxPlotData;
18
+ exports.transformToHistogramData = transformToHistogramData;
19
+ exports.transformToWaterfallData = transformToWaterfallData;
20
+ exports.transformToCandlestickData = transformToCandlestickData;
21
+ exports.transformToFunnelData = transformToFunnelData;
22
+ exports.transformToSparklineData = transformToSparklineData;
23
+ exports.transformToMultiSparklineData = transformToMultiSparklineData;
24
+ exports.transformToTreemapData = transformToTreemapData;
25
+ exports.transformToSunburstData = transformToSunburstData;
26
+ exports.transformToSankeyData = transformToSankeyData;
27
+ /**
28
+ * Default color palette for charts
29
+ */
30
+ exports.DEFAULT_COLORS = [
31
+ '#8884d8',
32
+ '#82ca9d',
33
+ '#ffc658',
34
+ '#ff7c7c',
35
+ '#8dd1e1',
36
+ '#a4de6c',
37
+ '#d0ed57',
38
+ '#ffa07a',
39
+ '#ba68c8',
40
+ '#4db6ac',
41
+ ];
42
+ /**
43
+ * Check if props use the new simple API format
44
+ */
45
+ function isSimpleDataFormat(props) {
46
+ return (props.data &&
47
+ Array.isArray(props.data) &&
48
+ props.data.length > 0 &&
49
+ typeof props.data[0] === 'object');
50
+ }
51
+ /**
52
+ * Transform simple data format to series format for LineChart/AreaChart
53
+ */
54
+ function transformToSeriesData(data, options) {
55
+ const { xKey, dataKeys, colors, labels } = options;
56
+ const series = dataKeys.map((key, index) => {
57
+ const seriesData = data.map((item) => ({
58
+ x: item[xKey],
59
+ y: typeof item[key] === 'number' ? item[key] : 0,
60
+ }));
61
+ return {
62
+ data: seriesData,
63
+ color: colors?.[index] || exports.DEFAULT_COLORS[index % exports.DEFAULT_COLORS.length],
64
+ label: labels?.[index] || key,
65
+ };
66
+ });
67
+ return { series };
68
+ }
69
+ /**
70
+ * Transform simple data format to bar chart format
71
+ */
72
+ function transformToBarData(data, xKey, dataKey, colors) {
73
+ return {
74
+ data: data.map((item, index) => ({
75
+ value: typeof item[dataKey] === 'number' ? item[dataKey] : 0,
76
+ label: String(item[xKey] ?? ''),
77
+ color: colors?.[index] || exports.DEFAULT_COLORS[index % exports.DEFAULT_COLORS.length],
78
+ })),
79
+ };
80
+ }
81
+ /**
82
+ * Transform simple data format to pie chart format
83
+ */
84
+ function transformToPieData(data, labelKey, valueKey, colors) {
85
+ return {
86
+ data: data.map((item, index) => ({
87
+ value: typeof item[valueKey] === 'number' ? item[valueKey] : 0,
88
+ label: String(item[labelKey] ?? ''),
89
+ color: colors?.[index] || exports.DEFAULT_COLORS[index % exports.DEFAULT_COLORS.length],
90
+ })),
91
+ };
92
+ }
93
+ /**
94
+ * Transform simple data format to scatter/bubble chart format
95
+ */
96
+ function transformToScatterData(data, xKey, yKey, sizeKey, colors, labels) {
97
+ return {
98
+ data: data.map((item, index) => ({
99
+ x: typeof item[xKey] === 'number' ? item[xKey] : 0,
100
+ y: typeof item[yKey] === 'number' ? item[yKey] : 0,
101
+ size: sizeKey && typeof item[sizeKey] === 'number' ? item[sizeKey] : 10,
102
+ label: labels?.[index] || String(item[xKey] ?? ''),
103
+ color: colors?.[index] || exports.DEFAULT_COLORS[index % exports.DEFAULT_COLORS.length],
104
+ })),
105
+ };
106
+ }
107
+ /**
108
+ * Transform simple data format to grouped bar chart format
109
+ */
110
+ function transformToGroupedBarData(data, categoryKey, dataKeys, colors, labels) {
111
+ const groups = data.map((item) => ({
112
+ category: String(item[categoryKey] ?? ''),
113
+ values: dataKeys.map((key, index) => ({
114
+ value: typeof item[key] === 'number' ? item[key] : 0,
115
+ label: labels?.[index] || key,
116
+ color: colors?.[index] || exports.DEFAULT_COLORS[index % exports.DEFAULT_COLORS.length],
117
+ })),
118
+ }));
119
+ return { groups };
120
+ }
121
+ /**
122
+ * Transform simple data format to stacked bar chart format
123
+ */
124
+ function transformToStackedBarData(data, categoryKey, dataKeys, colors, labels) {
125
+ const stacks = data.map((item) => ({
126
+ category: String(item[categoryKey] ?? ''),
127
+ segments: dataKeys.map((key, index) => ({
128
+ value: typeof item[key] === 'number' ? item[key] : 0,
129
+ label: labels?.[index] || key,
130
+ color: colors?.[index] || exports.DEFAULT_COLORS[index % exports.DEFAULT_COLORS.length],
131
+ })),
132
+ }));
133
+ return { stacks };
134
+ }
135
+ /**
136
+ * Transform simple data format to radar chart format
137
+ */
138
+ function transformToRadarData(data, categoryKey, dataKeys, colors, labels) {
139
+ const series = dataKeys.map((key, index) => ({
140
+ data: data.map((item) => ({
141
+ category: String(item[categoryKey] ?? ''),
142
+ value: typeof item[key] === 'number' ? item[key] : 0,
143
+ })),
144
+ color: colors?.[index] || exports.DEFAULT_COLORS[index % exports.DEFAULT_COLORS.length],
145
+ label: labels?.[index] || key,
146
+ }));
147
+ return { series };
148
+ }
149
+ /**
150
+ * Transform simple data format to heatmap format
151
+ */
152
+ function transformToHeatmapData(data, xKey, yKey, valueKey) {
153
+ return {
154
+ data: data.map((item) => ({
155
+ x: String(item[xKey] ?? ''),
156
+ y: String(item[yKey] ?? ''),
157
+ value: typeof item[valueKey] === 'number' ? item[valueKey] : 0,
158
+ })),
159
+ };
160
+ }
161
+ /**
162
+ * Transform simple data format to box plot format
163
+ */
164
+ function transformToBoxPlotData(data, labelKey, minKey, q1Key, medianKey, q3Key, maxKey, colors) {
165
+ return {
166
+ data: data.map((item, index) => ({
167
+ label: String(item[labelKey] ?? ''),
168
+ min: typeof item[minKey] === 'number' ? item[minKey] : 0,
169
+ q1: typeof item[q1Key] === 'number' ? item[q1Key] : 0,
170
+ median: typeof item[medianKey] === 'number' ? item[medianKey] : 0,
171
+ q3: typeof item[q3Key] === 'number' ? item[q3Key] : 0,
172
+ max: typeof item[maxKey] === 'number' ? item[maxKey] : 0,
173
+ color: colors?.[index] || exports.DEFAULT_COLORS[index % exports.DEFAULT_COLORS.length],
174
+ })),
175
+ };
176
+ }
177
+ /**
178
+ * Transform simple data format to histogram format
179
+ */
180
+ function transformToHistogramData(data, valueKey, bins) {
181
+ const values = data
182
+ .map((item) => (typeof item[valueKey] === 'number' ? item[valueKey] : 0))
183
+ .filter((v) => !isNaN(v));
184
+ return { values, bins };
185
+ }
186
+ /**
187
+ * Transform simple data format to waterfall chart format
188
+ */
189
+ function transformToWaterfallData(data, labelKey, valueKey, colors) {
190
+ return {
191
+ data: data.map((item, index) => ({
192
+ label: String(item[labelKey] ?? ''),
193
+ value: typeof item[valueKey] === 'number' ? item[valueKey] : 0,
194
+ color: colors?.[index] || exports.DEFAULT_COLORS[index % exports.DEFAULT_COLORS.length],
195
+ })),
196
+ };
197
+ }
198
+ /**
199
+ * Transform simple data format to candlestick chart format
200
+ */
201
+ function transformToCandlestickData(data, dateKey, openKey, highKey, lowKey, closeKey) {
202
+ return {
203
+ data: data.map((item) => ({
204
+ date: item[dateKey],
205
+ open: typeof item[openKey] === 'number' ? item[openKey] : 0,
206
+ high: typeof item[highKey] === 'number' ? item[highKey] : 0,
207
+ low: typeof item[lowKey] === 'number' ? item[lowKey] : 0,
208
+ close: typeof item[closeKey] === 'number' ? item[closeKey] : 0,
209
+ })),
210
+ };
211
+ }
212
+ /**
213
+ * Transform simple data format to funnel chart format
214
+ */
215
+ function transformToFunnelData(data, labelKey, valueKey, colors) {
216
+ return {
217
+ stages: data.map((item, index) => ({
218
+ label: String(item[labelKey] ?? ''),
219
+ value: typeof item[valueKey] === 'number' ? item[valueKey] : 0,
220
+ color: colors?.[index] || exports.DEFAULT_COLORS[index % exports.DEFAULT_COLORS.length],
221
+ })),
222
+ };
223
+ }
224
+ /**
225
+ * Transform simple data format to sparkline format
226
+ */
227
+ function transformToSparklineData(data, valueKey) {
228
+ const values = data
229
+ .map((item) => (typeof item[valueKey] === 'number' ? item[valueKey] : 0))
230
+ .filter((v) => !isNaN(v));
231
+ return { data: values };
232
+ }
233
+ /**
234
+ * Transform simple data format to multi-line sparkline format
235
+ */
236
+ function transformToMultiSparklineData(data, dataKeys, colors, labels) {
237
+ const series = dataKeys.map((key, index) => ({
238
+ data: data.map((item) => (typeof item[key] === 'number' ? item[key] : 0)),
239
+ color: colors?.[index] || exports.DEFAULT_COLORS[index % exports.DEFAULT_COLORS.length],
240
+ label: labels?.[index] || key,
241
+ }));
242
+ return { series };
243
+ }
244
+ /**
245
+ * Transform simple data format to treemap format
246
+ */
247
+ function transformToTreemapData(data, labelKey, valueKey, parentKey, colors) {
248
+ // If no parentKey, all items are at root level
249
+ if (!parentKey) {
250
+ const nodes = data.map((item, index) => ({
251
+ label: String(item[labelKey] ?? ''),
252
+ value: typeof item[valueKey] === 'number' ? item[valueKey] : 0,
253
+ color: colors?.[index] || exports.DEFAULT_COLORS[index % exports.DEFAULT_COLORS.length],
254
+ }));
255
+ return { data: nodes };
256
+ }
257
+ // Build hierarchical structure if parentKey is provided
258
+ const nodeMap = new Map();
259
+ const rootNodes = [];
260
+ // First pass: create all nodes
261
+ data.forEach((item, index) => {
262
+ const label = String(item[labelKey] ?? '');
263
+ const node = {
264
+ label,
265
+ value: typeof item[valueKey] === 'number' ? item[valueKey] : 0,
266
+ color: colors?.[index] || exports.DEFAULT_COLORS[index % exports.DEFAULT_COLORS.length],
267
+ children: [],
268
+ };
269
+ nodeMap.set(label, node);
270
+ });
271
+ // Second pass: build hierarchy
272
+ data.forEach((item) => {
273
+ const label = String(item[labelKey] ?? '');
274
+ const parent = item[parentKey];
275
+ const node = nodeMap.get(label);
276
+ if (parent && nodeMap.has(String(parent))) {
277
+ const parentNode = nodeMap.get(String(parent));
278
+ parentNode.children.push(node);
279
+ }
280
+ else {
281
+ rootNodes.push(node);
282
+ }
283
+ });
284
+ // Clean up empty children arrays
285
+ const cleanNode = (node) => {
286
+ if (node.children && node.children.length === 0) {
287
+ delete node.children;
288
+ }
289
+ else if (node.children) {
290
+ node.children.forEach(cleanNode);
291
+ }
292
+ return node;
293
+ };
294
+ rootNodes.forEach(cleanNode);
295
+ return { data: rootNodes };
296
+ }
297
+ /**
298
+ * Transform simple data format to sunburst chart format
299
+ */
300
+ function transformToSunburstData(data, labelKey, valueKey, parentKey, colors) {
301
+ // Reuse treemap transformation as the data structure is the same
302
+ return transformToTreemapData(data, labelKey, valueKey, parentKey, colors);
303
+ }
304
+ /**
305
+ * Transform simple data format to sankey diagram format
306
+ */
307
+ function transformToSankeyData(data, sourceKey, targetKey, valueKey, colors) {
308
+ // Extract unique nodes
309
+ const nodeSet = new Set();
310
+ data.forEach((item) => {
311
+ const source = String(item[sourceKey] ?? '');
312
+ const target = String(item[targetKey] ?? '');
313
+ if (source)
314
+ nodeSet.add(source);
315
+ if (target)
316
+ nodeSet.add(target);
317
+ });
318
+ const nodes = Array.from(nodeSet).map((id) => ({
319
+ id,
320
+ label: id,
321
+ }));
322
+ // Create links
323
+ const links = data.map((item, index) => ({
324
+ source: String(item[sourceKey] ?? ''),
325
+ target: String(item[targetKey] ?? ''),
326
+ value: typeof item[valueKey] === 'number' ? item[valueKey] : 0,
327
+ color: colors?.[index] || exports.DEFAULT_COLORS[index % exports.DEFAULT_COLORS.length],
328
+ }));
329
+ return { nodes, links };
330
+ }
331
+ //# sourceMappingURL=dataTransform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataTransform.js","sourceRoot":"","sources":["../../../../src/core/utils/dataTransform.ts"],"names":[],"mappings":"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"}