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.
- package/CHANGELOG.md +35 -0
- package/README.md +184 -1
- package/dist/cjs/core/index.js +1 -0
- package/dist/cjs/core/index.js.map +1 -1
- package/dist/cjs/core/utils/dataTransform.js +331 -0
- package/dist/cjs/core/utils/dataTransform.js.map +1 -0
- package/dist/cjs/widgets/AreaChart/AreaChart.js +17 -137
- package/dist/cjs/widgets/AreaChart/AreaChart.js.map +1 -1
- package/dist/cjs/widgets/BarChart/BarChart.js +11 -1
- package/dist/cjs/widgets/BarChart/BarChart.js.map +1 -1
- package/dist/cjs/widgets/BoxPlot/BoxPlot.js +12 -1
- package/dist/cjs/widgets/BoxPlot/BoxPlot.js.map +1 -1
- package/dist/cjs/widgets/BubbleChart/BubbleChart.js +31 -2
- package/dist/cjs/widgets/BubbleChart/BubbleChart.js.map +1 -1
- package/dist/cjs/widgets/CandlestickChart/CandlestickChart.js +11 -1
- package/dist/cjs/widgets/CandlestickChart/CandlestickChart.js.map +1 -1
- package/dist/cjs/widgets/FunnelChart/FunnelChart.js +11 -1
- package/dist/cjs/widgets/FunnelChart/FunnelChart.js.map +1 -1
- package/dist/cjs/widgets/GroupedBarChart/GroupedBarChart.js +12 -1
- package/dist/cjs/widgets/GroupedBarChart/GroupedBarChart.js.map +1 -1
- package/dist/cjs/widgets/Heatmap/Heatmap.js +14 -1
- package/dist/cjs/widgets/Heatmap/Heatmap.js.map +1 -1
- package/dist/cjs/widgets/Histogram/Histogram.js +12 -1
- package/dist/cjs/widgets/Histogram/Histogram.js.map +1 -1
- package/dist/cjs/widgets/HorizontalBarChart/HorizontalBarChart.js +11 -1
- package/dist/cjs/widgets/HorizontalBarChart/HorizontalBarChart.js.map +1 -1
- package/dist/cjs/widgets/LineChart/LineChart.js +40 -6
- package/dist/cjs/widgets/LineChart/LineChart.js.map +1 -1
- package/dist/cjs/widgets/MultiLineSparkline/MultiLineSparkline.js +11 -1
- package/dist/cjs/widgets/MultiLineSparkline/MultiLineSparkline.js.map +1 -1
- package/dist/cjs/widgets/PieChart/PieChart.js +12 -1
- package/dist/cjs/widgets/PieChart/PieChart.js.map +1 -1
- package/dist/cjs/widgets/RadarChart/RadarChart.js +18 -1
- package/dist/cjs/widgets/RadarChart/RadarChart.js.map +1 -1
- package/dist/cjs/widgets/SankeyDiagram/SankeyDiagram.js +11 -1
- package/dist/cjs/widgets/SankeyDiagram/SankeyDiagram.js.map +1 -1
- package/dist/cjs/widgets/ScatterPlot/ScatterPlot.js +32 -3
- package/dist/cjs/widgets/ScatterPlot/ScatterPlot.js.map +1 -1
- package/dist/cjs/widgets/Sparkline/Sparkline.js +11 -1
- package/dist/cjs/widgets/Sparkline/Sparkline.js.map +1 -1
- package/dist/cjs/widgets/StackedBarChart/StackedBarChart.js +12 -1
- package/dist/cjs/widgets/StackedBarChart/StackedBarChart.js.map +1 -1
- package/dist/cjs/widgets/SunburstChart/SunburstChart.js +11 -1
- package/dist/cjs/widgets/SunburstChart/SunburstChart.js.map +1 -1
- package/dist/cjs/widgets/Treemap/Treemap.js +11 -1
- package/dist/cjs/widgets/Treemap/Treemap.js.map +1 -1
- package/dist/cjs/widgets/WaterfallChart/WaterfallChart.js +11 -1
- package/dist/cjs/widgets/WaterfallChart/WaterfallChart.js.map +1 -1
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/utils/dataTransform.d.ts +209 -0
- package/dist/core/utils/dataTransform.d.ts.map +1 -0
- package/dist/esm/core/index.js +1 -0
- package/dist/esm/core/index.js.map +1 -1
- package/dist/esm/core/utils/dataTransform.js +309 -0
- package/dist/esm/core/utils/dataTransform.js.map +1 -0
- package/dist/esm/widgets/AreaChart/AreaChart.js +18 -138
- package/dist/esm/widgets/AreaChart/AreaChart.js.map +1 -1
- package/dist/esm/widgets/BarChart/BarChart.js +11 -1
- package/dist/esm/widgets/BarChart/BarChart.js.map +1 -1
- package/dist/esm/widgets/BoxPlot/BoxPlot.js +12 -1
- package/dist/esm/widgets/BoxPlot/BoxPlot.js.map +1 -1
- package/dist/esm/widgets/BubbleChart/BubbleChart.js +31 -2
- package/dist/esm/widgets/BubbleChart/BubbleChart.js.map +1 -1
- package/dist/esm/widgets/CandlestickChart/CandlestickChart.js +11 -1
- package/dist/esm/widgets/CandlestickChart/CandlestickChart.js.map +1 -1
- package/dist/esm/widgets/FunnelChart/FunnelChart.js +11 -1
- package/dist/esm/widgets/FunnelChart/FunnelChart.js.map +1 -1
- package/dist/esm/widgets/GroupedBarChart/GroupedBarChart.js +12 -1
- package/dist/esm/widgets/GroupedBarChart/GroupedBarChart.js.map +1 -1
- package/dist/esm/widgets/Heatmap/Heatmap.js +14 -1
- package/dist/esm/widgets/Heatmap/Heatmap.js.map +1 -1
- package/dist/esm/widgets/Histogram/Histogram.js +12 -1
- package/dist/esm/widgets/Histogram/Histogram.js.map +1 -1
- package/dist/esm/widgets/HorizontalBarChart/HorizontalBarChart.js +11 -1
- package/dist/esm/widgets/HorizontalBarChart/HorizontalBarChart.js.map +1 -1
- package/dist/esm/widgets/LineChart/LineChart.js +42 -8
- package/dist/esm/widgets/LineChart/LineChart.js.map +1 -1
- package/dist/esm/widgets/MultiLineSparkline/MultiLineSparkline.js +11 -1
- package/dist/esm/widgets/MultiLineSparkline/MultiLineSparkline.js.map +1 -1
- package/dist/esm/widgets/PieChart/PieChart.js +12 -1
- package/dist/esm/widgets/PieChart/PieChart.js.map +1 -1
- package/dist/esm/widgets/RadarChart/RadarChart.js +18 -1
- package/dist/esm/widgets/RadarChart/RadarChart.js.map +1 -1
- package/dist/esm/widgets/SankeyDiagram/SankeyDiagram.js +11 -1
- package/dist/esm/widgets/SankeyDiagram/SankeyDiagram.js.map +1 -1
- package/dist/esm/widgets/ScatterPlot/ScatterPlot.js +32 -3
- package/dist/esm/widgets/ScatterPlot/ScatterPlot.js.map +1 -1
- package/dist/esm/widgets/Sparkline/Sparkline.js +11 -1
- package/dist/esm/widgets/Sparkline/Sparkline.js.map +1 -1
- package/dist/esm/widgets/StackedBarChart/StackedBarChart.js +12 -1
- package/dist/esm/widgets/StackedBarChart/StackedBarChart.js.map +1 -1
- package/dist/esm/widgets/SunburstChart/SunburstChart.js +11 -1
- package/dist/esm/widgets/SunburstChart/SunburstChart.js.map +1 -1
- package/dist/esm/widgets/Treemap/Treemap.js +11 -1
- package/dist/esm/widgets/Treemap/Treemap.js.map +1 -1
- package/dist/esm/widgets/WaterfallChart/WaterfallChart.js +11 -1
- package/dist/esm/widgets/WaterfallChart/WaterfallChart.js.map +1 -1
- package/dist/widgets/AreaChart/AreaChart.d.ts +14 -3
- package/dist/widgets/AreaChart/AreaChart.d.ts.map +1 -1
- package/dist/widgets/AreaChart/types.d.ts +8 -26
- package/dist/widgets/AreaChart/types.d.ts.map +1 -1
- package/dist/widgets/BarChart/BarChart.d.ts.map +1 -1
- package/dist/widgets/BarChart/types.d.ts +32 -5
- package/dist/widgets/BarChart/types.d.ts.map +1 -1
- package/dist/widgets/BoxPlot/BoxPlot.d.ts.map +1 -1
- package/dist/widgets/BoxPlot/types.d.ts +38 -5
- package/dist/widgets/BoxPlot/types.d.ts.map +1 -1
- package/dist/widgets/BubbleChart/BubbleChart.d.ts.map +1 -1
- package/dist/widgets/BubbleChart/types.d.ts +35 -5
- package/dist/widgets/BubbleChart/types.d.ts.map +1 -1
- package/dist/widgets/CandlestickChart/CandlestickChart.d.ts.map +1 -1
- package/dist/widgets/CandlestickChart/types.d.ts +38 -2
- package/dist/widgets/CandlestickChart/types.d.ts.map +1 -1
- package/dist/widgets/FunnelChart/FunnelChart.d.ts.map +1 -1
- package/dist/widgets/FunnelChart/types.d.ts +29 -5
- package/dist/widgets/FunnelChart/types.d.ts.map +1 -1
- package/dist/widgets/Gauge/types.d.ts +2 -2
- package/dist/widgets/Gauge/types.d.ts.map +1 -1
- package/dist/widgets/GroupedBarChart/GroupedBarChart.d.ts.map +1 -1
- package/dist/widgets/GroupedBarChart/types.d.ts +34 -5
- package/dist/widgets/GroupedBarChart/types.d.ts.map +1 -1
- package/dist/widgets/Heatmap/Heatmap.d.ts.map +1 -1
- package/dist/widgets/Heatmap/types.d.ts +32 -5
- package/dist/widgets/Heatmap/types.d.ts.map +1 -1
- package/dist/widgets/Histogram/Histogram.d.ts.map +1 -1
- package/dist/widgets/Histogram/types.d.ts +27 -5
- package/dist/widgets/Histogram/types.d.ts.map +1 -1
- package/dist/widgets/HorizontalBarChart/HorizontalBarChart.d.ts.map +1 -1
- package/dist/widgets/HorizontalBarChart/types.d.ts +30 -5
- package/dist/widgets/HorizontalBarChart/types.d.ts.map +1 -1
- package/dist/widgets/KPI/types.d.ts +2 -2
- package/dist/widgets/KPI/types.d.ts.map +1 -1
- package/dist/widgets/LineChart/LineChart.d.ts.map +1 -1
- package/dist/widgets/LineChart/types.d.ts +41 -2
- package/dist/widgets/LineChart/types.d.ts.map +1 -1
- package/dist/widgets/MultiLineSparkline/MultiLineSparkline.d.ts.map +1 -1
- package/dist/widgets/MultiLineSparkline/types.d.ts +28 -5
- package/dist/widgets/MultiLineSparkline/types.d.ts.map +1 -1
- package/dist/widgets/PieChart/PieChart.d.ts.map +1 -1
- package/dist/widgets/PieChart/types.d.ts +31 -5
- package/dist/widgets/PieChart/types.d.ts.map +1 -1
- package/dist/widgets/Progress/types.d.ts +2 -2
- package/dist/widgets/Progress/types.d.ts.map +1 -1
- package/dist/widgets/RadarChart/RadarChart.d.ts.map +1 -1
- package/dist/widgets/RadarChart/types.d.ts +32 -5
- package/dist/widgets/RadarChart/types.d.ts.map +1 -1
- package/dist/widgets/SankeyDiagram/SankeyDiagram.d.ts.map +1 -1
- package/dist/widgets/SankeyDiagram/types.d.ts +32 -5
- package/dist/widgets/SankeyDiagram/types.d.ts.map +1 -1
- package/dist/widgets/ScatterPlot/ScatterPlot.d.ts.map +1 -1
- package/dist/widgets/ScatterPlot/types.d.ts +32 -5
- package/dist/widgets/ScatterPlot/types.d.ts.map +1 -1
- package/dist/widgets/Sparkline/Sparkline.d.ts.map +1 -1
- package/dist/widgets/Sparkline/types.d.ts +24 -5
- package/dist/widgets/Sparkline/types.d.ts.map +1 -1
- package/dist/widgets/StackedBarChart/StackedBarChart.d.ts.map +1 -1
- package/dist/widgets/StackedBarChart/types.d.ts +33 -5
- package/dist/widgets/StackedBarChart/types.d.ts.map +1 -1
- package/dist/widgets/SunburstChart/SunburstChart.d.ts.map +1 -1
- package/dist/widgets/SunburstChart/types.d.ts +30 -5
- package/dist/widgets/SunburstChart/types.d.ts.map +1 -1
- package/dist/widgets/Treemap/Treemap.d.ts.map +1 -1
- package/dist/widgets/Treemap/types.d.ts +31 -5
- package/dist/widgets/Treemap/types.d.ts.map +1 -1
- package/dist/widgets/WaterfallChart/WaterfallChart.d.ts.map +1 -1
- package/dist/widgets/WaterfallChart/types.d.ts +32 -5
- package/dist/widgets/WaterfallChart/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Data transformation utilities for converting simple data arrays
|
|
3
|
+
* into the internal format used by widgets
|
|
4
|
+
*/
|
|
5
|
+
export interface DataTransformOptions {
|
|
6
|
+
xKey: string;
|
|
7
|
+
dataKeys: string[];
|
|
8
|
+
colors?: string[];
|
|
9
|
+
labels?: string[];
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Default color palette for charts
|
|
13
|
+
*/
|
|
14
|
+
export declare const DEFAULT_COLORS: string[];
|
|
15
|
+
/**
|
|
16
|
+
* Check if props use the new simple API format
|
|
17
|
+
*/
|
|
18
|
+
export declare function isSimpleDataFormat(props: any): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Transform simple data format to series format for LineChart/AreaChart
|
|
21
|
+
*/
|
|
22
|
+
export declare function transformToSeriesData(data: Record<string, any>[], options: DataTransformOptions): {
|
|
23
|
+
series: {
|
|
24
|
+
data: {
|
|
25
|
+
x: any;
|
|
26
|
+
y: number;
|
|
27
|
+
}[];
|
|
28
|
+
color: string;
|
|
29
|
+
label: string;
|
|
30
|
+
}[];
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Transform simple data format to bar chart format
|
|
34
|
+
*/
|
|
35
|
+
export declare function transformToBarData(data: Record<string, any>[], xKey: string, dataKey: string, colors?: string[]): {
|
|
36
|
+
data: {
|
|
37
|
+
value: number;
|
|
38
|
+
label: string;
|
|
39
|
+
color: string;
|
|
40
|
+
}[];
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Transform simple data format to pie chart format
|
|
44
|
+
*/
|
|
45
|
+
export declare function transformToPieData(data: Record<string, any>[], labelKey: string, valueKey: string, colors?: string[]): {
|
|
46
|
+
data: {
|
|
47
|
+
value: number;
|
|
48
|
+
label: string;
|
|
49
|
+
color: string;
|
|
50
|
+
}[];
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Transform simple data format to scatter/bubble chart format
|
|
54
|
+
*/
|
|
55
|
+
export declare function transformToScatterData(data: Record<string, any>[], xKey: string, yKey: string, sizeKey?: string, colors?: string[], labels?: string[]): {
|
|
56
|
+
data: {
|
|
57
|
+
x: number;
|
|
58
|
+
y: number;
|
|
59
|
+
size: number;
|
|
60
|
+
label: string;
|
|
61
|
+
color: string;
|
|
62
|
+
}[];
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Transform simple data format to grouped bar chart format
|
|
66
|
+
*/
|
|
67
|
+
export declare function transformToGroupedBarData(data: Record<string, any>[], categoryKey: string, dataKeys: string[], colors?: string[], labels?: string[]): {
|
|
68
|
+
groups: {
|
|
69
|
+
category: string;
|
|
70
|
+
values: {
|
|
71
|
+
value: number;
|
|
72
|
+
label: string;
|
|
73
|
+
color: string;
|
|
74
|
+
}[];
|
|
75
|
+
}[];
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Transform simple data format to stacked bar chart format
|
|
79
|
+
*/
|
|
80
|
+
export declare function transformToStackedBarData(data: Record<string, any>[], categoryKey: string, dataKeys: string[], colors?: string[], labels?: string[]): {
|
|
81
|
+
stacks: {
|
|
82
|
+
category: string;
|
|
83
|
+
segments: {
|
|
84
|
+
value: number;
|
|
85
|
+
label: string;
|
|
86
|
+
color: string;
|
|
87
|
+
}[];
|
|
88
|
+
}[];
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Transform simple data format to radar chart format
|
|
92
|
+
*/
|
|
93
|
+
export declare function transformToRadarData(data: Record<string, any>[], categoryKey: string, dataKeys: string[], colors?: string[], labels?: string[]): {
|
|
94
|
+
series: {
|
|
95
|
+
data: {
|
|
96
|
+
category: string;
|
|
97
|
+
value: number;
|
|
98
|
+
}[];
|
|
99
|
+
color: string;
|
|
100
|
+
label: string;
|
|
101
|
+
}[];
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* Transform simple data format to heatmap format
|
|
105
|
+
*/
|
|
106
|
+
export declare function transformToHeatmapData(data: Record<string, any>[], xKey: string, yKey: string, valueKey: string): {
|
|
107
|
+
data: {
|
|
108
|
+
x: string;
|
|
109
|
+
y: string;
|
|
110
|
+
value: number;
|
|
111
|
+
}[];
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* Transform simple data format to box plot format
|
|
115
|
+
*/
|
|
116
|
+
export declare function transformToBoxPlotData(data: Record<string, any>[], labelKey: string, minKey: string, q1Key: string, medianKey: string, q3Key: string, maxKey: string, colors?: string[]): {
|
|
117
|
+
data: {
|
|
118
|
+
label: string;
|
|
119
|
+
min: number;
|
|
120
|
+
q1: number;
|
|
121
|
+
median: number;
|
|
122
|
+
q3: number;
|
|
123
|
+
max: number;
|
|
124
|
+
color: string;
|
|
125
|
+
}[];
|
|
126
|
+
};
|
|
127
|
+
/**
|
|
128
|
+
* Transform simple data format to histogram format
|
|
129
|
+
*/
|
|
130
|
+
export declare function transformToHistogramData(data: Record<string, any>[], valueKey: string, bins?: number): {
|
|
131
|
+
values: number[];
|
|
132
|
+
bins: number | undefined;
|
|
133
|
+
};
|
|
134
|
+
/**
|
|
135
|
+
* Transform simple data format to waterfall chart format
|
|
136
|
+
*/
|
|
137
|
+
export declare function transformToWaterfallData(data: Record<string, any>[], labelKey: string, valueKey: string, colors?: string[]): {
|
|
138
|
+
data: {
|
|
139
|
+
label: string;
|
|
140
|
+
value: number;
|
|
141
|
+
color: string;
|
|
142
|
+
}[];
|
|
143
|
+
};
|
|
144
|
+
/**
|
|
145
|
+
* Transform simple data format to candlestick chart format
|
|
146
|
+
*/
|
|
147
|
+
export declare function transformToCandlestickData(data: Record<string, any>[], dateKey: string, openKey: string, highKey: string, lowKey: string, closeKey: string): {
|
|
148
|
+
data: {
|
|
149
|
+
date: any;
|
|
150
|
+
open: number;
|
|
151
|
+
high: number;
|
|
152
|
+
low: number;
|
|
153
|
+
close: number;
|
|
154
|
+
}[];
|
|
155
|
+
};
|
|
156
|
+
/**
|
|
157
|
+
* Transform simple data format to funnel chart format
|
|
158
|
+
*/
|
|
159
|
+
export declare function transformToFunnelData(data: Record<string, any>[], labelKey: string, valueKey: string, colors?: string[]): {
|
|
160
|
+
stages: {
|
|
161
|
+
label: string;
|
|
162
|
+
value: number;
|
|
163
|
+
color: string;
|
|
164
|
+
}[];
|
|
165
|
+
};
|
|
166
|
+
/**
|
|
167
|
+
* Transform simple data format to sparkline format
|
|
168
|
+
*/
|
|
169
|
+
export declare function transformToSparklineData(data: Record<string, any>[], valueKey: string): {
|
|
170
|
+
data: number[];
|
|
171
|
+
};
|
|
172
|
+
/**
|
|
173
|
+
* Transform simple data format to multi-line sparkline format
|
|
174
|
+
*/
|
|
175
|
+
export declare function transformToMultiSparklineData(data: Record<string, any>[], dataKeys: string[], colors?: string[], labels?: string[]): {
|
|
176
|
+
series: {
|
|
177
|
+
data: number[];
|
|
178
|
+
color: string;
|
|
179
|
+
label: string;
|
|
180
|
+
}[];
|
|
181
|
+
};
|
|
182
|
+
/**
|
|
183
|
+
* Transform simple data format to treemap format
|
|
184
|
+
*/
|
|
185
|
+
export declare function transformToTreemapData(data: Record<string, any>[], labelKey: string, valueKey: string, parentKey?: string, colors?: string[]): {
|
|
186
|
+
data: any[];
|
|
187
|
+
};
|
|
188
|
+
/**
|
|
189
|
+
* Transform simple data format to sunburst chart format
|
|
190
|
+
*/
|
|
191
|
+
export declare function transformToSunburstData(data: Record<string, any>[], labelKey: string, valueKey: string, parentKey?: string, colors?: string[]): {
|
|
192
|
+
data: any[];
|
|
193
|
+
};
|
|
194
|
+
/**
|
|
195
|
+
* Transform simple data format to sankey diagram format
|
|
196
|
+
*/
|
|
197
|
+
export declare function transformToSankeyData(data: Record<string, any>[], sourceKey: string, targetKey: string, valueKey: string, colors?: string[]): {
|
|
198
|
+
nodes: {
|
|
199
|
+
id: string;
|
|
200
|
+
label: string;
|
|
201
|
+
}[];
|
|
202
|
+
links: {
|
|
203
|
+
source: string;
|
|
204
|
+
target: string;
|
|
205
|
+
value: number;
|
|
206
|
+
color: string;
|
|
207
|
+
}[];
|
|
208
|
+
};
|
|
209
|
+
//# sourceMappingURL=dataTransform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataTransform.d.ts","sourceRoot":"","sources":["../../../src/core/utils/dataTransform.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/core/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,iBAAiB;AACjB,cAAc,QAAQ,CAAC;AAEvB,mBAAmB;AACnB,cAAc,UAAU,CAAC;AAEzB,eAAe;AACf,cAAc,SAAS,CAAC;AAExB,oBAAoB;AACpB,cAAc,aAAa,CAAC;AAE5B,QAAQ;AACR,cAAc,SAAS,CAAC;AAExB,QAAQ;AACR,cAAc,SAAS,CAAC;AAExB,QAAQ;AACR,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,iBAAiB;AACjB,cAAc,QAAQ,CAAC;AAEvB,mBAAmB;AACnB,cAAc,UAAU,CAAC;AAEzB,eAAe;AACf,cAAc,SAAS,CAAC;AAExB,oBAAoB;AACpB,cAAc,aAAa,CAAC;AAE5B,QAAQ;AACR,cAAc,SAAS,CAAC;AAExB,QAAQ;AACR,cAAc,SAAS,CAAC;AAExB,QAAQ;AACR,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Data transformation utilities for converting simple data arrays
|
|
3
|
+
* into the internal format used by widgets
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Default color palette for charts
|
|
7
|
+
*/
|
|
8
|
+
export const DEFAULT_COLORS = [
|
|
9
|
+
'#8884d8',
|
|
10
|
+
'#82ca9d',
|
|
11
|
+
'#ffc658',
|
|
12
|
+
'#ff7c7c',
|
|
13
|
+
'#8dd1e1',
|
|
14
|
+
'#a4de6c',
|
|
15
|
+
'#d0ed57',
|
|
16
|
+
'#ffa07a',
|
|
17
|
+
'#ba68c8',
|
|
18
|
+
'#4db6ac',
|
|
19
|
+
];
|
|
20
|
+
/**
|
|
21
|
+
* Check if props use the new simple API format
|
|
22
|
+
*/
|
|
23
|
+
export function isSimpleDataFormat(props) {
|
|
24
|
+
return (props.data &&
|
|
25
|
+
Array.isArray(props.data) &&
|
|
26
|
+
props.data.length > 0 &&
|
|
27
|
+
typeof props.data[0] === 'object');
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Transform simple data format to series format for LineChart/AreaChart
|
|
31
|
+
*/
|
|
32
|
+
export function transformToSeriesData(data, options) {
|
|
33
|
+
const { xKey, dataKeys, colors, labels } = options;
|
|
34
|
+
const series = dataKeys.map((key, index) => {
|
|
35
|
+
const seriesData = data.map((item) => ({
|
|
36
|
+
x: item[xKey],
|
|
37
|
+
y: typeof item[key] === 'number' ? item[key] : 0,
|
|
38
|
+
}));
|
|
39
|
+
return {
|
|
40
|
+
data: seriesData,
|
|
41
|
+
color: colors?.[index] || DEFAULT_COLORS[index % DEFAULT_COLORS.length],
|
|
42
|
+
label: labels?.[index] || key,
|
|
43
|
+
};
|
|
44
|
+
});
|
|
45
|
+
return { series };
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Transform simple data format to bar chart format
|
|
49
|
+
*/
|
|
50
|
+
export function transformToBarData(data, xKey, dataKey, colors) {
|
|
51
|
+
return {
|
|
52
|
+
data: data.map((item, index) => ({
|
|
53
|
+
value: typeof item[dataKey] === 'number' ? item[dataKey] : 0,
|
|
54
|
+
label: String(item[xKey] ?? ''),
|
|
55
|
+
color: colors?.[index] || DEFAULT_COLORS[index % DEFAULT_COLORS.length],
|
|
56
|
+
})),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Transform simple data format to pie chart format
|
|
61
|
+
*/
|
|
62
|
+
export function transformToPieData(data, labelKey, valueKey, colors) {
|
|
63
|
+
return {
|
|
64
|
+
data: data.map((item, index) => ({
|
|
65
|
+
value: typeof item[valueKey] === 'number' ? item[valueKey] : 0,
|
|
66
|
+
label: String(item[labelKey] ?? ''),
|
|
67
|
+
color: colors?.[index] || DEFAULT_COLORS[index % DEFAULT_COLORS.length],
|
|
68
|
+
})),
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Transform simple data format to scatter/bubble chart format
|
|
73
|
+
*/
|
|
74
|
+
export function transformToScatterData(data, xKey, yKey, sizeKey, colors, labels) {
|
|
75
|
+
return {
|
|
76
|
+
data: data.map((item, index) => ({
|
|
77
|
+
x: typeof item[xKey] === 'number' ? item[xKey] : 0,
|
|
78
|
+
y: typeof item[yKey] === 'number' ? item[yKey] : 0,
|
|
79
|
+
size: sizeKey && typeof item[sizeKey] === 'number' ? item[sizeKey] : 10,
|
|
80
|
+
label: labels?.[index] || String(item[xKey] ?? ''),
|
|
81
|
+
color: colors?.[index] || DEFAULT_COLORS[index % DEFAULT_COLORS.length],
|
|
82
|
+
})),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Transform simple data format to grouped bar chart format
|
|
87
|
+
*/
|
|
88
|
+
export function transformToGroupedBarData(data, categoryKey, dataKeys, colors, labels) {
|
|
89
|
+
const groups = data.map((item) => ({
|
|
90
|
+
category: String(item[categoryKey] ?? ''),
|
|
91
|
+
values: dataKeys.map((key, index) => ({
|
|
92
|
+
value: typeof item[key] === 'number' ? item[key] : 0,
|
|
93
|
+
label: labels?.[index] || key,
|
|
94
|
+
color: colors?.[index] || DEFAULT_COLORS[index % DEFAULT_COLORS.length],
|
|
95
|
+
})),
|
|
96
|
+
}));
|
|
97
|
+
return { groups };
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Transform simple data format to stacked bar chart format
|
|
101
|
+
*/
|
|
102
|
+
export function transformToStackedBarData(data, categoryKey, dataKeys, colors, labels) {
|
|
103
|
+
const stacks = data.map((item) => ({
|
|
104
|
+
category: String(item[categoryKey] ?? ''),
|
|
105
|
+
segments: dataKeys.map((key, index) => ({
|
|
106
|
+
value: typeof item[key] === 'number' ? item[key] : 0,
|
|
107
|
+
label: labels?.[index] || key,
|
|
108
|
+
color: colors?.[index] || DEFAULT_COLORS[index % DEFAULT_COLORS.length],
|
|
109
|
+
})),
|
|
110
|
+
}));
|
|
111
|
+
return { stacks };
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Transform simple data format to radar chart format
|
|
115
|
+
*/
|
|
116
|
+
export function transformToRadarData(data, categoryKey, dataKeys, colors, labels) {
|
|
117
|
+
const series = dataKeys.map((key, index) => ({
|
|
118
|
+
data: data.map((item) => ({
|
|
119
|
+
category: String(item[categoryKey] ?? ''),
|
|
120
|
+
value: typeof item[key] === 'number' ? item[key] : 0,
|
|
121
|
+
})),
|
|
122
|
+
color: colors?.[index] || DEFAULT_COLORS[index % DEFAULT_COLORS.length],
|
|
123
|
+
label: labels?.[index] || key,
|
|
124
|
+
}));
|
|
125
|
+
return { series };
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Transform simple data format to heatmap format
|
|
129
|
+
*/
|
|
130
|
+
export function transformToHeatmapData(data, xKey, yKey, valueKey) {
|
|
131
|
+
return {
|
|
132
|
+
data: data.map((item) => ({
|
|
133
|
+
x: String(item[xKey] ?? ''),
|
|
134
|
+
y: String(item[yKey] ?? ''),
|
|
135
|
+
value: typeof item[valueKey] === 'number' ? item[valueKey] : 0,
|
|
136
|
+
})),
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Transform simple data format to box plot format
|
|
141
|
+
*/
|
|
142
|
+
export function transformToBoxPlotData(data, labelKey, minKey, q1Key, medianKey, q3Key, maxKey, colors) {
|
|
143
|
+
return {
|
|
144
|
+
data: data.map((item, index) => ({
|
|
145
|
+
label: String(item[labelKey] ?? ''),
|
|
146
|
+
min: typeof item[minKey] === 'number' ? item[minKey] : 0,
|
|
147
|
+
q1: typeof item[q1Key] === 'number' ? item[q1Key] : 0,
|
|
148
|
+
median: typeof item[medianKey] === 'number' ? item[medianKey] : 0,
|
|
149
|
+
q3: typeof item[q3Key] === 'number' ? item[q3Key] : 0,
|
|
150
|
+
max: typeof item[maxKey] === 'number' ? item[maxKey] : 0,
|
|
151
|
+
color: colors?.[index] || DEFAULT_COLORS[index % DEFAULT_COLORS.length],
|
|
152
|
+
})),
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Transform simple data format to histogram format
|
|
157
|
+
*/
|
|
158
|
+
export function transformToHistogramData(data, valueKey, bins) {
|
|
159
|
+
const values = data
|
|
160
|
+
.map((item) => (typeof item[valueKey] === 'number' ? item[valueKey] : 0))
|
|
161
|
+
.filter((v) => !isNaN(v));
|
|
162
|
+
return { values, bins };
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Transform simple data format to waterfall chart format
|
|
166
|
+
*/
|
|
167
|
+
export function transformToWaterfallData(data, labelKey, valueKey, colors) {
|
|
168
|
+
return {
|
|
169
|
+
data: data.map((item, index) => ({
|
|
170
|
+
label: String(item[labelKey] ?? ''),
|
|
171
|
+
value: typeof item[valueKey] === 'number' ? item[valueKey] : 0,
|
|
172
|
+
color: colors?.[index] || DEFAULT_COLORS[index % DEFAULT_COLORS.length],
|
|
173
|
+
})),
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Transform simple data format to candlestick chart format
|
|
178
|
+
*/
|
|
179
|
+
export function transformToCandlestickData(data, dateKey, openKey, highKey, lowKey, closeKey) {
|
|
180
|
+
return {
|
|
181
|
+
data: data.map((item) => ({
|
|
182
|
+
date: item[dateKey],
|
|
183
|
+
open: typeof item[openKey] === 'number' ? item[openKey] : 0,
|
|
184
|
+
high: typeof item[highKey] === 'number' ? item[highKey] : 0,
|
|
185
|
+
low: typeof item[lowKey] === 'number' ? item[lowKey] : 0,
|
|
186
|
+
close: typeof item[closeKey] === 'number' ? item[closeKey] : 0,
|
|
187
|
+
})),
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Transform simple data format to funnel chart format
|
|
192
|
+
*/
|
|
193
|
+
export function transformToFunnelData(data, labelKey, valueKey, colors) {
|
|
194
|
+
return {
|
|
195
|
+
stages: data.map((item, index) => ({
|
|
196
|
+
label: String(item[labelKey] ?? ''),
|
|
197
|
+
value: typeof item[valueKey] === 'number' ? item[valueKey] : 0,
|
|
198
|
+
color: colors?.[index] || DEFAULT_COLORS[index % DEFAULT_COLORS.length],
|
|
199
|
+
})),
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Transform simple data format to sparkline format
|
|
204
|
+
*/
|
|
205
|
+
export function transformToSparklineData(data, valueKey) {
|
|
206
|
+
const values = data
|
|
207
|
+
.map((item) => (typeof item[valueKey] === 'number' ? item[valueKey] : 0))
|
|
208
|
+
.filter((v) => !isNaN(v));
|
|
209
|
+
return { data: values };
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Transform simple data format to multi-line sparkline format
|
|
213
|
+
*/
|
|
214
|
+
export function transformToMultiSparklineData(data, dataKeys, colors, labels) {
|
|
215
|
+
const series = dataKeys.map((key, index) => ({
|
|
216
|
+
data: data.map((item) => (typeof item[key] === 'number' ? item[key] : 0)),
|
|
217
|
+
color: colors?.[index] || DEFAULT_COLORS[index % DEFAULT_COLORS.length],
|
|
218
|
+
label: labels?.[index] || key,
|
|
219
|
+
}));
|
|
220
|
+
return { series };
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Transform simple data format to treemap format
|
|
224
|
+
*/
|
|
225
|
+
export function transformToTreemapData(data, labelKey, valueKey, parentKey, colors) {
|
|
226
|
+
// If no parentKey, all items are at root level
|
|
227
|
+
if (!parentKey) {
|
|
228
|
+
const nodes = data.map((item, index) => ({
|
|
229
|
+
label: String(item[labelKey] ?? ''),
|
|
230
|
+
value: typeof item[valueKey] === 'number' ? item[valueKey] : 0,
|
|
231
|
+
color: colors?.[index] || DEFAULT_COLORS[index % DEFAULT_COLORS.length],
|
|
232
|
+
}));
|
|
233
|
+
return { data: nodes };
|
|
234
|
+
}
|
|
235
|
+
// Build hierarchical structure if parentKey is provided
|
|
236
|
+
const nodeMap = new Map();
|
|
237
|
+
const rootNodes = [];
|
|
238
|
+
// First pass: create all nodes
|
|
239
|
+
data.forEach((item, index) => {
|
|
240
|
+
const label = String(item[labelKey] ?? '');
|
|
241
|
+
const node = {
|
|
242
|
+
label,
|
|
243
|
+
value: typeof item[valueKey] === 'number' ? item[valueKey] : 0,
|
|
244
|
+
color: colors?.[index] || DEFAULT_COLORS[index % DEFAULT_COLORS.length],
|
|
245
|
+
children: [],
|
|
246
|
+
};
|
|
247
|
+
nodeMap.set(label, node);
|
|
248
|
+
});
|
|
249
|
+
// Second pass: build hierarchy
|
|
250
|
+
data.forEach((item) => {
|
|
251
|
+
const label = String(item[labelKey] ?? '');
|
|
252
|
+
const parent = item[parentKey];
|
|
253
|
+
const node = nodeMap.get(label);
|
|
254
|
+
if (parent && nodeMap.has(String(parent))) {
|
|
255
|
+
const parentNode = nodeMap.get(String(parent));
|
|
256
|
+
parentNode.children.push(node);
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
rootNodes.push(node);
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
// Clean up empty children arrays
|
|
263
|
+
const cleanNode = (node) => {
|
|
264
|
+
if (node.children && node.children.length === 0) {
|
|
265
|
+
delete node.children;
|
|
266
|
+
}
|
|
267
|
+
else if (node.children) {
|
|
268
|
+
node.children.forEach(cleanNode);
|
|
269
|
+
}
|
|
270
|
+
return node;
|
|
271
|
+
};
|
|
272
|
+
rootNodes.forEach(cleanNode);
|
|
273
|
+
return { data: rootNodes };
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Transform simple data format to sunburst chart format
|
|
277
|
+
*/
|
|
278
|
+
export function transformToSunburstData(data, labelKey, valueKey, parentKey, colors) {
|
|
279
|
+
// Reuse treemap transformation as the data structure is the same
|
|
280
|
+
return transformToTreemapData(data, labelKey, valueKey, parentKey, colors);
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Transform simple data format to sankey diagram format
|
|
284
|
+
*/
|
|
285
|
+
export function transformToSankeyData(data, sourceKey, targetKey, valueKey, colors) {
|
|
286
|
+
// Extract unique nodes
|
|
287
|
+
const nodeSet = new Set();
|
|
288
|
+
data.forEach((item) => {
|
|
289
|
+
const source = String(item[sourceKey] ?? '');
|
|
290
|
+
const target = String(item[targetKey] ?? '');
|
|
291
|
+
if (source)
|
|
292
|
+
nodeSet.add(source);
|
|
293
|
+
if (target)
|
|
294
|
+
nodeSet.add(target);
|
|
295
|
+
});
|
|
296
|
+
const nodes = Array.from(nodeSet).map((id) => ({
|
|
297
|
+
id,
|
|
298
|
+
label: id,
|
|
299
|
+
}));
|
|
300
|
+
// Create links
|
|
301
|
+
const links = data.map((item, index) => ({
|
|
302
|
+
source: String(item[sourceKey] ?? ''),
|
|
303
|
+
target: String(item[targetKey] ?? ''),
|
|
304
|
+
value: typeof item[valueKey] === 'number' ? item[valueKey] : 0,
|
|
305
|
+
color: colors?.[index] || DEFAULT_COLORS[index % DEFAULT_COLORS.length],
|
|
306
|
+
}));
|
|
307
|
+
return { nodes, links };
|
|
308
|
+
}
|
|
309
|
+
//# sourceMappingURL=dataTransform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataTransform.js","sourceRoot":"","sources":["../../../../src/core/utils/dataTransform.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;CACV,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAU;IAC3C,OAAO,CACL,KAAK,CAAC,IAAI;QACV,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QACrB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAClC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAA2B,EAC3B,OAA6B;IAE7B,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEnD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACrC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC;YACb,CAAC,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACjD,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC;YACvE,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG;SAC9B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAA2B,EAC3B,IAAY,EACZ,OAAe,EACf,MAAiB;IAEjB,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAC/B,KAAK,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC/B,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC;SACxE,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAA2B,EAC3B,QAAgB,EAChB,QAAgB,EAChB,MAAiB;IAEjB,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAC/B,KAAK,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC;SACxE,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAA2B,EAC3B,IAAY,EACZ,IAAY,EACZ,OAAgB,EAChB,MAAiB,EACjB,MAAiB;IAEjB,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAC/B,CAAC,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,CAAC,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,IAAI,EAAE,OAAO,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;YACvE,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAClD,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC;SACxE,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAA2B,EAC3B,WAAmB,EACnB,QAAkB,EAClB,MAAiB,EACjB,MAAiB;IAEjB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACjC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACpC,KAAK,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG;YAC7B,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC;SACxE,CAAC,CAAC;KACJ,CAAC,CAAC,CAAC;IAEJ,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAA2B,EAC3B,WAAmB,EACnB,QAAkB,EAClB,MAAiB,EACjB,MAAiB;IAEjB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACjC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACzC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACtC,KAAK,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG;YAC7B,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC;SACxE,CAAC,CAAC;KACJ,CAAC,CAAC,CAAC;IAEJ,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAA2B,EAC3B,WAAmB,EACnB,QAAkB,EAClB,MAAiB,EACjB,MAAiB;IAEjB,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACxB,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACzC,KAAK,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACrD,CAAC,CAAC;QACH,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC;QACvE,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG;KAC9B,CAAC,CAAC,CAAC;IAEJ,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAA2B,EAC3B,IAAY,EACZ,IAAY,EACZ,QAAgB;IAEhB,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACxB,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3B,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3B,KAAK,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/D,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAA2B,EAC3B,QAAgB,EAChB,MAAc,EACd,KAAa,EACb,SAAiB,EACjB,KAAa,EACb,MAAc,EACd,MAAiB;IAEjB,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAC/B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,GAAG,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,EAAE,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,MAAM,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACjE,EAAE,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,GAAG,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC;SACxE,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,IAA2B,EAC3B,QAAgB,EAChB,IAAa;IAEb,MAAM,MAAM,GAAG,IAAI;SAChB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACxE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,IAA2B,EAC3B,QAAgB,EAChB,QAAgB,EAChB,MAAiB;IAEjB,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAC/B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,KAAK,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC;SACxE,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CACxC,IAA2B,EAC3B,OAAe,EACf,OAAe,EACf,OAAe,EACf,MAAc,EACd,QAAgB;IAEhB,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACxB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3D,IAAI,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3D,GAAG,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,KAAK,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/D,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAA2B,EAC3B,QAAgB,EAChB,QAAgB,EAChB,MAAiB;IAEjB,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACjC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,KAAK,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC;SACxE,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,IAA2B,EAC3B,QAAgB;IAEhB,MAAM,MAAM,GAAG,IAAI;SAChB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACxE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAC3C,IAA2B,EAC3B,QAAkB,EAClB,MAAiB,EACjB,MAAiB;IAEjB,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC;QACvE,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG;KAC9B,CAAC,CAAC,CAAC;IAEJ,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAA2B,EAC3B,QAAgB,EAChB,QAAgB,EAChB,SAAkB,EAClB,MAAiB;IAEjB,+CAA+C;IAC/C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACvC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,KAAK,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC;SACxE,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,wDAAwD;IACxD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAe,CAAC;IACvC,MAAM,SAAS,GAAU,EAAE,CAAC;IAE5B,+BAA+B;IAC/B,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG;YACX,KAAK;YACL,KAAK,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC;YACvE,QAAQ,EAAE,EAAW;SACtB,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,+BAA+B;IAC/B,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACpB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEhC,IAAI,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAC/C,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,iCAAiC;IACjC,MAAM,SAAS,GAAG,CAAC,IAAS,EAAO,EAAE;QACnC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAE7B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAA2B,EAC3B,QAAgB,EAChB,QAAgB,EAChB,SAAkB,EAClB,MAAiB;IAEjB,iEAAiE;IACjE,OAAO,sBAAsB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AAC7E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAA2B,EAC3B,SAAiB,EACjB,SAAiB,EACjB,QAAgB,EAChB,MAAiB;IAEjB,uBAAuB;IACvB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACpB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7C,IAAI,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7C,EAAE;QACF,KAAK,EAAE,EAAE;KACV,CAAC,CAAC,CAAC;IAEJ,eAAe;IACf,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACrC,KAAK,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC;KACxE,CAAC,CAAC,CAAC;IAEJ,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC"}
|