@app-studio/web 0.9.49 → 0.9.50
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/dist/web.cjs.development.js +41 -16
- package/dist/web.cjs.development.js.map +1 -1
- package/dist/web.cjs.production.min.js +1 -1
- package/dist/web.cjs.production.min.js.map +1 -1
- package/dist/web.esm.js +41 -16
- package/dist/web.esm.js.map +1 -1
- package/dist/web.umd.development.js +41 -16
- package/dist/web.umd.development.js.map +1 -1
- package/dist/web.umd.production.min.js +1 -1
- package/dist/web.umd.production.min.js.map +1 -1
- package/docs/components/Chart.mdx +34 -0
- package/package.json +2 -2
|
@@ -6543,12 +6543,14 @@ var BarChart = _ref => {
|
|
|
6543
6543
|
var groupWidth = chartWidth / barCount;
|
|
6544
6544
|
var barWidth = groupWidth * 0.8 / seriesCount;
|
|
6545
6545
|
var barSpacing = groupWidth * 0.2 / (seriesCount + 1);
|
|
6546
|
+
// Calculate effective max value
|
|
6547
|
+
var effectiveMaxValue = maxValue || 10;
|
|
6546
6548
|
// Generate y-axis ticks
|
|
6547
6549
|
var yAxisTicks = React.useMemo(() => {
|
|
6548
6550
|
var tickCount = 5;
|
|
6549
6551
|
var ticks = [];
|
|
6550
6552
|
for (var i = 0; i <= tickCount; i++) {
|
|
6551
|
-
var value =
|
|
6553
|
+
var value = effectiveMaxValue / tickCount * i;
|
|
6552
6554
|
ticks.push(value);
|
|
6553
6555
|
}
|
|
6554
6556
|
return ticks;
|
|
@@ -6581,7 +6583,7 @@ var BarChart = _ref => {
|
|
|
6581
6583
|
}
|
|
6582
6584
|
}), label);
|
|
6583
6585
|
}), yAxisTicks.map((tick, index) => {
|
|
6584
|
-
var y = height - padding.bottom - tick /
|
|
6586
|
+
var y = height - padding.bottom - tick / effectiveMaxValue * chartHeight;
|
|
6585
6587
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, {
|
|
6586
6588
|
key: "y-tick-" + index
|
|
6587
6589
|
}, /*#__PURE__*/React__default.createElement("text", Object.assign({
|
|
@@ -6603,7 +6605,7 @@ var BarChart = _ref => {
|
|
|
6603
6605
|
}), data.series.map((series, seriesIndex) => (/*#__PURE__*/React__default.createElement(React__default.Fragment, {
|
|
6604
6606
|
key: "series-" + seriesIndex
|
|
6605
6607
|
}, series.data.map((value, dataIndex) => {
|
|
6606
|
-
var barHeight = value /
|
|
6608
|
+
var barHeight = value / effectiveMaxValue * chartHeight * animationProgress;
|
|
6607
6609
|
var x = padding.left + dataIndex * groupWidth + barSpacing * (seriesIndex + 1) + barWidth * seriesIndex;
|
|
6608
6610
|
var y = height - padding.bottom - barHeight;
|
|
6609
6611
|
var categoryLabel = data.labels[dataIndex];
|
|
@@ -6716,12 +6718,14 @@ var LineChart = _ref => {
|
|
|
6716
6718
|
});
|
|
6717
6719
|
return max;
|
|
6718
6720
|
}, [data]);
|
|
6721
|
+
// Calculate effective max value
|
|
6722
|
+
var effectiveMaxValue = maxValue || 10;
|
|
6719
6723
|
// Generate y-axis ticks
|
|
6720
6724
|
var yAxisTicks = React.useMemo(() => {
|
|
6721
6725
|
var tickCount = 5;
|
|
6722
6726
|
var ticks = [];
|
|
6723
6727
|
for (var i = 0; i <= tickCount; i++) {
|
|
6724
|
-
var value =
|
|
6728
|
+
var value = effectiveMaxValue / tickCount * i;
|
|
6725
6729
|
ticks.push(value);
|
|
6726
6730
|
}
|
|
6727
6731
|
return ticks;
|
|
@@ -6730,7 +6734,7 @@ var LineChart = _ref => {
|
|
|
6730
6734
|
var generatePath = series => {
|
|
6731
6735
|
var points = series.map((value, index) => {
|
|
6732
6736
|
var x = padding.left + index / (data.labels.length - 1) * chartWidth;
|
|
6733
|
-
var y = height - padding.bottom - value /
|
|
6737
|
+
var y = height - padding.bottom - value / effectiveMaxValue * chartHeight * animationProgress;
|
|
6734
6738
|
return x + "," + y;
|
|
6735
6739
|
});
|
|
6736
6740
|
return "M " + points.join(' L ');
|
|
@@ -6742,7 +6746,7 @@ var LineChart = _ref => {
|
|
|
6742
6746
|
var baseY = height - padding.bottom;
|
|
6743
6747
|
var points = series.map((value, index) => {
|
|
6744
6748
|
var x = padding.left + index / (data.labels.length - 1) * chartWidth;
|
|
6745
|
-
var y = height - padding.bottom - value /
|
|
6749
|
+
var y = height - padding.bottom - value / effectiveMaxValue * chartHeight * animationProgress;
|
|
6746
6750
|
return x + "," + y;
|
|
6747
6751
|
});
|
|
6748
6752
|
return "M " + startX + "," + baseY + " L " + points.join(' L ') + " L " + endX + "," + baseY + " Z";
|
|
@@ -6775,7 +6779,7 @@ var LineChart = _ref => {
|
|
|
6775
6779
|
}
|
|
6776
6780
|
}), label);
|
|
6777
6781
|
}), yAxisTicks.map((tick, index) => {
|
|
6778
|
-
var y = height - padding.bottom - tick /
|
|
6782
|
+
var y = height - padding.bottom - tick / effectiveMaxValue * chartHeight;
|
|
6779
6783
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, {
|
|
6780
6784
|
key: "y-tick-" + index
|
|
6781
6785
|
}, /*#__PURE__*/React__default.createElement("text", Object.assign({
|
|
@@ -6807,7 +6811,7 @@ var LineChart = _ref => {
|
|
|
6807
6811
|
stroke: lineColor
|
|
6808
6812
|
}, LineStyles, views == null ? void 0 : views.line)), series.data.map((value, dataIndex) => {
|
|
6809
6813
|
var x = padding.left + dataIndex / (data.labels.length - 1) * chartWidth;
|
|
6810
|
-
var y = height - padding.bottom - value /
|
|
6814
|
+
var y = height - padding.bottom - value / effectiveMaxValue * chartHeight * animationProgress;
|
|
6811
6815
|
var categoryLabel = data.labels[dataIndex];
|
|
6812
6816
|
var categoryTotal = data.series.reduce((sum, currentSeries) => {
|
|
6813
6817
|
var seriesValue = currentSeries.data[dataIndex];
|
|
@@ -6939,6 +6943,22 @@ var PieChart = _ref => {
|
|
|
6939
6943
|
}, [dataPoints]);
|
|
6940
6944
|
// Generate pie slices
|
|
6941
6945
|
var slices = React.useMemo(() => {
|
|
6946
|
+
if (total === 0) {
|
|
6947
|
+
// Return a single placeholder slice
|
|
6948
|
+
var path = isDonut ? ["M " + centerX + " " + (centerY - radius), "A " + radius + " " + radius + " 0 1 1 " + centerX + " " + (centerY + radius), "A " + radius + " " + radius + " 0 1 1 " + centerX + " " + (centerY - radius), "M " + centerX + " " + (centerY - donutRadius), "A " + donutRadius + " " + donutRadius + " 0 1 0 " + centerX + " " + (centerY + donutRadius), "A " + donutRadius + " " + donutRadius + " 0 1 0 " + centerX + " " + (centerY - donutRadius), 'Z'].join(' ') : ["M " + centerX + " " + centerY, "M " + centerX + " " + (centerY - radius), "A " + radius + " " + radius + " 0 1 1 " + centerX + " " + (centerY + radius), "A " + radius + " " + radius + " 0 1 1 " + centerX + " " + (centerY - radius), 'Z'].join(' ');
|
|
6949
|
+
return [{
|
|
6950
|
+
path,
|
|
6951
|
+
color: '#E2E8F0',
|
|
6952
|
+
label: 'Total',
|
|
6953
|
+
value: 0,
|
|
6954
|
+
percentage: '0%',
|
|
6955
|
+
labelX: centerX,
|
|
6956
|
+
labelY: centerY,
|
|
6957
|
+
startAngle: 0,
|
|
6958
|
+
endAngle: Math.PI * 2,
|
|
6959
|
+
index: -1
|
|
6960
|
+
}];
|
|
6961
|
+
}
|
|
6942
6962
|
var result = [];
|
|
6943
6963
|
var startAngle = -Math.PI / 2; // Start from top (12 o'clock position)
|
|
6944
6964
|
for (var i = 0; i < dataPoints.length; i++) {
|
|
@@ -6959,13 +6979,13 @@ var PieChart = _ref => {
|
|
|
6959
6979
|
// Create arc flag
|
|
6960
6980
|
var largeArcFlag = angle > Math.PI ? 1 : 0;
|
|
6961
6981
|
// Create path
|
|
6962
|
-
var
|
|
6982
|
+
var _path = void 0;
|
|
6963
6983
|
if (isDonut) {
|
|
6964
6984
|
// Donut slice path
|
|
6965
|
-
|
|
6985
|
+
_path = ["M " + startX + " " + startY, "A " + radius + " " + radius + " 0 " + largeArcFlag + " 1 " + endX + " " + endY, "L " + innerEndX + " " + innerEndY, "A " + donutRadius + " " + donutRadius + " 0 " + largeArcFlag + " 0 " + innerStartX + " " + innerStartY, 'Z'].join(' ');
|
|
6966
6986
|
} else {
|
|
6967
6987
|
// Regular pie slice path
|
|
6968
|
-
|
|
6988
|
+
_path = ["M " + centerX + " " + centerY, "L " + startX + " " + startY, "A " + radius + " " + radius + " 0 " + largeArcFlag + " 1 " + endX + " " + endY, 'Z'].join(' ');
|
|
6969
6989
|
}
|
|
6970
6990
|
// Calculate label position
|
|
6971
6991
|
var labelAngle = startAngle + angle / 2;
|
|
@@ -6979,7 +6999,7 @@ var PieChart = _ref => {
|
|
|
6979
6999
|
// Resolve the color through the theme system
|
|
6980
7000
|
var resolvedColor = getColor(colorValue);
|
|
6981
7001
|
result.push({
|
|
6982
|
-
path,
|
|
7002
|
+
path: _path,
|
|
6983
7003
|
color: resolvedColor,
|
|
6984
7004
|
label: dataPoints[i].label,
|
|
6985
7005
|
value: dataPoints[i].value,
|
|
@@ -7086,19 +7106,24 @@ var PieChart = _ref => {
|
|
|
7086
7106
|
showTooltip(x, y, tooltipContent);
|
|
7087
7107
|
};
|
|
7088
7108
|
var handleClick = () => {
|
|
7089
|
-
if (onSliceClick) {
|
|
7109
|
+
if (slice.index !== -1 && onSliceClick) {
|
|
7090
7110
|
onSliceClick(dataPoints[slice.index], slice.index);
|
|
7091
7111
|
}
|
|
7092
7112
|
};
|
|
7113
|
+
var isPlaceholder = slice.index === -1;
|
|
7093
7114
|
return /*#__PURE__*/React__default.createElement("g", {
|
|
7094
7115
|
key: "slice-" + index
|
|
7095
7116
|
}, /*#__PURE__*/React__default.createElement("path", Object.assign({
|
|
7096
7117
|
d: slice.path,
|
|
7097
7118
|
fill: slice.color,
|
|
7098
|
-
onMouseEnter: handleMouseEnter,
|
|
7099
|
-
onMouseLeave: hideTooltip,
|
|
7119
|
+
onMouseEnter: !isPlaceholder ? handleMouseEnter : undefined,
|
|
7120
|
+
onMouseLeave: !isPlaceholder ? hideTooltip : undefined,
|
|
7100
7121
|
onClick: handleClick
|
|
7101
|
-
}, PieSliceStyles,
|
|
7122
|
+
}, PieSliceStyles, {
|
|
7123
|
+
style: Object.assign({}, PieSliceStyles == null ? void 0 : PieSliceStyles.style, {
|
|
7124
|
+
cursor: isPlaceholder ? 'default' : 'pointer'
|
|
7125
|
+
})
|
|
7126
|
+
}, views == null ? void 0 : views.pie)), !isPlaceholder && slice.endAngle - slice.startAngle > 0.2 && (/*#__PURE__*/React__default.createElement("text", {
|
|
7102
7127
|
x: slice.labelX,
|
|
7103
7128
|
y: slice.labelY,
|
|
7104
7129
|
textAnchor: "middle",
|