apexify.js 5.2.1 → 5.2.2
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/cjs/Canvas/utils/Charts/horizontalbarchart.d.ts +1 -0
- package/dist/cjs/Canvas/utils/Charts/horizontalbarchart.d.ts.map +1 -1
- package/dist/cjs/Canvas/utils/Charts/horizontalbarchart.js +106 -40
- package/dist/cjs/Canvas/utils/Charts/horizontalbarchart.js.map +1 -1
- package/dist/cjs/Canvas/utils/Texts/enhancedTextRenderer.d.ts +1 -1
- package/dist/cjs/Canvas/utils/Texts/enhancedTextRenderer.d.ts.map +1 -1
- package/dist/cjs/Canvas/utils/Texts/enhancedTextRenderer.js +43 -22
- package/dist/cjs/Canvas/utils/Texts/enhancedTextRenderer.js.map +1 -1
- package/dist/esm/Canvas/utils/Charts/horizontalbarchart.d.ts +1 -0
- package/dist/esm/Canvas/utils/Charts/horizontalbarchart.d.ts.map +1 -1
- package/dist/esm/Canvas/utils/Charts/horizontalbarchart.js +106 -40
- package/dist/esm/Canvas/utils/Charts/horizontalbarchart.js.map +1 -1
- package/dist/esm/Canvas/utils/Texts/enhancedTextRenderer.d.ts +1 -1
- package/dist/esm/Canvas/utils/Texts/enhancedTextRenderer.d.ts.map +1 -1
- package/dist/esm/Canvas/utils/Texts/enhancedTextRenderer.js +43 -22
- package/dist/esm/Canvas/utils/Texts/enhancedTextRenderer.js.map +1 -1
- package/package.json +1 -1
|
@@ -118,41 +118,62 @@ class EnhancedTextRenderer {
|
|
|
118
118
|
const lineHeight = (textProps.lineHeight || 1.4) * fontSize;
|
|
119
119
|
const maxHeight = textProps.maxHeight;
|
|
120
120
|
const maxLines = maxHeight ? Math.floor(maxHeight / lineHeight) : Infinity;
|
|
121
|
-
//
|
|
122
|
-
const
|
|
123
|
-
const
|
|
124
|
-
|
|
125
|
-
for (const
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
121
|
+
// First, split by \n to handle explicit line breaks
|
|
122
|
+
const explicitLines = textProps.text.split('\n');
|
|
123
|
+
const allLines = [];
|
|
124
|
+
// For each explicit line (split by \n), apply word wrapping if needed
|
|
125
|
+
for (const explicitLine of explicitLines) {
|
|
126
|
+
if (!explicitLine.trim() && explicitLines.length > 1) {
|
|
127
|
+
// Empty line from \n - add as empty line
|
|
128
|
+
allLines.push('');
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
// Split explicit line into words and wrap
|
|
132
|
+
const words = explicitLine.split(' ');
|
|
133
|
+
let currentLine = '';
|
|
134
|
+
for (const word of words) {
|
|
135
|
+
const testLine = currentLine ? currentLine + ' ' + word : word;
|
|
136
|
+
const testWidth = ctx.measureText(testLine).width;
|
|
137
|
+
if (testWidth > (textProps.maxWidth || Infinity) && currentLine) {
|
|
138
|
+
allLines.push(currentLine);
|
|
139
|
+
currentLine = word;
|
|
140
|
+
if (allLines.length >= maxLines) {
|
|
141
|
+
currentLine = '...';
|
|
142
|
+
break;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
currentLine = testLine;
|
|
134
147
|
}
|
|
135
148
|
}
|
|
136
|
-
|
|
137
|
-
currentLine
|
|
149
|
+
if (currentLine && allLines.length < maxLines) {
|
|
150
|
+
allLines.push(currentLine);
|
|
151
|
+
}
|
|
152
|
+
if (allLines.length >= maxLines) {
|
|
153
|
+
break;
|
|
138
154
|
}
|
|
139
|
-
}
|
|
140
|
-
if (currentLine && lines.length < maxLines) {
|
|
141
|
-
lines.push(currentLine);
|
|
142
155
|
}
|
|
143
156
|
// Render each line
|
|
144
|
-
for (let i = 0; i <
|
|
157
|
+
for (let i = 0; i < allLines.length; i++) {
|
|
145
158
|
const y = textProps.y + (i * lineHeight);
|
|
146
|
-
await this.renderTextLine(ctx,
|
|
159
|
+
await this.renderTextLine(ctx, allLines[i], textProps.x, y, textProps);
|
|
147
160
|
}
|
|
148
161
|
}
|
|
149
162
|
/**
|
|
150
|
-
* Renders single line text with all effects
|
|
163
|
+
* Renders single line text with all effects (handles \n line breaks)
|
|
151
164
|
* @param ctx - Canvas 2D context
|
|
152
165
|
* @param textProps - Text properties
|
|
153
166
|
*/
|
|
154
167
|
static async renderSingleLine(ctx, textProps) {
|
|
155
|
-
|
|
168
|
+
const fontSize = textProps.font?.size || textProps.fontSize || 16;
|
|
169
|
+
const lineHeight = (textProps.lineHeight || 1.4) * fontSize;
|
|
170
|
+
// Split by \n to handle explicit line breaks
|
|
171
|
+
const lines = textProps.text.split('\n');
|
|
172
|
+
// Render each line
|
|
173
|
+
for (let i = 0; i < lines.length; i++) {
|
|
174
|
+
const y = textProps.y + (i * lineHeight);
|
|
175
|
+
await this.renderTextLine(ctx, lines[i], textProps.x, y, textProps);
|
|
176
|
+
}
|
|
156
177
|
}
|
|
157
178
|
/**
|
|
158
179
|
* Renders a single line of text with all effects applied
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enhancedTextRenderer.js","sourceRoot":"","sources":["../../../../../lib/Canvas/utils/Texts/enhancedTextRenderer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"enhancedTextRenderer.js","sourceRoot":"","sources":["../../../../../lib/Canvas/utils/Texts/enhancedTextRenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"horizontalbarchart.d.ts","sourceRoot":"","sources":["../../../../../lib/Canvas/utils/Charts/horizontalbarchart.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"horizontalbarchart.d.ts","sourceRoot":"","sources":["../../../../../lib/Canvas/utils/Charts/horizontalbarchart.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,8 +18,12 @@ async function renderEnhancedText(ctx, text, x, y, style, fontSize, color, textG
|
|
|
18
18
|
fontString += 'bold ';
|
|
19
19
|
if (style?.italic)
|
|
20
20
|
fontString += 'italic ';
|
|
21
|
-
|
|
21
|
+
// Use font family without quotes for better rendering (quotes can cause rendering issues)
|
|
22
|
+
fontString += `${effectiveFontSize}px ${fontFamily}`;
|
|
22
23
|
ctx.font = fontString;
|
|
24
|
+
// Reset letter and word spacing to prevent stretched text
|
|
25
|
+
ctx.letterSpacing = '0px';
|
|
26
|
+
ctx.wordSpacing = '0px';
|
|
23
27
|
// Restore text alignment to ensure correct positioning
|
|
24
28
|
ctx.textAlign = savedTextAlign;
|
|
25
29
|
ctx.textBaseline = savedTextBaseline;
|
|
@@ -30,7 +34,8 @@ async function renderEnhancedText(ctx, text, x, y, style, fontSize, color, textG
|
|
|
30
34
|
const path = await import('path');
|
|
31
35
|
const fullPath = path.join(process.cwd(), style.fontPath);
|
|
32
36
|
GlobalFonts.registerFromPath(fullPath, style.fontName);
|
|
33
|
-
|
|
37
|
+
// Replace font family in font string (handle both quoted and unquoted formats)
|
|
38
|
+
ctx.font = fontString.replace(fontFamily, style.fontName);
|
|
34
39
|
}
|
|
35
40
|
catch (error) {
|
|
36
41
|
console.warn(`Failed to register font: ${style.fontPath}`, error);
|
|
@@ -107,9 +112,9 @@ function drawArrow(ctx, x, y, angle, size) {
|
|
|
107
112
|
/**
|
|
108
113
|
* Draws X-axis ticks and labels (horizontal axis - value axis)
|
|
109
114
|
*/
|
|
110
|
-
function drawXAxisTicks(ctx, originX, originY, axisEndX, minValue, maxValue, step, tickFontSize, customValues, valueSpacing) {
|
|
115
|
+
function drawXAxisTicks(ctx, originX, originY, axisEndX, minValue, maxValue, step, tickFontSize, customValues, valueSpacing, tickColor = '#000000') {
|
|
111
116
|
ctx.save();
|
|
112
|
-
ctx.fillStyle =
|
|
117
|
+
ctx.fillStyle = tickColor;
|
|
113
118
|
ctx.font = `${tickFontSize}px Arial`;
|
|
114
119
|
ctx.textAlign = 'center';
|
|
115
120
|
ctx.textBaseline = 'top';
|
|
@@ -137,7 +142,10 @@ function drawXAxisTicks(ctx, originX, originY, axisEndX, minValue, maxValue, ste
|
|
|
137
142
|
ctx.moveTo(x, originY);
|
|
138
143
|
ctx.lineTo(x, originY + 5);
|
|
139
144
|
ctx.stroke();
|
|
140
|
-
|
|
145
|
+
// Measure label to ensure it doesn't overflow, add minimum 2px spacing
|
|
146
|
+
const labelMetrics = ctx.measureText(labelText);
|
|
147
|
+
const labelY = originY + 10; // 10px spacing from axis line
|
|
148
|
+
ctx.fillText(labelText, x, labelY);
|
|
141
149
|
lastLabelX = x; // Update last label center position
|
|
142
150
|
});
|
|
143
151
|
}
|
|
@@ -169,8 +177,9 @@ function drawXAxisTicks(ctx, originX, originY, axisEndX, minValue, maxValue, ste
|
|
|
169
177
|
ctx.moveTo(x, originY);
|
|
170
178
|
ctx.lineTo(x, originY + 5);
|
|
171
179
|
ctx.stroke();
|
|
172
|
-
// Draw label
|
|
173
|
-
|
|
180
|
+
// Draw label with minimum 2px spacing
|
|
181
|
+
const labelY = originY + 10; // 10px spacing from axis line
|
|
182
|
+
ctx.fillText(labelText, x, labelY);
|
|
174
183
|
// Update last label position (center of the label)
|
|
175
184
|
lastLabelX = x;
|
|
176
185
|
}
|
|
@@ -180,9 +189,9 @@ function drawXAxisTicks(ctx, originX, originY, axisEndX, minValue, maxValue, ste
|
|
|
180
189
|
/**
|
|
181
190
|
* Draws Y-axis ticks and labels (vertical axis - category axis)
|
|
182
191
|
*/
|
|
183
|
-
function drawYAxisTicks(ctx, originX, originY, axisEndY, minValue, maxValue, step, tickFontSize, customValues, valueSpacing) {
|
|
192
|
+
function drawYAxisTicks(ctx, originX, originY, axisEndY, minValue, maxValue, step, tickFontSize, customValues, valueSpacing, tickColor = '#000000') {
|
|
184
193
|
ctx.save();
|
|
185
|
-
ctx.fillStyle =
|
|
194
|
+
ctx.fillStyle = tickColor;
|
|
186
195
|
ctx.font = `${tickFontSize}px Arial`;
|
|
187
196
|
ctx.textAlign = 'right';
|
|
188
197
|
ctx.textBaseline = 'middle';
|
|
@@ -517,10 +526,22 @@ function calculateResponsiveHeight(dataLength, options = {}) {
|
|
|
517
526
|
// Calculate minimum height needed: (number of bars * bar height) + (spacing between bars)
|
|
518
527
|
// Each bar needs minBarHeight, and between each pair of bars we need barSpacing
|
|
519
528
|
const chartAreaHeight = dataLength * minBarHeight + (dataLength - 1) * barSpacing;
|
|
520
|
-
// Add title height if needed
|
|
521
|
-
const titleHeight = options.labels?.title?.text ? (options.labels.title.fontSize ?? 24) +
|
|
522
|
-
const
|
|
523
|
-
|
|
529
|
+
// Add title height if needed (with margin below title)
|
|
530
|
+
const titleHeight = options.labels?.title?.text ? (options.labels.title.fontSize ?? 24) + 20 : 0;
|
|
531
|
+
const titleMargin = options.labels?.title?.text ? 20 : 0; // 20px gap between title and chart
|
|
532
|
+
// Calculate x-axis label area height (tick labels + gap + axis label)
|
|
533
|
+
const tickFontSize = options.axes?.x?.tickFontSize ?? options.axes?.y?.tickFontSize ?? 12;
|
|
534
|
+
const axisLabelFontSize = options.labels?.barLabelDefaults?.fontSize ?? 14;
|
|
535
|
+
let xAxisLabelAreaHeight = 0;
|
|
536
|
+
if (options.axes?.x?.label || options.axes?.x?.values || options.axes?.x?.range) {
|
|
537
|
+
const tickLabelHeight = tickFontSize + 10; // 10px spacing below tick labels
|
|
538
|
+
const xAxisLabelTextHeight = options.axes?.x?.label ? axisLabelFontSize + 2 : 0; // 2px minimum gap
|
|
539
|
+
xAxisLabelAreaHeight = tickLabelHeight + (options.axes?.x?.label ? 8 : 0) + xAxisLabelTextHeight; // 8px gap between tick labels and axis label
|
|
540
|
+
}
|
|
541
|
+
const yAxisLabelHeight = options.axes?.y?.label ? axisLabelFontSize + 20 : 0;
|
|
542
|
+
const axisLabelHeight = Math.max(xAxisLabelAreaHeight, yAxisLabelHeight);
|
|
543
|
+
const minBottomGap = 2; // Minimum 2px gap at bottom
|
|
544
|
+
return paddingTop + titleHeight + titleMargin + chartAreaHeight + axisLabelHeight + minBottomGap + paddingBottom;
|
|
524
545
|
}
|
|
525
546
|
/**
|
|
526
547
|
* Creates a horizontal bar chart
|
|
@@ -557,6 +578,8 @@ async function createHorizontalBarChart(data, options = {}) {
|
|
|
557
578
|
const baseline = options.axes?.x?.baseline ?? 0; // Custom baseline value (default: 0)
|
|
558
579
|
const yAxisValues = options.axes?.y?.values;
|
|
559
580
|
const tickFontSize = options.axes?.x?.tickFontSize ?? options.axes?.y?.tickFontSize ?? 12;
|
|
581
|
+
const xAxisTickColor = options.axes?.x?.tickColor ?? '#000000';
|
|
582
|
+
const yAxisTickColor = options.axes?.y?.tickColor ?? '#000000';
|
|
560
583
|
const xAxisValueSpacing = options.axes?.x?.valueSpacing;
|
|
561
584
|
const yAxisValueSpacing = options.axes?.y?.valueSpacing;
|
|
562
585
|
// Legend
|
|
@@ -806,15 +829,31 @@ async function createHorizontalBarChart(data, options = {}) {
|
|
|
806
829
|
});
|
|
807
830
|
ctx.fillRect(0, 0, adjustedWidth, adjustedHeight);
|
|
808
831
|
}
|
|
809
|
-
// Calculate axis positions
|
|
810
|
-
|
|
811
|
-
const
|
|
832
|
+
// Calculate axis positions with proper spacing
|
|
833
|
+
// Title height: fontSize + spacing below title (minimum 20px gap)
|
|
834
|
+
const titleHeight = chartTitle ? chartTitleFontSize + 20 : 0;
|
|
835
|
+
// Calculate actual height needed for x-axis labels (tick labels + axis label)
|
|
836
|
+
let xAxisLabelAreaHeight = 0;
|
|
837
|
+
if (xAxisLabel || (xAxisCustomValues && xAxisCustomValues.length > 0) || xAxisRange) {
|
|
838
|
+
// Measure tick label height (tickFontSize + spacing)
|
|
839
|
+
const tickLabelHeight = tickFontSize + 10; // 10px spacing below tick labels
|
|
840
|
+
// Measure x-axis label height if present
|
|
841
|
+
const xAxisLabelTextHeight = xAxisLabel ? axisLabelFontSize + 2 : 0; // 2px minimum gap
|
|
842
|
+
// Total height needed: tick labels + gap + axis label
|
|
843
|
+
xAxisLabelAreaHeight = tickLabelHeight + (xAxisLabel ? 8 : 0) + xAxisLabelTextHeight; // 8px gap between tick labels and axis label
|
|
844
|
+
}
|
|
845
|
+
// Y-axis label height (if present)
|
|
846
|
+
const yAxisLabelHeight = yAxisLabel ? axisLabelFontSize + 20 : 0;
|
|
847
|
+
const axisLabelHeight = Math.max(xAxisLabelAreaHeight, yAxisLabelHeight);
|
|
812
848
|
// Adjust chart area based on legend position
|
|
813
849
|
// Note: adjustedWidth and adjustedHeight are already calculated above (before canvas creation)
|
|
850
|
+
// Chart area should use the ORIGINAL width/height, not adjusted, so legend space is added to canvas, not taken from chart
|
|
814
851
|
let chartAreaLeft = paddingLeft;
|
|
815
|
-
let chartAreaRight = width - paddingRight;
|
|
816
|
-
|
|
817
|
-
|
|
852
|
+
let chartAreaRight = width - paddingRight; // Use original width - chart area stays the same size
|
|
853
|
+
// Add margin between title and chart area (minimum 2px)
|
|
854
|
+
const titleMargin = chartTitle ? 20 : 0; // 20px gap between title and chart
|
|
855
|
+
let chartAreaTop = paddingTop + titleHeight + titleMargin;
|
|
856
|
+
let chartAreaBottom = baseHeight - paddingBottom; // Use baseHeight, not adjustedHeight - chart area stays the same size
|
|
818
857
|
if (showLegend && legend && legend.length > 0) {
|
|
819
858
|
const legendSpacing = options.legend?.spacing ?? 20;
|
|
820
859
|
if (legendPosition === 'left') {
|
|
@@ -847,26 +886,36 @@ async function createHorizontalBarChart(data, options = {}) {
|
|
|
847
886
|
actualYAxisLabelWidth += 30;
|
|
848
887
|
}
|
|
849
888
|
}
|
|
850
|
-
//
|
|
889
|
+
// For left position, we need to shift chart area to the right to make room for legend
|
|
890
|
+
// But the chart area width itself should remain the same (using original width)
|
|
851
891
|
chartAreaLeft = paddingLeft + legendWidth + legendSpacing + actualYAxisLabelWidth;
|
|
852
|
-
chartAreaRight = width - paddingRight;
|
|
892
|
+
chartAreaRight = width - paddingRight; // Keep using original width
|
|
853
893
|
}
|
|
854
894
|
else if (legendPosition === 'right') {
|
|
895
|
+
// For right position, chart area stays at original position and size
|
|
896
|
+
// Legend will be positioned to the right of chartAreaRight, in the extraWidth space
|
|
855
897
|
chartAreaLeft = paddingLeft;
|
|
856
|
-
chartAreaRight = width - paddingRight;
|
|
898
|
+
chartAreaRight = width - paddingRight; // Use original width - chart area doesn't shrink
|
|
857
899
|
}
|
|
858
900
|
else if (legendPosition === 'top') {
|
|
901
|
+
// For top position, shift chart area down but keep same height
|
|
859
902
|
chartAreaTop = paddingTop + titleHeight + legendHeight + legendSpacing + minLegendSpacing;
|
|
860
|
-
chartAreaBottom =
|
|
903
|
+
chartAreaBottom = baseHeight - paddingBottom; // Use baseHeight, not adjustedHeight
|
|
861
904
|
}
|
|
862
905
|
else if (legendPosition === 'bottom') {
|
|
906
|
+
// For bottom position, chart area stays at original position
|
|
907
|
+
// Legend will be positioned below in the extraHeight space
|
|
863
908
|
chartAreaTop = paddingTop + titleHeight;
|
|
864
|
-
chartAreaBottom =
|
|
909
|
+
chartAreaBottom = baseHeight - paddingBottom; // Use baseHeight, not adjustedHeight
|
|
865
910
|
}
|
|
866
911
|
}
|
|
867
912
|
const originX = chartAreaLeft;
|
|
868
|
-
// Use adjustedHeight for originY calculation
|
|
869
|
-
|
|
913
|
+
// Use baseHeight (not adjustedHeight) for originY calculation - chart area should be based on original dimensions
|
|
914
|
+
// The adjustedHeight is only for canvas size expansion, not chart area positioning
|
|
915
|
+
// This ensures the chart size stays constant and legend space is added to canvas, not taken from chart
|
|
916
|
+
// Ensure at least 2px gap at bottom for labels
|
|
917
|
+
const minBottomGap = 2;
|
|
918
|
+
const originY = baseHeight - paddingBottom - xAxisLabelAreaHeight - minBottomGap;
|
|
870
919
|
const axisEndY = chartAreaTop;
|
|
871
920
|
const axisEndX = chartAreaRight;
|
|
872
921
|
// Draw chart title
|
|
@@ -909,9 +958,13 @@ async function createHorizontalBarChart(data, options = {}) {
|
|
|
909
958
|
// Draw X-axis arrow
|
|
910
959
|
drawArrow(ctx, axisEndX, originY, 0, arrowSize);
|
|
911
960
|
// Draw X-axis ticks and labels at baseline position
|
|
912
|
-
drawXAxisTicks(ctx, originX, originY, axisEndX, xMin, xMax, xStep, tickFontSize, xAxisCustomValues, xAxisValueSpacing);
|
|
913
|
-
// Draw Y-axis ticks and labels
|
|
914
|
-
|
|
961
|
+
drawXAxisTicks(ctx, originX, originY, axisEndX, xMin, xMax, xStep, tickFontSize, xAxisCustomValues, xAxisValueSpacing, xAxisTickColor);
|
|
962
|
+
// Draw Y-axis ticks and labels only if yAxisValues or yAxisRange is explicitly provided
|
|
963
|
+
// For horizontal bar charts, we typically only want bar labels, not numeric y-axis values
|
|
964
|
+
const shouldDrawYAxisTicks = (yAxisValues && yAxisValues.length > 0) || (options.axes?.y?.range && options.axes.y.range.min !== undefined && options.axes.y.range.max !== undefined);
|
|
965
|
+
if (shouldDrawYAxisTicks) {
|
|
966
|
+
drawYAxisTicks(ctx, originX, originY, axisEndY, yMin, yMax, yStep, tickFontSize, yAxisCustomValues, yAxisValueSpacing, yAxisTickColor);
|
|
967
|
+
}
|
|
915
968
|
// Draw axis labels
|
|
916
969
|
if (xAxisLabel) {
|
|
917
970
|
ctx.save();
|
|
@@ -919,7 +972,11 @@ async function createHorizontalBarChart(data, options = {}) {
|
|
|
919
972
|
ctx.font = `${axisLabelFontSize}px Arial`;
|
|
920
973
|
ctx.textAlign = 'center';
|
|
921
974
|
ctx.textBaseline = 'top';
|
|
922
|
-
|
|
975
|
+
// Position x-axis label with proper spacing: tick labels end at originY + tickFontSize + 10
|
|
976
|
+
// Add 8px gap between tick labels and axis label, then position axis label
|
|
977
|
+
const tickLabelBottom = originY + tickFontSize + 10;
|
|
978
|
+
const xAxisLabelY = tickLabelBottom + 8; // 8px gap between tick labels and axis label
|
|
979
|
+
ctx.fillText(xAxisLabel, (originX + axisEndX) / 2, xAxisLabelY);
|
|
923
980
|
ctx.restore();
|
|
924
981
|
}
|
|
925
982
|
if (yAxisLabel) {
|
|
@@ -1003,28 +1060,35 @@ async function createHorizontalBarChart(data, options = {}) {
|
|
|
1003
1060
|
const chartAreaHeight = originY - axisEndY;
|
|
1004
1061
|
// Calculate bar dimensions to fit within Y-axis bounds (between axisEndY and originY)
|
|
1005
1062
|
const calculatedBarSpacing = barSpacing ?? 15;
|
|
1006
|
-
|
|
1063
|
+
// Total spacing needed: spacing between bars (n-1) + initial spacing before first bar
|
|
1064
|
+
const totalSpacing = data.length * calculatedBarSpacing; // Include spacing before first bar
|
|
1007
1065
|
const availableHeight = chartAreaHeight - totalSpacing;
|
|
1008
1066
|
const calculatedBarHeight = Math.max(minBarHeight, availableHeight / data.length);
|
|
1067
|
+
// Verify all bars will fit
|
|
1068
|
+
const totalBarsHeight = data.length * calculatedBarHeight + totalSpacing;
|
|
1069
|
+
if (totalBarsHeight > chartAreaHeight) {
|
|
1070
|
+
// Adjust bar height if needed to fit all bars
|
|
1071
|
+
const adjustedBarHeight = Math.max(minBarHeight, (chartAreaHeight - totalSpacing) / data.length);
|
|
1072
|
+
if (adjustedBarHeight < calculatedBarHeight) {
|
|
1073
|
+
console.warn(`Bar height adjusted from ${calculatedBarHeight} to ${adjustedBarHeight} to fit all ${data.length} bars`);
|
|
1074
|
+
}
|
|
1075
|
+
}
|
|
1009
1076
|
const labelsToDraw = [];
|
|
1010
1077
|
// Track value label positions per bar (for adjusting bar label positions)
|
|
1011
1078
|
const valueLabelPositions = new Map();
|
|
1012
1079
|
// First pass: Draw all bars (no labels)
|
|
1013
1080
|
data.forEach((item, index) => {
|
|
1014
1081
|
// Calculate bar Y position - start from axisEndY (top) and space bars downward
|
|
1015
|
-
// First bar starts
|
|
1016
|
-
const barY = axisEndY + (index * (calculatedBarHeight + calculatedBarSpacing))
|
|
1082
|
+
// First bar starts at axisEndY, each subsequent bar: previous position + bar height + spacing
|
|
1083
|
+
const barY = axisEndY + (index * (calculatedBarHeight + calculatedBarSpacing));
|
|
1017
1084
|
const barCenterY = barY + calculatedBarHeight / 2;
|
|
1018
1085
|
// Ensure bar stays within Y-axis bounds (between axisEndY and originY)
|
|
1019
1086
|
if (barY + calculatedBarHeight > originY) {
|
|
1020
1087
|
// Bar would exceed Y-axis bottom - skip it to prevent overflow
|
|
1088
|
+
// This should not happen if chartAreaHeight is calculated correctly, but check anyway
|
|
1089
|
+
console.warn(`Bar at index ${index} (${item.label}) would exceed chart bounds. Skipping.`);
|
|
1021
1090
|
return;
|
|
1022
1091
|
}
|
|
1023
|
-
// Ensure bar doesn't exceed Y-axis bounds
|
|
1024
|
-
if (barY + calculatedBarHeight > originY) {
|
|
1025
|
-
// Adjust if bar would go below originY (Y-axis bottom)
|
|
1026
|
-
return; // Skip this bar if it doesn't fit
|
|
1027
|
-
}
|
|
1028
1092
|
// Calculate bar position and dimensions for label positioning (used for all chart types)
|
|
1029
1093
|
let barX, barEndX, barLength;
|
|
1030
1094
|
// Handle grouped/stacked/lollipop vs standard charts
|
|
@@ -1346,12 +1410,14 @@ async function createHorizontalBarChart(data, options = {}) {
|
|
|
1346
1410
|
textBaseline = 'middle';
|
|
1347
1411
|
}
|
|
1348
1412
|
// Calculate label color (for 'inside' position, check if bar is dark)
|
|
1349
|
-
|
|
1413
|
+
// Use item.labelColor if provided, otherwise fall back to barLabelDefaults.defaultColor
|
|
1414
|
+
const defaultBarLabelColor = options.labels?.barLabelDefaults?.defaultColor ?? '#000000';
|
|
1415
|
+
let labelColor = item.labelColor || defaultBarLabelColor;
|
|
1350
1416
|
if (currentLabelPosition === 'inside') {
|
|
1351
1417
|
const barColor = item.color || '#4A90E2';
|
|
1352
1418
|
const isDark = barColor === '#000000' || barColor.toLowerCase().includes('dark') ||
|
|
1353
1419
|
(barColor.startsWith('#') && parseInt(barColor.slice(1, 3), 16) < 128);
|
|
1354
|
-
labelColor = isDark ? '#FFFFFF' : (item.labelColor ||
|
|
1420
|
+
labelColor = isDark ? '#FFFFFF' : (item.labelColor || defaultBarLabelColor);
|
|
1355
1421
|
}
|
|
1356
1422
|
labelsToDraw.push({
|
|
1357
1423
|
type: 'bar',
|