@bashem/rn-charts 0.0.4 → 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 +6 -3
- 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":["React","View","Canvas","Group","Rect","useHeatMap","Popup","jsx","_jsx","jsxs","_jsxs","HeatMap","props","
|
|
1
|
+
{"version":3,"names":["React","View","Canvas","Group","Rect","rect","useHeatMap","Popup","VerticalLabelView","HorizontalLabelView","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","HeatMap","yLabelView","yLabelSkiaView","xLabelView","xLabelSkiaView","cellSkiaView","onSelectView","onSelectSkiaView","props","cellData","totalWidth","totalHeight","popupData","popupRef","popupDimension","touchHandler","getColor","cellSize","onTouchOutside","horizontalLabelHeight","verticalLabelWidth","setHorizontalLabelHeight","setVerticalLabelWidth","numberOfRows","paddingTop","paddingBottom","paddingLeft","paddingRight","xLabelsRect","viewOffset","setViewOffset","useState","x","y","onSelectSkiaViewMemo","useMemo","undefined","data","onSelectViewMemo","style","backgroundColor","ref","view","measureInWindow","fx","fy","prev","children","flexDirection","onLayout","event","nativeEvent","layout","width","labelPercentages","Array","from","length","_","i","styles","height","top","verticalLabelStyle","labelSkiaView","_percentage","yPosition","index","labels","map","positions","horizontalLabelStyle","yPostion","onTouchStart","locationX","locationY","datum","skiaView","color","value","position","viewPosition","left","console","log","popupStyle"],"sourceRoot":"../../../../src","sources":["skia/HeatMap/HeatMap.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { useImperativeHandle, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
4
|
+
import { getPaddings } from "../common.js";
|
|
5
|
+
import { rect } from "@shopify/react-native-skia";
|
|
4
6
|
function useHeatMap({
|
|
5
|
-
|
|
6
|
-
endDate,
|
|
7
|
+
rows,
|
|
7
8
|
data,
|
|
8
9
|
style,
|
|
9
10
|
minValue,
|
|
10
11
|
maxValue,
|
|
12
|
+
coalesceGroups,
|
|
11
13
|
ref,
|
|
12
14
|
popupStyle
|
|
13
15
|
}) {
|
|
@@ -15,49 +17,95 @@ function useHeatMap({
|
|
|
15
17
|
const cellGap = style?.cellGap ?? 4;
|
|
16
18
|
const cellMaxColor = style?.cellMaxColor ?? '#50f555ff';
|
|
17
19
|
const cellMinColor = style?.cellMinColor ?? '#ffffffff';
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
+
const [verticalLabelWidth, setVerticalLabelWidth] = useState(0);
|
|
21
|
+
const [horizontalLabelHeight, setHorizontalLabelHeight] = useState(0);
|
|
22
|
+
const {
|
|
23
|
+
paddingLeft,
|
|
24
|
+
paddingRight,
|
|
25
|
+
paddingTop,
|
|
26
|
+
paddingBottom
|
|
27
|
+
} = getPaddings(style);
|
|
28
|
+
const numberOfRows = rows;
|
|
20
29
|
const [popupData, setPopupData] = useState(undefined);
|
|
21
30
|
const [popupDimension, setPopupDimension] = useState({
|
|
22
31
|
width: 0,
|
|
23
32
|
height: 0
|
|
24
33
|
});
|
|
25
34
|
const popupRef = useRef(null);
|
|
26
|
-
const formatDate = date => `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`;
|
|
27
35
|
const {
|
|
28
|
-
|
|
36
|
+
cellData,
|
|
29
37
|
computedMin,
|
|
30
|
-
computedMax
|
|
38
|
+
computedMax,
|
|
39
|
+
numberOfCols,
|
|
40
|
+
totalInterGroupSpacing,
|
|
41
|
+
xLabelsRect,
|
|
42
|
+
groupInfos
|
|
31
43
|
} = useMemo(() => {
|
|
32
|
-
const start = new Date(startDate);
|
|
33
|
-
const end = new Date(endDate);
|
|
34
|
-
const output = [];
|
|
35
44
|
let computedMax = Number.MIN_VALUE;
|
|
36
45
|
let computedMin = Number.MAX_VALUE;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
46
|
+
let nextRow = 0;
|
|
47
|
+
let nextCol = 0;
|
|
48
|
+
let xLabelsRect = [];
|
|
49
|
+
let cellsInRange = [];
|
|
50
|
+
let totalInterGroupSpacing = 0;
|
|
51
|
+
let groupInfos = [];
|
|
52
|
+
data.forEach((datum, index) => {
|
|
53
|
+
let startingRow = datum.startingRow;
|
|
54
|
+
let currentCol = nextCol;
|
|
55
|
+
if (index !== 0 && (coalesceGroups === false || datum.startingRow < nextRow)) {
|
|
56
|
+
currentCol++;
|
|
57
|
+
let additionalGroupSpacing = coalesceGroups ? 0 : style?.interGroupSpacing ?? 0;
|
|
58
|
+
totalInterGroupSpacing += additionalGroupSpacing;
|
|
59
|
+
}
|
|
60
|
+
let minX = Number.MAX_VALUE;
|
|
61
|
+
let maxX = Number.MIN_VALUE;
|
|
62
|
+
let firstIndexInGroup = cellsInRange.length;
|
|
63
|
+
let lastIndexInGroup = firstIndexInGroup;
|
|
64
|
+
for (let i = 0; i < datum.cols; i++) {
|
|
65
|
+
for (let j = startingRow; j < (i === datum.cols - 1 ? datum.endingRow + 1 : rows); j++) {
|
|
66
|
+
const value = datum.data?.[j]?.[i] ?? 0;
|
|
67
|
+
computedMax = Math.max(computedMax, value);
|
|
68
|
+
computedMin = Math.min(computedMin, value);
|
|
69
|
+
let x = currentCol * (cellSize + cellGap) + totalInterGroupSpacing;
|
|
70
|
+
let y = j * (cellSize + cellGap);
|
|
71
|
+
minX = Math.min(minX, x);
|
|
72
|
+
maxX = Math.max(maxX, x);
|
|
73
|
+
cellsInRange.push({
|
|
74
|
+
rowIndex: j,
|
|
75
|
+
colIndex: currentCol,
|
|
76
|
+
groupIndex: data.indexOf(datum),
|
|
77
|
+
value,
|
|
78
|
+
x: x,
|
|
79
|
+
y: y
|
|
80
|
+
});
|
|
81
|
+
lastIndexInGroup = cellsInRange.length - 1;
|
|
82
|
+
nextRow = j + 1;
|
|
83
|
+
}
|
|
84
|
+
startingRow = 0;
|
|
85
|
+
if (nextRow == rows) {
|
|
86
|
+
currentCol++;
|
|
87
|
+
nextRow = 0;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
nextCol = Math.max(nextCol, currentCol);
|
|
91
|
+
xLabelsRect.push(rect(minX, 0, maxX - minX + cellSize + 1, style?.horizontalLabelStyle?.height ?? -1));
|
|
92
|
+
groupInfos.push({
|
|
93
|
+
startingX: minX,
|
|
94
|
+
endingX: maxX + cellSize,
|
|
95
|
+
startingCellIndex: firstIndexInGroup,
|
|
96
|
+
lastCellIndex: lastIndexInGroup
|
|
53
97
|
});
|
|
54
|
-
}
|
|
98
|
+
});
|
|
55
99
|
return {
|
|
56
|
-
|
|
100
|
+
cellData: cellsInRange,
|
|
101
|
+
numberOfCols: nextCol + (nextRow > 0 ? 1 : 0),
|
|
102
|
+
totalInterGroupSpacing,
|
|
103
|
+
xLabelsRect,
|
|
104
|
+
groupInfos,
|
|
57
105
|
computedMin: minValue !== undefined ? minValue : computedMin,
|
|
58
106
|
computedMax: maxValue !== undefined ? maxValue : computedMax
|
|
59
107
|
};
|
|
60
|
-
}, [
|
|
108
|
+
}, [rows, data, minValue, maxValue, cellSize, cellGap]);
|
|
61
109
|
|
|
62
110
|
// --- COLOR LOGIC ---
|
|
63
111
|
const getColor = value => {
|
|
@@ -72,9 +120,8 @@ function useHeatMap({
|
|
|
72
120
|
};
|
|
73
121
|
|
|
74
122
|
// Heatmap size
|
|
75
|
-
const
|
|
76
|
-
const
|
|
77
|
-
const totalHeight = 7 * (cellSize + cellGap);
|
|
123
|
+
const totalWidth = numberOfCols * (cellSize + cellGap) + totalInterGroupSpacing + verticalLabelWidth;
|
|
124
|
+
const totalHeight = rows * (cellSize + cellGap) + horizontalLabelHeight;
|
|
78
125
|
|
|
79
126
|
// --- POPUP MEASUREMENT ---
|
|
80
127
|
useLayoutEffect(() => {
|
|
@@ -94,21 +141,48 @@ function useHeatMap({
|
|
|
94
141
|
setPopupData(undefined);
|
|
95
142
|
return;
|
|
96
143
|
}
|
|
97
|
-
|
|
98
|
-
const
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
144
|
+
let cellIndex = undefined;
|
|
145
|
+
for (const [index, group] of groupInfos.entries()) {
|
|
146
|
+
if (x > group.endingX) continue;
|
|
147
|
+
if (x < group.startingX) continue;
|
|
148
|
+
let groupData = data[index];
|
|
149
|
+
if (!groupData) break;
|
|
150
|
+
let colIndex = Math.floor((x - group.startingX) / (cellSize + cellGap));
|
|
151
|
+
let rowIndex = Math.floor(y / (cellSize + cellGap));
|
|
152
|
+
let firstRowCells = rows - groupData.startingRow;
|
|
153
|
+
if (colIndex < 0 || colIndex >= groupData.cols || rowIndex < 0 || rowIndex >= rows) {
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
let cellColStartingCellIndex = group.startingCellIndex + Math.max(0, colIndex - 1) * rows;
|
|
157
|
+
if (colIndex !== 0) {
|
|
158
|
+
cellColStartingCellIndex += firstRowCells;
|
|
159
|
+
cellIndex = cellColStartingCellIndex + rowIndex;
|
|
160
|
+
} else {
|
|
161
|
+
cellIndex = cellColStartingCellIndex + rowIndex - groupData.startingRow;
|
|
162
|
+
}
|
|
163
|
+
if (cellIndex < 0 || cellIndex >= cellData.length) {
|
|
164
|
+
console.error("Calculated cell index is out of bounds:", cellIndex);
|
|
165
|
+
cellIndex = undefined;
|
|
166
|
+
break;
|
|
111
167
|
}
|
|
168
|
+
let cell = cellData[cellIndex];
|
|
169
|
+
if (!cell || x < cell.x || x > cell.x + cellSize || y < cell.y || y > cell.y + cellSize) {
|
|
170
|
+
cellIndex = undefined;
|
|
171
|
+
}
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
if (cellIndex === undefined) {
|
|
175
|
+
setPopupData(undefined);
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
const cellDatum = cellData[cellIndex];
|
|
179
|
+
if (cellDatum) {
|
|
180
|
+
setPopupData({
|
|
181
|
+
x: cellDatum.x,
|
|
182
|
+
y: cellDatum.y,
|
|
183
|
+
data: cellDatum
|
|
184
|
+
});
|
|
185
|
+
return;
|
|
112
186
|
}
|
|
113
187
|
setPopupData(undefined);
|
|
114
188
|
};
|
|
@@ -121,7 +195,7 @@ function useHeatMap({
|
|
|
121
195
|
}
|
|
122
196
|
}), [ref]);
|
|
123
197
|
return {
|
|
124
|
-
|
|
198
|
+
cellData,
|
|
125
199
|
computedMin,
|
|
126
200
|
computedMax,
|
|
127
201
|
totalWidth,
|
|
@@ -132,7 +206,17 @@ function useHeatMap({
|
|
|
132
206
|
touchHandler,
|
|
133
207
|
getColor,
|
|
134
208
|
cellSize,
|
|
135
|
-
onTouchOutside
|
|
209
|
+
onTouchOutside,
|
|
210
|
+
verticalLabelWidth,
|
|
211
|
+
setVerticalLabelWidth,
|
|
212
|
+
horizontalLabelHeight,
|
|
213
|
+
setHorizontalLabelHeight,
|
|
214
|
+
numberOfRows,
|
|
215
|
+
paddingLeft,
|
|
216
|
+
paddingRight,
|
|
217
|
+
paddingTop,
|
|
218
|
+
paddingBottom,
|
|
219
|
+
xLabelsRect
|
|
136
220
|
};
|
|
137
221
|
}
|
|
138
222
|
export default useHeatMap;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useImperativeHandle","useLayoutEffect","useMemo","useRef","useState","
|
|
1
|
+
{"version":3,"names":["useImperativeHandle","useLayoutEffect","useMemo","useRef","useState","getPaddings","rect","useHeatMap","rows","data","style","minValue","maxValue","coalesceGroups","ref","popupStyle","cellSize","cellGap","cellMaxColor","cellMinColor","verticalLabelWidth","setVerticalLabelWidth","horizontalLabelHeight","setHorizontalLabelHeight","paddingLeft","paddingRight","paddingTop","paddingBottom","numberOfRows","popupData","setPopupData","undefined","popupDimension","setPopupDimension","width","height","popupRef","cellData","computedMin","computedMax","numberOfCols","totalInterGroupSpacing","xLabelsRect","groupInfos","Number","MIN_VALUE","MAX_VALUE","nextRow","nextCol","cellsInRange","forEach","datum","index","startingRow","currentCol","additionalGroupSpacing","interGroupSpacing","minX","maxX","firstIndexInGroup","length","lastIndexInGroup","i","cols","j","endingRow","value","Math","max","min","x","y","push","rowIndex","colIndex","groupIndex","indexOf","horizontalLabelStyle","startingX","endingX","startingCellIndex","lastCellIndex","getColor","intensity","bigint","parseInt","replace","r","g","b","mix","base","round","totalWidth","totalHeight","current","measure","touchHandler","renderPopup","cellIndex","group","entries","groupData","floor","firstRowCells","cellColStartingCellIndex","console","error","cell","cellDatum","onTouchOutside","touchedOutside"],"sourceRoot":"../../../../src","sources":["skia/HeatMap/useHeatMap.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,18 +6,25 @@ import { usePieChart } from "./usePieChart.js";
|
|
|
6
6
|
import Popup from "../Popup.js";
|
|
7
7
|
import { useState } from 'react';
|
|
8
8
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
-
function PieChart(
|
|
9
|
+
function PieChart({
|
|
10
|
+
popupStyle,
|
|
11
|
+
centerSkiaView,
|
|
12
|
+
centerView,
|
|
13
|
+
...props
|
|
14
|
+
}) {
|
|
10
15
|
const {
|
|
11
16
|
radius,
|
|
17
|
+
width,
|
|
18
|
+
height,
|
|
19
|
+
cx,
|
|
20
|
+
cy,
|
|
12
21
|
innerRadius,
|
|
13
22
|
paths,
|
|
14
23
|
popupData,
|
|
15
24
|
touchHandler
|
|
16
25
|
} = usePieChart(props);
|
|
17
26
|
const {
|
|
18
|
-
style
|
|
19
|
-
centerView,
|
|
20
|
-
popupStyle
|
|
27
|
+
style
|
|
21
28
|
} = props;
|
|
22
29
|
const paddingTop = style.paddingTop ?? style.padding ?? 0;
|
|
23
30
|
const paddingBottom = style.paddingBottom ?? style.padding ?? 0;
|
|
@@ -51,8 +58,8 @@ function PieChart(props) {
|
|
|
51
58
|
children: [centerView && /*#__PURE__*/_jsx(View, {
|
|
52
59
|
style: {
|
|
53
60
|
position: 'absolute',
|
|
54
|
-
top: paddingTop +
|
|
55
|
-
left: paddingLeft +
|
|
61
|
+
top: paddingTop + cx - innerRadius,
|
|
62
|
+
left: paddingLeft + cy - innerRadius,
|
|
56
63
|
width: innerRadius * 2,
|
|
57
64
|
height: innerRadius * 2,
|
|
58
65
|
borderRadius: innerRadius,
|
|
@@ -61,31 +68,28 @@ function PieChart(props) {
|
|
|
61
68
|
backgroundColor: style.innerColor ?? 'black'
|
|
62
69
|
},
|
|
63
70
|
children: centerView
|
|
64
|
-
}), /*#__PURE__*/
|
|
71
|
+
}), /*#__PURE__*/_jsxs(Canvas, {
|
|
65
72
|
style: {
|
|
66
|
-
width
|
|
67
|
-
height
|
|
73
|
+
width,
|
|
74
|
+
height,
|
|
68
75
|
backgroundColor: style.backgroundColor ?? 'transparent'
|
|
69
76
|
},
|
|
70
77
|
onTouchStart: event => touchHandler(event.nativeEvent.locationX, event.nativeEvent.locationY),
|
|
71
|
-
children: paths.map(({
|
|
78
|
+
children: [paths.map(({
|
|
72
79
|
path,
|
|
73
80
|
color
|
|
74
81
|
}, index) => /*#__PURE__*/_jsx(Path, {
|
|
75
82
|
path: path,
|
|
76
|
-
color: color
|
|
77
|
-
|
|
78
|
-
width: 5
|
|
79
|
-
}
|
|
80
|
-
}, index))
|
|
83
|
+
color: color
|
|
84
|
+
}, index)), centerSkiaView && centerSkiaView(cx, cy, innerRadius)]
|
|
81
85
|
}), popupData && /*#__PURE__*/_jsx(Popup, {
|
|
82
86
|
popupData: {
|
|
83
87
|
x: popupData.centerX,
|
|
84
88
|
y: popupData.centerY,
|
|
85
89
|
data: popupData.data
|
|
86
90
|
},
|
|
87
|
-
totalWidth:
|
|
88
|
-
totalHeight:
|
|
91
|
+
totalWidth: width,
|
|
92
|
+
totalHeight: height,
|
|
89
93
|
touchHandler: (x, y) => touchHandler(x - paddingLeft, y - paddingTop),
|
|
90
94
|
viewOffset: viewOffset,
|
|
91
95
|
popupStyle: popupStyle
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Canvas","Path","View","usePieChart","Popup","useState","jsx","_jsx","jsxs","_jsxs","PieChart","props","radius","
|
|
1
|
+
{"version":3,"names":["Canvas","Path","View","usePieChart","Popup","useState","jsx","_jsx","jsxs","_jsxs","PieChart","popupStyle","centerSkiaView","centerView","props","radius","width","height","cx","cy","innerRadius","paths","popupData","touchHandler","style","paddingTop","padding","paddingBottom","paddingLeft","paddingRight","viewOffset","setViewOffset","x","y","backgroundColor","ref","view","measureInWindow","fx","fy","prev","children","position","top","left","borderRadius","justifyContent","alignItems","innerColor","onTouchStart","event","nativeEvent","locationX","locationY","map","path","color","index","centerX","centerY","data","totalWidth","totalHeight"],"sourceRoot":"../../../../src","sources":["skia/PieChart/PieChart.tsx"],"mappings":"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","ignoreList":[]}
|