@bashem/rn-charts 0.0.3 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/lib/module/skia/AreaChart/AreaChart.js +60 -51
- package/lib/module/skia/AreaChart/AreaChart.js.map +1 -1
- package/lib/module/skia/AreaChart/useAreaChart.js +18 -14
- package/lib/module/skia/AreaChart/useAreaChart.js.map +1 -1
- package/lib/module/skia/BarChart/BarChart.js +156 -69
- package/lib/module/skia/BarChart/BarChart.js.map +1 -1
- package/lib/module/skia/BarChart/useBarChart.js +53 -41
- package/lib/module/skia/BarChart/useBarChart.js.map +1 -1
- package/lib/module/skia/Common/HorizontalLabelView.js +121 -0
- package/lib/module/skia/Common/HorizontalLabelView.js.map +1 -0
- package/lib/module/skia/Common/VerticalLabelView.js +100 -0
- package/lib/module/skia/Common/VerticalLabelView.js.map +1 -0
- package/lib/module/skia/Common/useComponentLayout.js +13 -0
- package/lib/module/skia/Common/useComponentLayout.js.map +1 -0
- package/lib/module/skia/HeatMap/DateHeatMap.js +472 -0
- package/lib/module/skia/HeatMap/DateHeatMap.js.map +1 -0
- package/lib/module/skia/HeatMap/HeatMap.js +121 -33
- package/lib/module/skia/HeatMap/HeatMap.js.map +1 -1
- package/lib/module/skia/HeatMap/useHeatMap.js +132 -48
- package/lib/module/skia/HeatMap/useHeatMap.js.map +1 -1
- package/lib/module/skia/PieChart/PieChart.js +21 -17
- package/lib/module/skia/PieChart/PieChart.js.map +1 -1
- package/lib/module/skia/PieChart/usePieChart.js +241 -30
- package/lib/module/skia/PieChart/usePieChart.js.map +1 -1
- package/lib/module/skia/Popup.js +7 -5
- package/lib/module/skia/Popup.js.map +1 -1
- package/lib/module/skia/common.js +4 -41
- package/lib/module/skia/common.js.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/skia/AreaChart/AreaChart.d.ts +15 -3
- package/lib/typescript/src/skia/AreaChart/AreaChart.d.ts.map +1 -1
- package/lib/typescript/src/skia/AreaChart/useAreaChart.d.ts +13 -14
- package/lib/typescript/src/skia/AreaChart/useAreaChart.d.ts.map +1 -1
- package/lib/typescript/src/skia/BarChart/BarChart.d.ts +16 -2
- package/lib/typescript/src/skia/BarChart/BarChart.d.ts.map +1 -1
- package/lib/typescript/src/skia/BarChart/useBarChart.d.ts +17 -5
- package/lib/typescript/src/skia/BarChart/useBarChart.d.ts.map +1 -1
- package/lib/typescript/src/skia/Common/HorizontalLabelView.d.ts +33 -0
- package/lib/typescript/src/skia/Common/HorizontalLabelView.d.ts.map +1 -0
- package/lib/typescript/src/skia/Common/VerticalLabelView.d.ts +24 -0
- package/lib/typescript/src/skia/Common/VerticalLabelView.d.ts.map +1 -0
- package/lib/typescript/src/skia/Common/useComponentLayout.d.ts +4 -0
- package/lib/typescript/src/skia/Common/useComponentLayout.d.ts.map +1 -0
- package/lib/typescript/src/skia/HeatMap/DateHeatMap.d.ts +1 -0
- package/lib/typescript/src/skia/HeatMap/DateHeatMap.d.ts.map +1 -0
- package/lib/typescript/src/skia/HeatMap/HeatMap.d.ts +28 -12
- package/lib/typescript/src/skia/HeatMap/HeatMap.d.ts.map +1 -1
- package/lib/typescript/src/skia/HeatMap/useHeatMap.d.ts +15 -4
- package/lib/typescript/src/skia/HeatMap/useHeatMap.d.ts.map +1 -1
- package/lib/typescript/src/skia/PieChart/PieChart.d.ts +5 -1
- package/lib/typescript/src/skia/PieChart/PieChart.d.ts.map +1 -1
- package/lib/typescript/src/skia/PieChart/usePieChart.d.ts +6 -1
- package/lib/typescript/src/skia/PieChart/usePieChart.d.ts.map +1 -1
- package/lib/typescript/src/skia/Popup.d.ts.map +1 -1
- package/lib/typescript/src/skia/common.d.ts +3 -10
- package/lib/typescript/src/skia/common.d.ts.map +1 -1
- package/package.json +11 -8
- package/src/index.tsx +6 -4
- package/src/skia/AreaChart/AreaChart.tsx +85 -62
- package/src/skia/AreaChart/useAreaChart.ts +25 -26
- package/src/skia/BarChart/BarChart.tsx +163 -95
- package/src/skia/BarChart/useBarChart.ts +55 -44
- package/src/skia/Common/HorizontalLabelView.tsx +153 -0
- package/src/skia/Common/VerticalLabelView.tsx +113 -0
- package/src/skia/Common/useComponentLayout.ts +14 -0
- package/src/skia/HeatMap/DateHeatMap.tsx +470 -0
- package/src/skia/HeatMap/HeatMap.tsx +168 -54
- package/src/skia/HeatMap/useHeatMap.ts +139 -65
- package/src/skia/PieChart/PieChart.tsx +16 -11
- package/src/skia/PieChart/usePieChart.ts +316 -66
- package/src/skia/Popup.tsx +38 -36
- package/src/skia/common.ts +8 -46
- package/lib/module/skia/Common/VerticalLabel.js +0 -73
- package/lib/module/skia/Common/VerticalLabel.js.map +0 -1
- package/lib/typescript/src/skia/Common/VerticalLabel.d.ts +0 -17
- package/lib/typescript/src/skia/Common/VerticalLabel.d.ts.map +0 -1
- package/src/skia/Common/VerticalLabel.tsx +0 -91
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["React","useMemo","useRef","useState","View","GestureDetector","Gesture","GestureHandlerRootView","ScrollView","Canvas","Rect","vec","LinearGradient","Group","rect","SKRect","useBarChart","Popup","VerticalLabelView","HorizontalLabelView","useDerivedValue","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","BarChart","xLabelView","yLabelView","yLabelSkiaView","barSkiaView","onSelectBarSkiaView","onSelectBarView","props","maxValueCalculated","minValueCalculated","yLabels","canvasWidth","paddingRight","paddingLeft","paddingBottom","paddingTop","rectangles","verticalLabelWidth","setVerticalLabelWidth","chartHeight","tooltip","setBottomLabelHeight","onScroll","touchHandler","totalHeight","totalWidth","horizontalStrokeWidth","startX","offset","panGestureRef","Pan","panGesture","onChange","event","changeX","withRef","tapGesture","Tap","runOnJS","onStart","x","y","viewOffset","setViewOffset","canvasGestures","Exclusive","onSelectBarViewMemo","undefined","data","xLabel","onSelectBarSkiaViewMemo","canvasGroupTranslate","translateX","value","children","style","width","flexDirection","backgroundColor","paddingStart","paddingEnd","ref","view","measureInWindow","fx","fy","prev","height","padding","onLayout","nativeEvent","layout","labelPercentages","styles","verticalLabelStyle","labelSkiaView","percentage","yPosition","horizontal","simultaneousHandlers","gesture","transform","map","bar","xIndex","bars","length","stackValue","yIndex","skiaView","label","currentData","values","color","colors","id","Array","isArray","start","end","labels","positions","xOffset","left","horizontalLabelStyle","_index","position","top","Math","max","overflow","popupData","centerX","centerY","popupStyle","onTouchOutside"],"sourceRoot":"../../../../src","sources":["skia/BarChart/BarChart.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,12 +4,16 @@ import { useMemo, useState } from "react";
|
|
|
4
4
|
import { rect } from "@shopify/react-native-skia";
|
|
5
5
|
import { arrayFrom, isDefined } from "../../util/util.js";
|
|
6
6
|
import { useWindowDimensions } from "react-native";
|
|
7
|
-
import {
|
|
7
|
+
import { getPaddings } from "../common.js";
|
|
8
|
+
import { useSharedValue } from "react-native-reanimated";
|
|
9
|
+
import { scheduleOnRN } from "react-native-worklets";
|
|
8
10
|
export default function useBarChart({
|
|
9
11
|
data,
|
|
10
12
|
style,
|
|
11
13
|
maxValue,
|
|
12
|
-
minValue
|
|
14
|
+
minValue,
|
|
15
|
+
yLabels,
|
|
16
|
+
overscanRatio
|
|
13
17
|
}) {
|
|
14
18
|
const {
|
|
15
19
|
maxValueCalculated,
|
|
@@ -54,11 +58,11 @@ export default function useBarChart({
|
|
|
54
58
|
} = getPaddings(style);
|
|
55
59
|
const chartBarWidth = style?.barWidth ?? 100;
|
|
56
60
|
const chartBarSpacing = style?.barSpacing ?? 0;
|
|
57
|
-
const verticalLabelWidth =
|
|
61
|
+
const [verticalLabelWidth, setVerticalLabelWidth] = useState(style?.verticalLabelStyle?.width ?? 0);
|
|
58
62
|
const chartHeight = style?.height ?? 200;
|
|
59
|
-
const
|
|
60
|
-
const
|
|
61
|
-
const
|
|
63
|
+
const verticalStrokeWidth = style?.verticalLabelStyle?.strokeWidth ?? 0;
|
|
64
|
+
const horizontalStrokeWidth = style?.horizontalLabelStyle?.strokeWidth ?? 0;
|
|
65
|
+
const [bottomLabelHeight, setBottomLabelHeight] = useState(20);
|
|
62
66
|
const {
|
|
63
67
|
width: windowWidth
|
|
64
68
|
} = useWindowDimensions();
|
|
@@ -68,46 +72,46 @@ export default function useBarChart({
|
|
|
68
72
|
const endSpacing = style?.lastBarTrailingSpacing ?? chartBarSpacing;
|
|
69
73
|
const scrollAreaWidth = initialSpacing + data.length * chartBarWidth + Math.max(0, data.length - 1) * chartBarSpacing + endSpacing;
|
|
70
74
|
const canvasWidth = Math.min(scrollAreaWidth, totalWidth - verticalLabelWidth - paddingRight - paddingLeft);
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
} = getCommonStyleFont(style);
|
|
75
|
+
const overscanArea = totalWidth * (overscanRatio ?? 0.5);
|
|
76
|
+
const leftBoundary = startX - overscanArea;
|
|
74
77
|
const rectangles = useMemo(() => {
|
|
75
|
-
let
|
|
76
|
-
let rightBoundary = startX + totalWidth;
|
|
78
|
+
let rightBoundary = startX + totalWidth + overscanArea;
|
|
77
79
|
let startArrayIndex = Math.floor(Math.max(leftBoundary - initialSpacing, 0) / (chartBarWidth + chartBarSpacing));
|
|
78
80
|
let endArrayIndex = Math.min(Math.ceil(rightBoundary / (chartBarWidth + chartBarSpacing)), data.length);
|
|
79
81
|
return data.slice(startArrayIndex, endArrayIndex).map((bar, xIndex) => {
|
|
80
82
|
let previousHeight = 0;
|
|
81
|
-
const x = initialSpacing + (xIndex + startArrayIndex) * (chartBarWidth + chartBarSpacing)
|
|
83
|
+
const x = initialSpacing + (xIndex + startArrayIndex) * (chartBarWidth + chartBarSpacing);
|
|
82
84
|
return {
|
|
83
85
|
bars: bar.values.map((item, yIndex) => {
|
|
84
|
-
const barHeight = (item.value - minValueCalculated) / (maxValueCalculated - minValueCalculated) * chartHeight;
|
|
85
|
-
const y = chartHeight - barHeight - previousHeight
|
|
86
|
+
const barHeight = (item.value - minValueCalculated) / Math.max(maxValueCalculated - minValueCalculated, 1) * chartHeight;
|
|
87
|
+
const y = chartHeight - barHeight - previousHeight;
|
|
86
88
|
previousHeight += barHeight;
|
|
87
|
-
return
|
|
89
|
+
return {
|
|
90
|
+
rect: rect(x, y, chartBarWidth, barHeight),
|
|
91
|
+
stackValue: item
|
|
92
|
+
};
|
|
88
93
|
}),
|
|
89
94
|
label: bar.label,
|
|
90
95
|
dataIndex: xIndex + startArrayIndex,
|
|
91
96
|
x: x
|
|
92
97
|
};
|
|
93
98
|
});
|
|
94
|
-
}, [data, chartBarWidth, chartBarSpacing, maxValueCalculated, minValueCalculated,
|
|
99
|
+
}, [data, chartBarWidth, chartBarSpacing, maxValueCalculated, minValueCalculated, startX]);
|
|
95
100
|
const touchHandler = (touchedX, touchedY) => {
|
|
96
101
|
if (rectangles.length === 0 || touchedX < 0 || touchedY < 0 || touchedX >= canvasWidth || touchedY >= chartHeight) {
|
|
97
102
|
setTooltip(undefined);
|
|
98
103
|
return;
|
|
99
104
|
}
|
|
100
|
-
let
|
|
101
|
-
let
|
|
102
|
-
if (
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
} else if (touchedX >= rectangles[0].x) {
|
|
106
|
-
xIndex = Math.floor((touchedX - (rectangles[0].x + chartBarWidth) - chartBarSpacing) / (chartBarWidth + chartBarSpacing)) + 1;
|
|
107
|
-
startingXIndex = rectangles[xIndex].x;
|
|
105
|
+
let firstX = rectangles[0].x - startX;
|
|
106
|
+
let spaceBetween = touchedX - firstX;
|
|
107
|
+
if (spaceBetween < 0) {
|
|
108
|
+
setTooltip(undefined);
|
|
109
|
+
return;
|
|
108
110
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
+
let xIndex = Math.floor(spaceBetween / (chartBarWidth + chartBarSpacing));
|
|
112
|
+
let startingXIndex = rectangles[xIndex].x - startX;
|
|
113
|
+
if (xIndex === -1 || touchedX < rectangles[xIndex].x - startX || touchedX > rectangles[xIndex].x - startX + chartBarWidth) {
|
|
114
|
+
console.log('Touch is outside the bar width, ignoring.', xIndex);
|
|
111
115
|
setTooltip(undefined);
|
|
112
116
|
return;
|
|
113
117
|
}
|
|
@@ -117,7 +121,7 @@ export default function useBarChart({
|
|
|
117
121
|
let categoryData = data[xIndex]?.values || [];
|
|
118
122
|
let lastBarHeight = 0;
|
|
119
123
|
while (yIndex < categoryData.length && yPassed < chartHeight - touchedY) {
|
|
120
|
-
const barHeight = (categoryData[yIndex].value - minValueCalculated) / (maxValueCalculated - minValueCalculated) * chartHeight;
|
|
124
|
+
const barHeight = (categoryData[yIndex].value - minValueCalculated) / Math.max(maxValueCalculated - minValueCalculated, 1) * chartHeight;
|
|
121
125
|
yPassed += barHeight;
|
|
122
126
|
lastBarHeight = barHeight;
|
|
123
127
|
yIndex++;
|
|
@@ -128,24 +132,28 @@ export default function useBarChart({
|
|
|
128
132
|
return;
|
|
129
133
|
}
|
|
130
134
|
setTooltip({
|
|
131
|
-
centerX: startingXIndex + chartBarWidth / 2,
|
|
132
|
-
centerY: chartHeight - yPassed
|
|
133
|
-
|
|
135
|
+
centerX: startingXIndex + verticalLabelWidth + paddingLeft + chartBarWidth / 2,
|
|
136
|
+
centerY: chartHeight - yPassed + paddingTop + lastBarHeight / 2,
|
|
137
|
+
rect: rect(startingXIndex, chartHeight - yPassed, chartBarWidth, lastBarHeight),
|
|
138
|
+
data: categoryData[yIndex - 1],
|
|
139
|
+
xLabel: data[xIndex]?.label
|
|
134
140
|
});
|
|
135
141
|
};
|
|
142
|
+
const offset = useSharedValue(0);
|
|
136
143
|
function onScroll(translateX) {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
+
'worklet';
|
|
145
|
+
|
|
146
|
+
let prev = offset.value;
|
|
147
|
+
let newX = Math.max(0, prev + translateX);
|
|
148
|
+
if (newX + canvasWidth > scrollAreaWidth) newX = Math.max(0, scrollAreaWidth - canvasWidth);
|
|
149
|
+
offset.set(newX);
|
|
150
|
+
scheduleOnRN(setTooltip, undefined);
|
|
151
|
+
scheduleOnRN(setStartX, newX);
|
|
144
152
|
}
|
|
145
153
|
return {
|
|
154
|
+
offset,
|
|
146
155
|
maxValueCalculated,
|
|
147
156
|
minValueCalculated,
|
|
148
|
-
canvasHeight,
|
|
149
157
|
canvasWidth,
|
|
150
158
|
steps,
|
|
151
159
|
scrollAreaWidth,
|
|
@@ -155,18 +163,22 @@ export default function useBarChart({
|
|
|
155
163
|
paddingLeft,
|
|
156
164
|
paddingRight,
|
|
157
165
|
verticalLabelWidth,
|
|
166
|
+
setVerticalLabelWidth,
|
|
158
167
|
chartBarWidth,
|
|
159
168
|
chartBarSpacing,
|
|
160
|
-
strokeWidth,
|
|
161
169
|
rectangles,
|
|
162
170
|
tooltip,
|
|
163
171
|
bottomLabelHeight,
|
|
164
|
-
|
|
172
|
+
setBottomLabelHeight,
|
|
165
173
|
setTooltip,
|
|
166
174
|
touchHandler,
|
|
167
175
|
onScroll,
|
|
176
|
+
startX,
|
|
168
177
|
totalHeight,
|
|
169
|
-
totalWidth
|
|
178
|
+
totalWidth,
|
|
179
|
+
yLabels,
|
|
180
|
+
verticalStrokeWidth,
|
|
181
|
+
horizontalStrokeWidth
|
|
170
182
|
};
|
|
171
183
|
}
|
|
172
184
|
//# sourceMappingURL=useBarChart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","useState","rect","arrayFrom","isDefined","useWindowDimensions","
|
|
1
|
+
{"version":3,"names":["useMemo","useState","rect","arrayFrom","isDefined","useWindowDimensions","getPaddings","useSharedValue","scheduleOnRN","useBarChart","data","style","maxValue","minValue","yLabels","overscanRatio","maxValueCalculated","minValueCalculated","length","Number","MIN_VALUE","MAX_VALUE","forEach","item","currentValue","values","reduce","acc","value","Math","min","max","steps","tooltip","setTooltip","undefined","startX","setStartX","paddingLeft","paddingRight","paddingTop","paddingBottom","chartBarWidth","barWidth","chartBarSpacing","barSpacing","verticalLabelWidth","setVerticalLabelWidth","verticalLabelStyle","width","chartHeight","height","verticalStrokeWidth","strokeWidth","horizontalStrokeWidth","horizontalLabelStyle","bottomLabelHeight","setBottomLabelHeight","windowWidth","totalWidth","totalHeight","initialSpacing","firstBarLeadingSpacing","endSpacing","lastBarTrailingSpacing","scrollAreaWidth","canvasWidth","overscanArea","leftBoundary","rectangles","rightBoundary","startArrayIndex","floor","endArrayIndex","ceil","slice","map","bar","xIndex","previousHeight","x","bars","yIndex","barHeight","y","stackValue","label","dataIndex","touchHandler","touchedX","touchedY","firstX","spaceBetween","startingXIndex","console","log","yPassed","categoryData","lastBarHeight","centerX","centerY","xLabel","offset","onScroll","translateX","prev","newX","set"],"sourceRoot":"../../../../src","sources":["skia/BarChart/useBarChart.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { View } from "react-native";
|
|
4
|
+
import { getPaddings } from "../common.js";
|
|
5
|
+
import React, { useEffect, useState } from "react";
|
|
6
|
+
import { Canvas, Group, Line } from "@shopify/react-native-skia";
|
|
7
|
+
import Animated, { useAnimatedStyle } from "react-native-reanimated";
|
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
;
|
|
10
|
+
function HorizontalLabelView({
|
|
11
|
+
labels,
|
|
12
|
+
positions,
|
|
13
|
+
style,
|
|
14
|
+
onLayout,
|
|
15
|
+
children,
|
|
16
|
+
labelSkiaView,
|
|
17
|
+
transform,
|
|
18
|
+
xOffset
|
|
19
|
+
}) {
|
|
20
|
+
const {
|
|
21
|
+
width,
|
|
22
|
+
backgroundColor,
|
|
23
|
+
left,
|
|
24
|
+
horizontalLabelStyle = {}
|
|
25
|
+
} = style;
|
|
26
|
+
const {
|
|
27
|
+
height,
|
|
28
|
+
strokeColor = "white",
|
|
29
|
+
strokePosition = "top",
|
|
30
|
+
strokeWidth = 0
|
|
31
|
+
} = horizontalLabelStyle;
|
|
32
|
+
const {
|
|
33
|
+
paddingLeft = 0
|
|
34
|
+
} = getPaddings(style);
|
|
35
|
+
const [maxHeight, setMaxHeight] = useState(height);
|
|
36
|
+
useEffect(() => {
|
|
37
|
+
setMaxHeight(height);
|
|
38
|
+
}, [height]);
|
|
39
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
40
|
+
style: {
|
|
41
|
+
left,
|
|
42
|
+
width: width,
|
|
43
|
+
height: maxHeight ?? 0,
|
|
44
|
+
backgroundColor,
|
|
45
|
+
flexDirection: "row-reverse",
|
|
46
|
+
justifyContent: "flex-end",
|
|
47
|
+
overflow: "hidden"
|
|
48
|
+
},
|
|
49
|
+
onLayout: event => {
|
|
50
|
+
onLayout?.(event);
|
|
51
|
+
},
|
|
52
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
53
|
+
style: {
|
|
54
|
+
position: "relative",
|
|
55
|
+
height: maxHeight ?? 0,
|
|
56
|
+
top: strokeWidth,
|
|
57
|
+
paddingVertical: 0
|
|
58
|
+
},
|
|
59
|
+
children: labels.map((label, index) => {
|
|
60
|
+
return /*#__PURE__*/_jsx(LabelViewWrapper, {
|
|
61
|
+
leftPosition: positions[index],
|
|
62
|
+
xOffset: xOffset,
|
|
63
|
+
onLayout: event => {
|
|
64
|
+
let height = event.nativeEvent.layout.height;
|
|
65
|
+
if (horizontalLabelStyle.height !== undefined) setMaxHeight(horizontalLabelStyle.height);else {
|
|
66
|
+
if (index === 0) {
|
|
67
|
+
setMaxHeight(height + strokeWidth);
|
|
68
|
+
} else {
|
|
69
|
+
setMaxHeight(prevHeight => Math.max(height + strokeWidth, prevHeight ?? 0));
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
children: children?.(index, label)
|
|
74
|
+
}, index);
|
|
75
|
+
})
|
|
76
|
+
}), (labelSkiaView || strokeWidth > 0) && /*#__PURE__*/_jsx(Canvas, {
|
|
77
|
+
style: {
|
|
78
|
+
position: "absolute",
|
|
79
|
+
width,
|
|
80
|
+
height: labelSkiaView ? maxHeight ?? 0 : strokeWidth
|
|
81
|
+
},
|
|
82
|
+
children: /*#__PURE__*/_jsxs(Group, {
|
|
83
|
+
transform: transform,
|
|
84
|
+
children: [labelSkiaView && labels.map((label, index) => {
|
|
85
|
+
let yPosition = positions[index];
|
|
86
|
+
if (yPosition === undefined) return null;
|
|
87
|
+
return /*#__PURE__*/_jsx(Group, {
|
|
88
|
+
children: labelSkiaView(yPosition, index, label)
|
|
89
|
+
}, index);
|
|
90
|
+
}), strokeWidth > 0 && /*#__PURE__*/_jsx(Line, {
|
|
91
|
+
p1: {
|
|
92
|
+
x: paddingLeft,
|
|
93
|
+
y: strokePosition === "top" ? strokeWidth / 2 : (maxHeight ?? height ?? 0) - strokeWidth / 2
|
|
94
|
+
},
|
|
95
|
+
p2: {
|
|
96
|
+
x: width,
|
|
97
|
+
y: strokePosition === "top" ? strokeWidth / 2 : (maxHeight ?? height ?? 0) - strokeWidth / 2
|
|
98
|
+
},
|
|
99
|
+
color: strokeColor,
|
|
100
|
+
strokeWidth: strokeWidth
|
|
101
|
+
})]
|
|
102
|
+
})
|
|
103
|
+
})]
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
;
|
|
107
|
+
function LabelViewWrapper(props) {
|
|
108
|
+
const labelContainerStyle = useAnimatedStyle(() => {
|
|
109
|
+
return {
|
|
110
|
+
position: "absolute",
|
|
111
|
+
left: props.leftPosition ? props.leftPosition - (props.xOffset?.get() ?? 0) : undefined
|
|
112
|
+
};
|
|
113
|
+
}, [props.leftPosition]);
|
|
114
|
+
return /*#__PURE__*/_jsx(Animated.View, {
|
|
115
|
+
style: labelContainerStyle,
|
|
116
|
+
onLayout: event => props.onLayout?.(event),
|
|
117
|
+
children: props.children
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
export default HorizontalLabelView;
|
|
121
|
+
//# sourceMappingURL=HorizontalLabelView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["View","getPaddings","React","useEffect","useState","Canvas","Group","Line","Animated","useAnimatedStyle","jsx","_jsx","jsxs","_jsxs","HorizontalLabelView","labels","positions","style","onLayout","children","labelSkiaView","transform","xOffset","width","backgroundColor","left","horizontalLabelStyle","height","strokeColor","strokePosition","strokeWidth","paddingLeft","maxHeight","setMaxHeight","flexDirection","justifyContent","overflow","event","position","top","paddingVertical","map","label","index","LabelViewWrapper","leftPosition","nativeEvent","layout","undefined","prevHeight","Math","max","yPosition","p1","x","y","p2","color","props","labelContainerStyle","get"],"sourceRoot":"../../../../src","sources":["skia/Common/HorizontalLabelView.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { View } from "react-native";
|
|
4
|
+
import { Canvas, Group, Line } from '@shopify/react-native-skia';
|
|
5
|
+
import { getPaddings } from "../common.js";
|
|
6
|
+
import React, { useMemo, useState } from "react";
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
function VerticalLabelView({
|
|
9
|
+
labelSkiaView,
|
|
10
|
+
labelPercentages,
|
|
11
|
+
styles,
|
|
12
|
+
onLayout,
|
|
13
|
+
children
|
|
14
|
+
}) {
|
|
15
|
+
const {
|
|
16
|
+
top,
|
|
17
|
+
height,
|
|
18
|
+
backgroundColor,
|
|
19
|
+
verticalLabelStyle = {}
|
|
20
|
+
} = styles;
|
|
21
|
+
const {
|
|
22
|
+
width,
|
|
23
|
+
strokeWidth = 0,
|
|
24
|
+
strokeColor = 'white'
|
|
25
|
+
} = verticalLabelStyle;
|
|
26
|
+
const {
|
|
27
|
+
paddingTop = 0,
|
|
28
|
+
paddingBottom = 0
|
|
29
|
+
} = getPaddings(styles);
|
|
30
|
+
const [maxWidth, setMaxWidth] = useState(width);
|
|
31
|
+
useMemo(() => {
|
|
32
|
+
setMaxWidth(width);
|
|
33
|
+
}, [width]);
|
|
34
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
35
|
+
style: {
|
|
36
|
+
width: maxWidth ?? 0,
|
|
37
|
+
top,
|
|
38
|
+
height,
|
|
39
|
+
backgroundColor,
|
|
40
|
+
flexDirection: "row-reverse",
|
|
41
|
+
justifyContent: "flex-end"
|
|
42
|
+
},
|
|
43
|
+
onLayout: event => {
|
|
44
|
+
onLayout?.(event);
|
|
45
|
+
},
|
|
46
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
47
|
+
style: {
|
|
48
|
+
position: "relative",
|
|
49
|
+
width: (maxWidth ?? 0) - strokeWidth,
|
|
50
|
+
paddingVertical: 0,
|
|
51
|
+
height: height
|
|
52
|
+
},
|
|
53
|
+
children: labelPercentages.map((percentage, index) => {
|
|
54
|
+
return /*#__PURE__*/_jsx(View, {
|
|
55
|
+
style: {
|
|
56
|
+
position: "absolute",
|
|
57
|
+
top: (1 - percentage) * height,
|
|
58
|
+
backgroundColor: "purple"
|
|
59
|
+
},
|
|
60
|
+
onLayout: event => {
|
|
61
|
+
let width = event.nativeEvent.layout.width + strokeWidth;
|
|
62
|
+
if (verticalLabelStyle.width !== undefined) setMaxWidth(verticalLabelStyle.width);else {
|
|
63
|
+
if (index === 0) {
|
|
64
|
+
setMaxWidth(width + strokeWidth);
|
|
65
|
+
} else {
|
|
66
|
+
setMaxWidth(prevWidth => Math.max(width + strokeWidth, prevWidth ?? 0));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
children: children(percentage, index)
|
|
71
|
+
}, percentage);
|
|
72
|
+
})
|
|
73
|
+
}), (labelSkiaView || strokeWidth > 0) && /*#__PURE__*/_jsxs(Canvas, {
|
|
74
|
+
style: {
|
|
75
|
+
position: "absolute",
|
|
76
|
+
left: 0,
|
|
77
|
+
width,
|
|
78
|
+
height
|
|
79
|
+
},
|
|
80
|
+
children: [labelSkiaView && labelPercentages.map((percentage, index) => {
|
|
81
|
+
return /*#__PURE__*/_jsx(Group, {
|
|
82
|
+
children: labelSkiaView(percentage, (1 - percentage) * height, index)
|
|
83
|
+
}, percentage);
|
|
84
|
+
}), strokeWidth > 0 && /*#__PURE__*/_jsx(Line, {
|
|
85
|
+
p1: {
|
|
86
|
+
x: (maxWidth ?? width ?? 0) - strokeWidth / 2,
|
|
87
|
+
y: paddingTop
|
|
88
|
+
},
|
|
89
|
+
p2: {
|
|
90
|
+
x: (maxWidth ?? width ?? 0) - strokeWidth / 2,
|
|
91
|
+
y: height - paddingBottom
|
|
92
|
+
},
|
|
93
|
+
color: strokeColor,
|
|
94
|
+
strokeWidth: strokeWidth
|
|
95
|
+
})]
|
|
96
|
+
})]
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
export default VerticalLabelView;
|
|
100
|
+
//# sourceMappingURL=VerticalLabelView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["View","Canvas","Group","Line","getPaddings","React","useMemo","useState","jsx","_jsx","jsxs","_jsxs","VerticalLabelView","labelSkiaView","labelPercentages","styles","onLayout","children","top","height","backgroundColor","verticalLabelStyle","width","strokeWidth","strokeColor","paddingTop","paddingBottom","maxWidth","setMaxWidth","style","flexDirection","justifyContent","event","position","paddingVertical","map","percentage","index","nativeEvent","layout","undefined","prevWidth","Math","max","left","p1","x","y","p2","color"],"sourceRoot":"../../../../src","sources":["skia/Common/VerticalLabelView.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useCallback, useState } from "react";
|
|
4
|
+
function useComponentLayout() {
|
|
5
|
+
const [size, setSize] = useState(undefined);
|
|
6
|
+
const onLayout = useCallback(event => {
|
|
7
|
+
setSize(event.nativeEvent.layout);
|
|
8
|
+
}, []);
|
|
9
|
+
return [size, onLayout];
|
|
10
|
+
}
|
|
11
|
+
;
|
|
12
|
+
export default useComponentLayout;
|
|
13
|
+
//# sourceMappingURL=useComponentLayout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useState","useComponentLayout","size","setSize","undefined","onLayout","event","nativeEvent","layout"],"sourceRoot":"../../../../src","sources":["skia/Common/useComponentLayout.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,OAAO;AAG7C,SAASC,kBAAkBA,CAAA,EAAsE;EAC/F,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAGH,QAAQ,CAA8BI,SAAS,CAAC;EAExE,MAAMC,QAAQ,GAAGN,WAAW,CAAEO,KAAwB,IAAK;IACzDH,OAAO,CAACG,KAAK,CAACC,WAAW,CAACC,MAAM,CAAC;EACnC,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO,CAACN,IAAI,EAAEG,QAAQ,CAAC;AACzB;AAAC;AAED,eAAeJ,kBAAkB","ignoreList":[]}
|