@andreagiugni/tailwind-dashboard-ui 1.0.16 → 1.0.18
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/{chunk-MIIZ4KLS.cjs → chunk-MSIXHONY.cjs} +74 -14
- package/dist/chunk-MSIXHONY.cjs.map +1 -0
- package/dist/{chunk-C7OCYM5S.js → chunk-YENZVRNK.js} +74 -14
- package/dist/chunk-YENZVRNK.js.map +1 -0
- package/dist/components/Charts/BarChart.cjs +2 -2
- package/dist/components/Charts/BarChart.js +1 -1
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-C7OCYM5S.js.map +0 -1
- package/dist/chunk-MIIZ4KLS.cjs.map +0 -1
|
@@ -291,17 +291,69 @@ function applyMinimumHorizontalBarWidth(chartContext, minBarWidth, valueMatrix)
|
|
|
291
291
|
path.parentNode?.insertBefore(overlay, path.nextSibling);
|
|
292
292
|
});
|
|
293
293
|
}
|
|
294
|
-
function
|
|
295
|
-
|
|
294
|
+
function centerHorizontalBarDataLabels(chartContext, minBarWidth, valueMatrix) {
|
|
295
|
+
const root = getChartElement(chartContext);
|
|
296
|
+
if (!root) return;
|
|
297
|
+
const values = valueMatrix.flat();
|
|
298
|
+
const paths = Array.from(root.querySelectorAll(".apexcharts-bar-area"));
|
|
299
|
+
const labels = Array.from(root.querySelectorAll(".apexcharts-datalabel"));
|
|
300
|
+
paths.forEach((path, index) => {
|
|
301
|
+
const label = labels[index];
|
|
302
|
+
const value = values[index] ?? 0;
|
|
303
|
+
if (!label || value < 0 || typeof path.getBBox !== "function") return;
|
|
304
|
+
const box = path.getBBox();
|
|
305
|
+
if (box.height <= 0) return;
|
|
306
|
+
const width = value >= 0 && box.width < minBarWidth ? minBarWidth : box.width;
|
|
307
|
+
const centerX = box.x + width / 2;
|
|
308
|
+
const centerY = box.y + box.height / 2;
|
|
309
|
+
label.setAttribute("x", `${centerX}`);
|
|
310
|
+
label.setAttribute("y", `${centerY}`);
|
|
311
|
+
label.setAttribute("text-anchor", "middle");
|
|
312
|
+
label.setAttribute("dominant-baseline", "middle");
|
|
313
|
+
label.setAttribute("alignment-baseline", "middle");
|
|
314
|
+
label.querySelectorAll("tspan").forEach((tspan) => {
|
|
315
|
+
tspan.setAttribute("x", `${centerX}`);
|
|
316
|
+
tspan.setAttribute("y", `${centerY}`);
|
|
317
|
+
});
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
function runHorizontalBarDomAdjustments(chartContext, minBarWidth, valueMatrix, shouldApplyMinBarWidth, shouldCenterDataLabels) {
|
|
321
|
+
if (shouldApplyMinBarWidth) {
|
|
322
|
+
applyMinimumHorizontalBarWidth(chartContext, minBarWidth, valueMatrix);
|
|
323
|
+
}
|
|
324
|
+
if (shouldCenterDataLabels) {
|
|
325
|
+
centerHorizontalBarDataLabels(chartContext, minBarWidth, valueMatrix);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
function scheduleHorizontalBarDomAdjustments(chartContext, minBarWidth, valueMatrix, shouldApplyMinBarWidth, shouldCenterDataLabels) {
|
|
329
|
+
runHorizontalBarDomAdjustments(
|
|
330
|
+
chartContext,
|
|
331
|
+
minBarWidth,
|
|
332
|
+
valueMatrix,
|
|
333
|
+
shouldApplyMinBarWidth,
|
|
334
|
+
shouldCenterDataLabels
|
|
335
|
+
);
|
|
296
336
|
if (typeof window === "undefined" || typeof window.requestAnimationFrame !== "function") return;
|
|
297
337
|
window.requestAnimationFrame(() => {
|
|
298
|
-
|
|
338
|
+
runHorizontalBarDomAdjustments(
|
|
339
|
+
chartContext,
|
|
340
|
+
minBarWidth,
|
|
341
|
+
valueMatrix,
|
|
342
|
+
shouldApplyMinBarWidth,
|
|
343
|
+
shouldCenterDataLabels
|
|
344
|
+
);
|
|
299
345
|
});
|
|
300
346
|
}
|
|
301
|
-
function
|
|
347
|
+
function composeHorizontalBarLifecycleEvent(userEvent, minBarWidth, valueMatrix, shouldApplyMinBarWidth, shouldCenterDataLabels) {
|
|
302
348
|
return (chart, eventOptions) => {
|
|
303
349
|
userEvent?.(chart, eventOptions);
|
|
304
|
-
|
|
350
|
+
scheduleHorizontalBarDomAdjustments(
|
|
351
|
+
chart,
|
|
352
|
+
minBarWidth,
|
|
353
|
+
valueMatrix,
|
|
354
|
+
shouldApplyMinBarWidth,
|
|
355
|
+
shouldCenterDataLabels
|
|
356
|
+
);
|
|
305
357
|
};
|
|
306
358
|
}
|
|
307
359
|
var BarChart = ({
|
|
@@ -336,6 +388,8 @@ var BarChart = ({
|
|
|
336
388
|
const hasGeneratedLabels = showBarValues || showBarPercentages;
|
|
337
389
|
const resolvedMinBarWidth = minBarWidth ?? (minBarPercentage === 0 ? 0 : 30);
|
|
338
390
|
const hasMinimumBarWidth = isHorizontal && resolvedMinBarWidth > 0;
|
|
391
|
+
const shouldCenterDataLabels = isHorizontal && showBarPercentages;
|
|
392
|
+
const hasHorizontalDomAdjustments = hasMinimumBarWidth || shouldCenterDataLabels;
|
|
339
393
|
const baseGridOptions = isHorizontal ? mergeGridOptions(defaultOptions.grid, horizontalGridOptions) : defaultOptions.grid;
|
|
340
394
|
const getLabelContext = (seriesIndex, dataPointIndex, total) => ({
|
|
341
395
|
seriesIndex,
|
|
@@ -405,22 +459,28 @@ var BarChart = ({
|
|
|
405
459
|
)
|
|
406
460
|
} : void 0;
|
|
407
461
|
const userChartEvents = options?.chart?.events;
|
|
408
|
-
const generatedChartEvents =
|
|
462
|
+
const generatedChartEvents = hasHorizontalDomAdjustments ? {
|
|
409
463
|
...userChartEvents,
|
|
410
|
-
mounted:
|
|
464
|
+
mounted: composeHorizontalBarLifecycleEvent(
|
|
411
465
|
userChartEvents?.mounted,
|
|
412
466
|
resolvedMinBarWidth,
|
|
413
|
-
valueMatrix
|
|
467
|
+
valueMatrix,
|
|
468
|
+
hasMinimumBarWidth,
|
|
469
|
+
shouldCenterDataLabels
|
|
414
470
|
),
|
|
415
|
-
updated:
|
|
471
|
+
updated: composeHorizontalBarLifecycleEvent(
|
|
416
472
|
userChartEvents?.updated,
|
|
417
473
|
resolvedMinBarWidth,
|
|
418
|
-
valueMatrix
|
|
474
|
+
valueMatrix,
|
|
475
|
+
hasMinimumBarWidth,
|
|
476
|
+
shouldCenterDataLabels
|
|
419
477
|
),
|
|
420
|
-
animationEnd:
|
|
478
|
+
animationEnd: composeHorizontalBarLifecycleEvent(
|
|
421
479
|
userChartEvents?.animationEnd,
|
|
422
480
|
resolvedMinBarWidth,
|
|
423
|
-
valueMatrix
|
|
481
|
+
valueMatrix,
|
|
482
|
+
hasMinimumBarWidth,
|
|
483
|
+
shouldCenterDataLabels
|
|
424
484
|
)
|
|
425
485
|
} : userChartEvents;
|
|
426
486
|
const mergedOptions = {
|
|
@@ -496,5 +556,5 @@ var BarChart = ({
|
|
|
496
556
|
};
|
|
497
557
|
|
|
498
558
|
exports.BarChart = BarChart;
|
|
499
|
-
//# sourceMappingURL=chunk-
|
|
500
|
-
//# sourceMappingURL=chunk-
|
|
559
|
+
//# sourceMappingURL=chunk-MSIXHONY.cjs.map
|
|
560
|
+
//# sourceMappingURL=chunk-MSIXHONY.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Charts/BarChart.tsx"],"names":["React","jsx"],"mappings":"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","file":"chunk-MSIXHONY.cjs","sourcesContent":["\"use client\";\nimport React from \"react\";\nimport type { ApexOptions } from \"apexcharts\";\n\ntype ReactApexChartProps = {\n options: ApexOptions;\n series: ApexAxisChartSeries;\n type: \"bar\" | \"area\";\n height: number;\n};\ntype ReactApexChartComponent = React.ComponentType<ReactApexChartProps>;\n\nexport interface BarChartProps {\n series?: ApexAxisChartSeries;\n categories?: string[];\n colors?: string[];\n barColors?: string[];\n height?: number;\n horizontal?: boolean;\n showBarValues?: boolean;\n showBarPercentages?: boolean;\n minBarWidth?: number;\n /** @deprecated Use minBarWidth. Passing 0 still disables the minimum visual width. */\n minBarPercentage?: number;\n percentageMode?: \"total\" | \"category\";\n barValueFormatter?: (value: number, context: BarChartLabelContext) => string;\n barPercentageFormatter?: (\n percentage: number,\n value: number,\n context: BarChartLabelContext\n ) => string;\n options?: ApexOptions;\n}\n\nexport interface BarChartLabelContext {\n seriesIndex: number;\n dataPointIndex: number;\n seriesName?: string;\n category?: string;\n total: number;\n}\n\nconst defaultOptions: ApexOptions = {\n colors: [\"#465fff\"],\n chart: {\n fontFamily: \"Outfit, sans-serif\",\n type: \"bar\",\n height: 180,\n animations: {\n enabled: true,\n speed: 200,\n animateGradually: {\n enabled: false,\n delay: 0,\n },\n dynamicAnimation: {\n enabled: true,\n speed: 175,\n },\n },\n toolbar: {\n show: false,\n },\n },\n plotOptions: {\n bar: {\n horizontal: false,\n columnWidth: \"39%\",\n borderRadius: 5,\n borderRadiusApplication: \"end\",\n },\n },\n dataLabels: {\n enabled: false,\n },\n // No transparent stroke around the columns: it shrinks and shifts the\n // painted bar inside its allocated slot, so the hover highlight band\n // (crosshairs width \"barWidth\" = the allocated width) would render wider\n // than — and offset from — the visible bar.\n stroke: {\n show: false,\n },\n xaxis: {\n categories: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n axisBorder: {\n show: false,\n },\n axisTicks: {\n show: false,\n },\n // Match the hover highlight band to the bar width (the default band spans\n // the whole category slot, looking ~3x wider than the 39% columns).\n crosshairs: {\n width: \"barWidth\",\n },\n },\n legend: {\n show: true,\n position: \"top\",\n horizontalAlign: \"left\",\n fontFamily: \"Outfit\",\n // Rounded, border-less swatches that echo the column styling. ApexCharts\n // sets the marker span's `color` to the series color, so `currentColor`\n // picks it up; `customHTML` lets us round the corners (the built-in shapes\n // are sharp SVG paths that CSS border-radius can't touch).\n markers: {\n size: 7,\n strokeWidth: 0,\n customHTML: () =>\n '<span style=\"display:block;height:100%;width:100%;border-radius:3px;background:currentColor\"></span>',\n },\n },\n yaxis: {\n title: {\n text: undefined,\n },\n },\n grid: {\n yaxis: {\n lines: {\n show: true,\n },\n },\n },\n fill: {\n opacity: 1,\n },\n tooltip: {\n x: {\n show: false,\n },\n y: {\n formatter: (val: number) => `${val}`,\n },\n },\n};\n\nconst defaultSeries: ApexAxisChartSeries = [\n {\n name: \"Sales\",\n data: [168, 385, 201, 298, 187, 195, 291, 110, 215, 390, 280, 112],\n },\n];\n\nconst horizontalGridOptions: ApexOptions[\"grid\"] = {\n borderColor: \"transparent\",\n xaxis: {\n lines: {\n show: false,\n },\n },\n yaxis: {\n lines: {\n show: false,\n },\n },\n};\n\nfunction mergeGridOptions(\n base: ApexOptions[\"grid\"],\n override: ApexOptions[\"grid\"]\n): ApexOptions[\"grid\"] {\n return {\n ...base,\n ...override,\n xaxis: {\n ...base?.xaxis,\n ...override?.xaxis,\n lines: {\n ...base?.xaxis?.lines,\n ...override?.xaxis?.lines,\n },\n },\n yaxis: {\n ...base?.yaxis,\n ...override?.yaxis,\n lines: {\n ...base?.yaxis?.lines,\n ...override?.yaxis?.lines,\n },\n },\n };\n}\n\nfunction getDataValue(value: unknown): number | null {\n if (typeof value === \"number\") return value;\n if (Array.isArray(value) && typeof value[1] === \"number\") return value[1];\n if (value && typeof value === \"object\" && \"y\" in value) {\n const y = (value as { y: unknown }).y;\n return typeof y === \"number\" ? y : null;\n }\n return null;\n}\n\nfunction getValueMatrix(series: ApexAxisChartSeries): number[][] {\n return series.map((item) => item.data.map((value) => getDataValue(value) ?? 0));\n}\n\nfunction getSeriesTotal(matrix: number[][]): number {\n return matrix.reduce(\n (seriesTotal, data) => seriesTotal + data.reduce((total, value) => total + value, 0),\n 0\n );\n}\n\nfunction getCategoryTotal(matrix: number[][], dataPointIndex: number): number {\n return matrix.reduce((total, data) => total + (data[dataPointIndex] ?? 0), 0);\n}\n\nfunction withDataPointColor(\n value: unknown,\n fillColor: string,\n dataPointIndex: number,\n categories?: string[]\n): unknown {\n if (Array.isArray(value)) {\n return {\n x: value[0],\n y: value[1],\n fillColor,\n };\n }\n\n if (value && typeof value === \"object\") {\n return {\n ...value,\n fillColor,\n };\n }\n\n return {\n x: categories?.[dataPointIndex] ?? dataPointIndex,\n y: value,\n fillColor,\n };\n}\n\nfunction applyBarColors(\n series: ApexAxisChartSeries,\n barColors: string[] | undefined,\n fallbackColors: string[] | undefined,\n categories?: string[]\n): ApexAxisChartSeries {\n if (!barColors?.length) return series;\n\n return series.map((item, seriesIndex) => {\n const fallbackColor =\n fallbackColors?.[seriesIndex] ?? fallbackColors?.[0] ?? defaultOptions.colors?.[0];\n\n return {\n ...item,\n data: item.data.map((value, dataPointIndex) =>\n withDataPointColor(\n value,\n barColors[dataPointIndex] ?? fallbackColor ?? \"#465fff\",\n dataPointIndex,\n categories\n )\n ) as typeof item.data,\n };\n });\n}\n\nfunction mergeDataLabels(\n base: ApexOptions[\"dataLabels\"],\n override: ApexOptions[\"dataLabels\"],\n generated: ApexOptions[\"dataLabels\"]\n): ApexOptions[\"dataLabels\"] {\n return {\n ...base,\n ...override,\n ...generated,\n style: {\n ...base?.style,\n ...override?.style,\n ...generated?.style,\n },\n background: {\n ...base?.background,\n ...override?.background,\n ...generated?.background,\n },\n };\n}\n\nfunction mergeTooltipOptions(\n base: ApexOptions[\"tooltip\"],\n override: ApexOptions[\"tooltip\"],\n generated: ApexOptions[\"tooltip\"]\n): ApexOptions[\"tooltip\"] {\n const baseY = Array.isArray(base?.y) ? undefined : base?.y;\n const overrideY = Array.isArray(override?.y) ? undefined : override?.y;\n const generatedY = Array.isArray(generated?.y) ? undefined : generated?.y;\n\n return {\n ...base,\n ...override,\n ...generated,\n x: {\n ...base?.x,\n ...override?.x,\n ...generated?.x,\n },\n y: {\n ...baseY,\n ...overrideY,\n ...generatedY,\n },\n };\n}\n\nfunction mergeAnnotations(\n override: ApexOptions[\"annotations\"],\n generated: ApexOptions[\"annotations\"]\n): ApexOptions[\"annotations\"] | undefined {\n if (!override && !generated) return undefined;\n return {\n ...override,\n ...generated,\n points: [...(override?.points ?? []), ...(generated?.points ?? [])],\n };\n}\n\nfunction getChartElement(chartContext: unknown): Element | null {\n if (typeof Element === \"undefined\") return null;\n if (!chartContext || typeof chartContext !== \"object\" || !(\"el\" in chartContext)) return null;\n\n const element = (chartContext as { el?: unknown }).el;\n return element instanceof Element ? element : null;\n}\n\nfunction applyMinimumHorizontalBarWidth(\n chartContext: unknown,\n minBarWidth: number,\n valueMatrix: number[][]\n) {\n const root = getChartElement(chartContext);\n if (!root) return;\n\n root\n .querySelectorAll(\"[data-taildashboard-min-bar]\")\n .forEach((element) => element.remove());\n\n if (minBarWidth <= 0) return;\n\n const values = valueMatrix.flat();\n const paths = Array.from(root.querySelectorAll<SVGPathElement>(\".apexcharts-bar-area\"));\n const documentRef = root.ownerDocument;\n\n paths.forEach((path, index) => {\n const value = values[index] ?? 0;\n if (value < 0 || typeof path.getBBox !== \"function\") return;\n\n const box = path.getBBox();\n if (box.width >= minBarWidth || box.height <= 0) return;\n\n const overlay = documentRef.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\");\n const radius = Math.min(5, box.height / 2, minBarWidth / 2);\n overlay.setAttribute(\"data-taildashboard-min-bar\", \"true\");\n overlay.setAttribute(\"x\", `${box.x}`);\n overlay.setAttribute(\"y\", `${box.y}`);\n overlay.setAttribute(\"width\", `${minBarWidth}`);\n overlay.setAttribute(\"height\", `${box.height}`);\n overlay.setAttribute(\"rx\", `${radius}`);\n overlay.setAttribute(\"fill\", path.getAttribute(\"fill\") ?? path.style.fill ?? \"currentColor\");\n overlay.setAttribute(\"opacity\", path.getAttribute(\"opacity\") ?? path.style.opacity ?? \"1\");\n overlay.style.pointerEvents = \"none\";\n path.parentNode?.insertBefore(overlay, path.nextSibling);\n });\n}\n\nfunction centerHorizontalBarDataLabels(\n chartContext: unknown,\n minBarWidth: number,\n valueMatrix: number[][]\n) {\n const root = getChartElement(chartContext);\n if (!root) return;\n\n const values = valueMatrix.flat();\n const paths = Array.from(root.querySelectorAll<SVGPathElement>(\".apexcharts-bar-area\"));\n const labels = Array.from(root.querySelectorAll<SVGTextElement>(\".apexcharts-datalabel\"));\n\n paths.forEach((path, index) => {\n const label = labels[index];\n const value = values[index] ?? 0;\n if (!label || value < 0 || typeof path.getBBox !== \"function\") return;\n\n const box = path.getBBox();\n if (box.height <= 0) return;\n\n const width = value >= 0 && box.width < minBarWidth ? minBarWidth : box.width;\n const centerX = box.x + width / 2;\n const centerY = box.y + box.height / 2;\n\n label.setAttribute(\"x\", `${centerX}`);\n label.setAttribute(\"y\", `${centerY}`);\n label.setAttribute(\"text-anchor\", \"middle\");\n label.setAttribute(\"dominant-baseline\", \"middle\");\n label.setAttribute(\"alignment-baseline\", \"middle\");\n label.querySelectorAll(\"tspan\").forEach((tspan) => {\n tspan.setAttribute(\"x\", `${centerX}`);\n tspan.setAttribute(\"y\", `${centerY}`);\n });\n });\n}\n\ntype ApexChartEvents = NonNullable<NonNullable<ApexOptions[\"chart\"]>[\"events\"]>;\ntype ApexLifecycleEvent = NonNullable<ApexChartEvents[\"mounted\"]>;\n\nfunction runHorizontalBarDomAdjustments(\n chartContext: unknown,\n minBarWidth: number,\n valueMatrix: number[][],\n shouldApplyMinBarWidth: boolean,\n shouldCenterDataLabels: boolean\n) {\n if (shouldApplyMinBarWidth) {\n applyMinimumHorizontalBarWidth(chartContext, minBarWidth, valueMatrix);\n }\n if (shouldCenterDataLabels) {\n centerHorizontalBarDataLabels(chartContext, minBarWidth, valueMatrix);\n }\n}\n\nfunction scheduleHorizontalBarDomAdjustments(\n chartContext: unknown,\n minBarWidth: number,\n valueMatrix: number[][],\n shouldApplyMinBarWidth: boolean,\n shouldCenterDataLabels: boolean\n) {\n runHorizontalBarDomAdjustments(\n chartContext,\n minBarWidth,\n valueMatrix,\n shouldApplyMinBarWidth,\n shouldCenterDataLabels\n );\n\n if (typeof window === \"undefined\" || typeof window.requestAnimationFrame !== \"function\") return;\n\n window.requestAnimationFrame(() => {\n runHorizontalBarDomAdjustments(\n chartContext,\n minBarWidth,\n valueMatrix,\n shouldApplyMinBarWidth,\n shouldCenterDataLabels\n );\n });\n}\n\nfunction composeHorizontalBarLifecycleEvent(\n userEvent: ApexLifecycleEvent | undefined,\n minBarWidth: number,\n valueMatrix: number[][],\n shouldApplyMinBarWidth: boolean,\n shouldCenterDataLabels: boolean\n): ApexLifecycleEvent {\n return (chart, eventOptions) => {\n userEvent?.(chart, eventOptions);\n scheduleHorizontalBarDomAdjustments(\n chart,\n minBarWidth,\n valueMatrix,\n shouldApplyMinBarWidth,\n shouldCenterDataLabels\n );\n };\n}\n\nexport const BarChart: React.FC<BarChartProps> = ({\n series,\n categories,\n colors,\n barColors,\n height,\n horizontal,\n showBarValues = false,\n showBarPercentages = false,\n minBarWidth,\n minBarPercentage,\n percentageMode = \"total\",\n barValueFormatter,\n barPercentageFormatter,\n options,\n}) => {\n const [Chart, setChart] = React.useState<ReactApexChartComponent | null>(null);\n const effectiveSeries = series ?? defaultSeries;\n const effectiveCategories =\n categories ?? (options?.xaxis?.categories as string[] | undefined);\n const effectiveColors = colors ?? options?.colors ?? defaultOptions.colors;\n const chartSeries = applyBarColors(\n effectiveSeries,\n barColors,\n effectiveColors as string[] | undefined,\n effectiveCategories\n );\n const valueMatrix = getValueMatrix(effectiveSeries);\n const seriesTotal = getSeriesTotal(valueMatrix);\n const isHorizontal = horizontal ?? (options?.plotOptions?.bar?.horizontal === true);\n const hasGeneratedLabels = showBarValues || showBarPercentages;\n const resolvedMinBarWidth = minBarWidth ?? (minBarPercentage === 0 ? 0 : 30);\n const hasMinimumBarWidth = isHorizontal && resolvedMinBarWidth > 0;\n const shouldCenterDataLabels = isHorizontal && showBarPercentages;\n const hasHorizontalDomAdjustments = hasMinimumBarWidth || shouldCenterDataLabels;\n const baseGridOptions = isHorizontal\n ? mergeGridOptions(defaultOptions.grid, horizontalGridOptions)\n : defaultOptions.grid;\n const getLabelContext = (\n seriesIndex: number,\n dataPointIndex: number,\n total: number\n ): BarChartLabelContext => ({\n seriesIndex,\n dataPointIndex,\n seriesName: effectiveSeries[seriesIndex]?.name,\n category: effectiveCategories?.[dataPointIndex],\n total,\n });\n const generatedDataLabels: ApexOptions[\"dataLabels\"] | undefined = hasGeneratedLabels\n ? {\n enabled: true,\n textAnchor: \"middle\",\n offsetX: 0,\n offsetY: 0,\n background: {\n enabled: false,\n },\n style: {\n fontSize: \"12px\",\n fontWeight: 600,\n colors: [showBarPercentages ? \"#ffffff\" : \"#344054\"],\n },\n formatter: (_value, opts) => {\n const seriesIndex = opts?.seriesIndex ?? 0;\n const dataPointIndex = opts?.dataPointIndex ?? 0;\n const numericValue = valueMatrix[seriesIndex]?.[dataPointIndex] ?? 0;\n const total =\n percentageMode === \"category\"\n ? getCategoryTotal(valueMatrix, dataPointIndex)\n : seriesTotal;\n const context = getLabelContext(seriesIndex, dataPointIndex, total);\n\n if (showBarPercentages) {\n const percentage = total > 0 ? (numericValue / total) * 100 : 0;\n return barPercentageFormatter\n ? barPercentageFormatter(percentage, numericValue, context)\n : `${Math.round(percentage)}%`;\n }\n\n return barValueFormatter\n ? barValueFormatter(numericValue, context)\n : `${numericValue}`;\n },\n }\n : undefined;\n const generatedAnnotations: ApexOptions[\"annotations\"] | undefined =\n isHorizontal && showBarValues\n ? {\n points: effectiveSeries.flatMap((item, seriesIndex) =>\n item.data.map((dataPoint, dataPointIndex) => {\n const value = getDataValue(dataPoint) ?? 0;\n const total =\n percentageMode === \"category\"\n ? getCategoryTotal(valueMatrix, dataPointIndex)\n : seriesTotal;\n const context = getLabelContext(seriesIndex, dataPointIndex, total);\n return {\n x: value,\n y: dataPointIndex,\n seriesIndex,\n marker: {\n size: 0,\n },\n label: {\n text: barValueFormatter ? barValueFormatter(value, context) : `${value}`,\n borderWidth: 0,\n offsetY: -12,\n style: {\n background: \"transparent\",\n color: \"#344054\",\n fontSize: \"12px\",\n fontWeight: 600,\n padding: {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n },\n },\n },\n };\n })\n ),\n }\n : undefined;\n const userChartEvents = options?.chart?.events;\n const generatedChartEvents: ApexChartEvents | undefined = hasHorizontalDomAdjustments\n ? {\n ...userChartEvents,\n mounted: composeHorizontalBarLifecycleEvent(\n userChartEvents?.mounted,\n resolvedMinBarWidth,\n valueMatrix,\n hasMinimumBarWidth,\n shouldCenterDataLabels\n ),\n updated: composeHorizontalBarLifecycleEvent(\n userChartEvents?.updated,\n resolvedMinBarWidth,\n valueMatrix,\n hasMinimumBarWidth,\n shouldCenterDataLabels\n ),\n animationEnd: composeHorizontalBarLifecycleEvent(\n userChartEvents?.animationEnd,\n resolvedMinBarWidth,\n valueMatrix,\n hasMinimumBarWidth,\n shouldCenterDataLabels\n ),\n }\n : userChartEvents;\n const mergedOptions: ApexOptions = {\n ...defaultOptions,\n ...options,\n colors: effectiveColors,\n chart: {\n ...defaultOptions.chart,\n ...options?.chart,\n events: generatedChartEvents,\n animations: {\n ...defaultOptions.chart?.animations,\n ...options?.chart?.animations,\n animateGradually: {\n ...defaultOptions.chart?.animations?.animateGradually,\n ...options?.chart?.animations?.animateGradually,\n },\n dynamicAnimation: {\n ...defaultOptions.chart?.animations?.dynamicAnimation,\n ...options?.chart?.animations?.dynamicAnimation,\n },\n },\n height: height ?? options?.chart?.height ?? defaultOptions.chart?.height,\n },\n plotOptions: {\n ...defaultOptions.plotOptions,\n ...options?.plotOptions,\n bar: {\n ...defaultOptions.plotOptions?.bar,\n ...options?.plotOptions?.bar,\n horizontal: isHorizontal,\n ...(hasGeneratedLabels && {\n dataLabels: {\n ...options?.plotOptions?.bar?.dataLabels,\n position: showBarPercentages ? \"center\" : \"top\",\n },\n }),\n },\n },\n dataLabels: mergeDataLabels(\n defaultOptions.dataLabels,\n options?.dataLabels,\n generatedDataLabels\n ),\n xaxis: {\n ...defaultOptions.xaxis,\n ...options?.xaxis,\n categories:\n categories ??\n options?.xaxis?.categories ??\n defaultOptions.xaxis?.categories,\n },\n grid: mergeGridOptions(baseGridOptions, options?.grid),\n annotations: mergeAnnotations(options?.annotations, generatedAnnotations),\n tooltip: mergeTooltipOptions(defaultOptions.tooltip, options?.tooltip, undefined),\n };\n\n React.useEffect(() => {\n let isMounted = true;\n\n import(\"react-apexcharts\").then((module) => {\n if (isMounted) setChart(() => module.default as ReactApexChartComponent);\n });\n\n return () => {\n isMounted = false;\n };\n }, []);\n\n if (!Chart) return null;\n\n return (\n <Chart\n options={mergedOptions}\n series={chartSeries}\n type=\"bar\"\n height={height ?? 180}\n />\n );\n};\n"]}
|
|
@@ -285,17 +285,69 @@ function applyMinimumHorizontalBarWidth(chartContext, minBarWidth, valueMatrix)
|
|
|
285
285
|
path.parentNode?.insertBefore(overlay, path.nextSibling);
|
|
286
286
|
});
|
|
287
287
|
}
|
|
288
|
-
function
|
|
289
|
-
|
|
288
|
+
function centerHorizontalBarDataLabels(chartContext, minBarWidth, valueMatrix) {
|
|
289
|
+
const root = getChartElement(chartContext);
|
|
290
|
+
if (!root) return;
|
|
291
|
+
const values = valueMatrix.flat();
|
|
292
|
+
const paths = Array.from(root.querySelectorAll(".apexcharts-bar-area"));
|
|
293
|
+
const labels = Array.from(root.querySelectorAll(".apexcharts-datalabel"));
|
|
294
|
+
paths.forEach((path, index) => {
|
|
295
|
+
const label = labels[index];
|
|
296
|
+
const value = values[index] ?? 0;
|
|
297
|
+
if (!label || value < 0 || typeof path.getBBox !== "function") return;
|
|
298
|
+
const box = path.getBBox();
|
|
299
|
+
if (box.height <= 0) return;
|
|
300
|
+
const width = value >= 0 && box.width < minBarWidth ? minBarWidth : box.width;
|
|
301
|
+
const centerX = box.x + width / 2;
|
|
302
|
+
const centerY = box.y + box.height / 2;
|
|
303
|
+
label.setAttribute("x", `${centerX}`);
|
|
304
|
+
label.setAttribute("y", `${centerY}`);
|
|
305
|
+
label.setAttribute("text-anchor", "middle");
|
|
306
|
+
label.setAttribute("dominant-baseline", "middle");
|
|
307
|
+
label.setAttribute("alignment-baseline", "middle");
|
|
308
|
+
label.querySelectorAll("tspan").forEach((tspan) => {
|
|
309
|
+
tspan.setAttribute("x", `${centerX}`);
|
|
310
|
+
tspan.setAttribute("y", `${centerY}`);
|
|
311
|
+
});
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
function runHorizontalBarDomAdjustments(chartContext, minBarWidth, valueMatrix, shouldApplyMinBarWidth, shouldCenterDataLabels) {
|
|
315
|
+
if (shouldApplyMinBarWidth) {
|
|
316
|
+
applyMinimumHorizontalBarWidth(chartContext, minBarWidth, valueMatrix);
|
|
317
|
+
}
|
|
318
|
+
if (shouldCenterDataLabels) {
|
|
319
|
+
centerHorizontalBarDataLabels(chartContext, minBarWidth, valueMatrix);
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
function scheduleHorizontalBarDomAdjustments(chartContext, minBarWidth, valueMatrix, shouldApplyMinBarWidth, shouldCenterDataLabels) {
|
|
323
|
+
runHorizontalBarDomAdjustments(
|
|
324
|
+
chartContext,
|
|
325
|
+
minBarWidth,
|
|
326
|
+
valueMatrix,
|
|
327
|
+
shouldApplyMinBarWidth,
|
|
328
|
+
shouldCenterDataLabels
|
|
329
|
+
);
|
|
290
330
|
if (typeof window === "undefined" || typeof window.requestAnimationFrame !== "function") return;
|
|
291
331
|
window.requestAnimationFrame(() => {
|
|
292
|
-
|
|
332
|
+
runHorizontalBarDomAdjustments(
|
|
333
|
+
chartContext,
|
|
334
|
+
minBarWidth,
|
|
335
|
+
valueMatrix,
|
|
336
|
+
shouldApplyMinBarWidth,
|
|
337
|
+
shouldCenterDataLabels
|
|
338
|
+
);
|
|
293
339
|
});
|
|
294
340
|
}
|
|
295
|
-
function
|
|
341
|
+
function composeHorizontalBarLifecycleEvent(userEvent, minBarWidth, valueMatrix, shouldApplyMinBarWidth, shouldCenterDataLabels) {
|
|
296
342
|
return (chart, eventOptions) => {
|
|
297
343
|
userEvent?.(chart, eventOptions);
|
|
298
|
-
|
|
344
|
+
scheduleHorizontalBarDomAdjustments(
|
|
345
|
+
chart,
|
|
346
|
+
minBarWidth,
|
|
347
|
+
valueMatrix,
|
|
348
|
+
shouldApplyMinBarWidth,
|
|
349
|
+
shouldCenterDataLabels
|
|
350
|
+
);
|
|
299
351
|
};
|
|
300
352
|
}
|
|
301
353
|
var BarChart = ({
|
|
@@ -330,6 +382,8 @@ var BarChart = ({
|
|
|
330
382
|
const hasGeneratedLabels = showBarValues || showBarPercentages;
|
|
331
383
|
const resolvedMinBarWidth = minBarWidth ?? (minBarPercentage === 0 ? 0 : 30);
|
|
332
384
|
const hasMinimumBarWidth = isHorizontal && resolvedMinBarWidth > 0;
|
|
385
|
+
const shouldCenterDataLabels = isHorizontal && showBarPercentages;
|
|
386
|
+
const hasHorizontalDomAdjustments = hasMinimumBarWidth || shouldCenterDataLabels;
|
|
333
387
|
const baseGridOptions = isHorizontal ? mergeGridOptions(defaultOptions.grid, horizontalGridOptions) : defaultOptions.grid;
|
|
334
388
|
const getLabelContext = (seriesIndex, dataPointIndex, total) => ({
|
|
335
389
|
seriesIndex,
|
|
@@ -399,22 +453,28 @@ var BarChart = ({
|
|
|
399
453
|
)
|
|
400
454
|
} : void 0;
|
|
401
455
|
const userChartEvents = options?.chart?.events;
|
|
402
|
-
const generatedChartEvents =
|
|
456
|
+
const generatedChartEvents = hasHorizontalDomAdjustments ? {
|
|
403
457
|
...userChartEvents,
|
|
404
|
-
mounted:
|
|
458
|
+
mounted: composeHorizontalBarLifecycleEvent(
|
|
405
459
|
userChartEvents?.mounted,
|
|
406
460
|
resolvedMinBarWidth,
|
|
407
|
-
valueMatrix
|
|
461
|
+
valueMatrix,
|
|
462
|
+
hasMinimumBarWidth,
|
|
463
|
+
shouldCenterDataLabels
|
|
408
464
|
),
|
|
409
|
-
updated:
|
|
465
|
+
updated: composeHorizontalBarLifecycleEvent(
|
|
410
466
|
userChartEvents?.updated,
|
|
411
467
|
resolvedMinBarWidth,
|
|
412
|
-
valueMatrix
|
|
468
|
+
valueMatrix,
|
|
469
|
+
hasMinimumBarWidth,
|
|
470
|
+
shouldCenterDataLabels
|
|
413
471
|
),
|
|
414
|
-
animationEnd:
|
|
472
|
+
animationEnd: composeHorizontalBarLifecycleEvent(
|
|
415
473
|
userChartEvents?.animationEnd,
|
|
416
474
|
resolvedMinBarWidth,
|
|
417
|
-
valueMatrix
|
|
475
|
+
valueMatrix,
|
|
476
|
+
hasMinimumBarWidth,
|
|
477
|
+
shouldCenterDataLabels
|
|
418
478
|
)
|
|
419
479
|
} : userChartEvents;
|
|
420
480
|
const mergedOptions = {
|
|
@@ -490,5 +550,5 @@ var BarChart = ({
|
|
|
490
550
|
};
|
|
491
551
|
|
|
492
552
|
export { BarChart };
|
|
493
|
-
//# sourceMappingURL=chunk-
|
|
494
|
-
//# sourceMappingURL=chunk-
|
|
553
|
+
//# sourceMappingURL=chunk-YENZVRNK.js.map
|
|
554
|
+
//# sourceMappingURL=chunk-YENZVRNK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Charts/BarChart.tsx"],"names":[],"mappings":"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","file":"chunk-YENZVRNK.js","sourcesContent":["\"use client\";\nimport React from \"react\";\nimport type { ApexOptions } from \"apexcharts\";\n\ntype ReactApexChartProps = {\n options: ApexOptions;\n series: ApexAxisChartSeries;\n type: \"bar\" | \"area\";\n height: number;\n};\ntype ReactApexChartComponent = React.ComponentType<ReactApexChartProps>;\n\nexport interface BarChartProps {\n series?: ApexAxisChartSeries;\n categories?: string[];\n colors?: string[];\n barColors?: string[];\n height?: number;\n horizontal?: boolean;\n showBarValues?: boolean;\n showBarPercentages?: boolean;\n minBarWidth?: number;\n /** @deprecated Use minBarWidth. Passing 0 still disables the minimum visual width. */\n minBarPercentage?: number;\n percentageMode?: \"total\" | \"category\";\n barValueFormatter?: (value: number, context: BarChartLabelContext) => string;\n barPercentageFormatter?: (\n percentage: number,\n value: number,\n context: BarChartLabelContext\n ) => string;\n options?: ApexOptions;\n}\n\nexport interface BarChartLabelContext {\n seriesIndex: number;\n dataPointIndex: number;\n seriesName?: string;\n category?: string;\n total: number;\n}\n\nconst defaultOptions: ApexOptions = {\n colors: [\"#465fff\"],\n chart: {\n fontFamily: \"Outfit, sans-serif\",\n type: \"bar\",\n height: 180,\n animations: {\n enabled: true,\n speed: 200,\n animateGradually: {\n enabled: false,\n delay: 0,\n },\n dynamicAnimation: {\n enabled: true,\n speed: 175,\n },\n },\n toolbar: {\n show: false,\n },\n },\n plotOptions: {\n bar: {\n horizontal: false,\n columnWidth: \"39%\",\n borderRadius: 5,\n borderRadiusApplication: \"end\",\n },\n },\n dataLabels: {\n enabled: false,\n },\n // No transparent stroke around the columns: it shrinks and shifts the\n // painted bar inside its allocated slot, so the hover highlight band\n // (crosshairs width \"barWidth\" = the allocated width) would render wider\n // than — and offset from — the visible bar.\n stroke: {\n show: false,\n },\n xaxis: {\n categories: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n axisBorder: {\n show: false,\n },\n axisTicks: {\n show: false,\n },\n // Match the hover highlight band to the bar width (the default band spans\n // the whole category slot, looking ~3x wider than the 39% columns).\n crosshairs: {\n width: \"barWidth\",\n },\n },\n legend: {\n show: true,\n position: \"top\",\n horizontalAlign: \"left\",\n fontFamily: \"Outfit\",\n // Rounded, border-less swatches that echo the column styling. ApexCharts\n // sets the marker span's `color` to the series color, so `currentColor`\n // picks it up; `customHTML` lets us round the corners (the built-in shapes\n // are sharp SVG paths that CSS border-radius can't touch).\n markers: {\n size: 7,\n strokeWidth: 0,\n customHTML: () =>\n '<span style=\"display:block;height:100%;width:100%;border-radius:3px;background:currentColor\"></span>',\n },\n },\n yaxis: {\n title: {\n text: undefined,\n },\n },\n grid: {\n yaxis: {\n lines: {\n show: true,\n },\n },\n },\n fill: {\n opacity: 1,\n },\n tooltip: {\n x: {\n show: false,\n },\n y: {\n formatter: (val: number) => `${val}`,\n },\n },\n};\n\nconst defaultSeries: ApexAxisChartSeries = [\n {\n name: \"Sales\",\n data: [168, 385, 201, 298, 187, 195, 291, 110, 215, 390, 280, 112],\n },\n];\n\nconst horizontalGridOptions: ApexOptions[\"grid\"] = {\n borderColor: \"transparent\",\n xaxis: {\n lines: {\n show: false,\n },\n },\n yaxis: {\n lines: {\n show: false,\n },\n },\n};\n\nfunction mergeGridOptions(\n base: ApexOptions[\"grid\"],\n override: ApexOptions[\"grid\"]\n): ApexOptions[\"grid\"] {\n return {\n ...base,\n ...override,\n xaxis: {\n ...base?.xaxis,\n ...override?.xaxis,\n lines: {\n ...base?.xaxis?.lines,\n ...override?.xaxis?.lines,\n },\n },\n yaxis: {\n ...base?.yaxis,\n ...override?.yaxis,\n lines: {\n ...base?.yaxis?.lines,\n ...override?.yaxis?.lines,\n },\n },\n };\n}\n\nfunction getDataValue(value: unknown): number | null {\n if (typeof value === \"number\") return value;\n if (Array.isArray(value) && typeof value[1] === \"number\") return value[1];\n if (value && typeof value === \"object\" && \"y\" in value) {\n const y = (value as { y: unknown }).y;\n return typeof y === \"number\" ? y : null;\n }\n return null;\n}\n\nfunction getValueMatrix(series: ApexAxisChartSeries): number[][] {\n return series.map((item) => item.data.map((value) => getDataValue(value) ?? 0));\n}\n\nfunction getSeriesTotal(matrix: number[][]): number {\n return matrix.reduce(\n (seriesTotal, data) => seriesTotal + data.reduce((total, value) => total + value, 0),\n 0\n );\n}\n\nfunction getCategoryTotal(matrix: number[][], dataPointIndex: number): number {\n return matrix.reduce((total, data) => total + (data[dataPointIndex] ?? 0), 0);\n}\n\nfunction withDataPointColor(\n value: unknown,\n fillColor: string,\n dataPointIndex: number,\n categories?: string[]\n): unknown {\n if (Array.isArray(value)) {\n return {\n x: value[0],\n y: value[1],\n fillColor,\n };\n }\n\n if (value && typeof value === \"object\") {\n return {\n ...value,\n fillColor,\n };\n }\n\n return {\n x: categories?.[dataPointIndex] ?? dataPointIndex,\n y: value,\n fillColor,\n };\n}\n\nfunction applyBarColors(\n series: ApexAxisChartSeries,\n barColors: string[] | undefined,\n fallbackColors: string[] | undefined,\n categories?: string[]\n): ApexAxisChartSeries {\n if (!barColors?.length) return series;\n\n return series.map((item, seriesIndex) => {\n const fallbackColor =\n fallbackColors?.[seriesIndex] ?? fallbackColors?.[0] ?? defaultOptions.colors?.[0];\n\n return {\n ...item,\n data: item.data.map((value, dataPointIndex) =>\n withDataPointColor(\n value,\n barColors[dataPointIndex] ?? fallbackColor ?? \"#465fff\",\n dataPointIndex,\n categories\n )\n ) as typeof item.data,\n };\n });\n}\n\nfunction mergeDataLabels(\n base: ApexOptions[\"dataLabels\"],\n override: ApexOptions[\"dataLabels\"],\n generated: ApexOptions[\"dataLabels\"]\n): ApexOptions[\"dataLabels\"] {\n return {\n ...base,\n ...override,\n ...generated,\n style: {\n ...base?.style,\n ...override?.style,\n ...generated?.style,\n },\n background: {\n ...base?.background,\n ...override?.background,\n ...generated?.background,\n },\n };\n}\n\nfunction mergeTooltipOptions(\n base: ApexOptions[\"tooltip\"],\n override: ApexOptions[\"tooltip\"],\n generated: ApexOptions[\"tooltip\"]\n): ApexOptions[\"tooltip\"] {\n const baseY = Array.isArray(base?.y) ? undefined : base?.y;\n const overrideY = Array.isArray(override?.y) ? undefined : override?.y;\n const generatedY = Array.isArray(generated?.y) ? undefined : generated?.y;\n\n return {\n ...base,\n ...override,\n ...generated,\n x: {\n ...base?.x,\n ...override?.x,\n ...generated?.x,\n },\n y: {\n ...baseY,\n ...overrideY,\n ...generatedY,\n },\n };\n}\n\nfunction mergeAnnotations(\n override: ApexOptions[\"annotations\"],\n generated: ApexOptions[\"annotations\"]\n): ApexOptions[\"annotations\"] | undefined {\n if (!override && !generated) return undefined;\n return {\n ...override,\n ...generated,\n points: [...(override?.points ?? []), ...(generated?.points ?? [])],\n };\n}\n\nfunction getChartElement(chartContext: unknown): Element | null {\n if (typeof Element === \"undefined\") return null;\n if (!chartContext || typeof chartContext !== \"object\" || !(\"el\" in chartContext)) return null;\n\n const element = (chartContext as { el?: unknown }).el;\n return element instanceof Element ? element : null;\n}\n\nfunction applyMinimumHorizontalBarWidth(\n chartContext: unknown,\n minBarWidth: number,\n valueMatrix: number[][]\n) {\n const root = getChartElement(chartContext);\n if (!root) return;\n\n root\n .querySelectorAll(\"[data-taildashboard-min-bar]\")\n .forEach((element) => element.remove());\n\n if (minBarWidth <= 0) return;\n\n const values = valueMatrix.flat();\n const paths = Array.from(root.querySelectorAll<SVGPathElement>(\".apexcharts-bar-area\"));\n const documentRef = root.ownerDocument;\n\n paths.forEach((path, index) => {\n const value = values[index] ?? 0;\n if (value < 0 || typeof path.getBBox !== \"function\") return;\n\n const box = path.getBBox();\n if (box.width >= minBarWidth || box.height <= 0) return;\n\n const overlay = documentRef.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\");\n const radius = Math.min(5, box.height / 2, minBarWidth / 2);\n overlay.setAttribute(\"data-taildashboard-min-bar\", \"true\");\n overlay.setAttribute(\"x\", `${box.x}`);\n overlay.setAttribute(\"y\", `${box.y}`);\n overlay.setAttribute(\"width\", `${minBarWidth}`);\n overlay.setAttribute(\"height\", `${box.height}`);\n overlay.setAttribute(\"rx\", `${radius}`);\n overlay.setAttribute(\"fill\", path.getAttribute(\"fill\") ?? path.style.fill ?? \"currentColor\");\n overlay.setAttribute(\"opacity\", path.getAttribute(\"opacity\") ?? path.style.opacity ?? \"1\");\n overlay.style.pointerEvents = \"none\";\n path.parentNode?.insertBefore(overlay, path.nextSibling);\n });\n}\n\nfunction centerHorizontalBarDataLabels(\n chartContext: unknown,\n minBarWidth: number,\n valueMatrix: number[][]\n) {\n const root = getChartElement(chartContext);\n if (!root) return;\n\n const values = valueMatrix.flat();\n const paths = Array.from(root.querySelectorAll<SVGPathElement>(\".apexcharts-bar-area\"));\n const labels = Array.from(root.querySelectorAll<SVGTextElement>(\".apexcharts-datalabel\"));\n\n paths.forEach((path, index) => {\n const label = labels[index];\n const value = values[index] ?? 0;\n if (!label || value < 0 || typeof path.getBBox !== \"function\") return;\n\n const box = path.getBBox();\n if (box.height <= 0) return;\n\n const width = value >= 0 && box.width < minBarWidth ? minBarWidth : box.width;\n const centerX = box.x + width / 2;\n const centerY = box.y + box.height / 2;\n\n label.setAttribute(\"x\", `${centerX}`);\n label.setAttribute(\"y\", `${centerY}`);\n label.setAttribute(\"text-anchor\", \"middle\");\n label.setAttribute(\"dominant-baseline\", \"middle\");\n label.setAttribute(\"alignment-baseline\", \"middle\");\n label.querySelectorAll(\"tspan\").forEach((tspan) => {\n tspan.setAttribute(\"x\", `${centerX}`);\n tspan.setAttribute(\"y\", `${centerY}`);\n });\n });\n}\n\ntype ApexChartEvents = NonNullable<NonNullable<ApexOptions[\"chart\"]>[\"events\"]>;\ntype ApexLifecycleEvent = NonNullable<ApexChartEvents[\"mounted\"]>;\n\nfunction runHorizontalBarDomAdjustments(\n chartContext: unknown,\n minBarWidth: number,\n valueMatrix: number[][],\n shouldApplyMinBarWidth: boolean,\n shouldCenterDataLabels: boolean\n) {\n if (shouldApplyMinBarWidth) {\n applyMinimumHorizontalBarWidth(chartContext, minBarWidth, valueMatrix);\n }\n if (shouldCenterDataLabels) {\n centerHorizontalBarDataLabels(chartContext, minBarWidth, valueMatrix);\n }\n}\n\nfunction scheduleHorizontalBarDomAdjustments(\n chartContext: unknown,\n minBarWidth: number,\n valueMatrix: number[][],\n shouldApplyMinBarWidth: boolean,\n shouldCenterDataLabels: boolean\n) {\n runHorizontalBarDomAdjustments(\n chartContext,\n minBarWidth,\n valueMatrix,\n shouldApplyMinBarWidth,\n shouldCenterDataLabels\n );\n\n if (typeof window === \"undefined\" || typeof window.requestAnimationFrame !== \"function\") return;\n\n window.requestAnimationFrame(() => {\n runHorizontalBarDomAdjustments(\n chartContext,\n minBarWidth,\n valueMatrix,\n shouldApplyMinBarWidth,\n shouldCenterDataLabels\n );\n });\n}\n\nfunction composeHorizontalBarLifecycleEvent(\n userEvent: ApexLifecycleEvent | undefined,\n minBarWidth: number,\n valueMatrix: number[][],\n shouldApplyMinBarWidth: boolean,\n shouldCenterDataLabels: boolean\n): ApexLifecycleEvent {\n return (chart, eventOptions) => {\n userEvent?.(chart, eventOptions);\n scheduleHorizontalBarDomAdjustments(\n chart,\n minBarWidth,\n valueMatrix,\n shouldApplyMinBarWidth,\n shouldCenterDataLabels\n );\n };\n}\n\nexport const BarChart: React.FC<BarChartProps> = ({\n series,\n categories,\n colors,\n barColors,\n height,\n horizontal,\n showBarValues = false,\n showBarPercentages = false,\n minBarWidth,\n minBarPercentage,\n percentageMode = \"total\",\n barValueFormatter,\n barPercentageFormatter,\n options,\n}) => {\n const [Chart, setChart] = React.useState<ReactApexChartComponent | null>(null);\n const effectiveSeries = series ?? defaultSeries;\n const effectiveCategories =\n categories ?? (options?.xaxis?.categories as string[] | undefined);\n const effectiveColors = colors ?? options?.colors ?? defaultOptions.colors;\n const chartSeries = applyBarColors(\n effectiveSeries,\n barColors,\n effectiveColors as string[] | undefined,\n effectiveCategories\n );\n const valueMatrix = getValueMatrix(effectiveSeries);\n const seriesTotal = getSeriesTotal(valueMatrix);\n const isHorizontal = horizontal ?? (options?.plotOptions?.bar?.horizontal === true);\n const hasGeneratedLabels = showBarValues || showBarPercentages;\n const resolvedMinBarWidth = minBarWidth ?? (minBarPercentage === 0 ? 0 : 30);\n const hasMinimumBarWidth = isHorizontal && resolvedMinBarWidth > 0;\n const shouldCenterDataLabels = isHorizontal && showBarPercentages;\n const hasHorizontalDomAdjustments = hasMinimumBarWidth || shouldCenterDataLabels;\n const baseGridOptions = isHorizontal\n ? mergeGridOptions(defaultOptions.grid, horizontalGridOptions)\n : defaultOptions.grid;\n const getLabelContext = (\n seriesIndex: number,\n dataPointIndex: number,\n total: number\n ): BarChartLabelContext => ({\n seriesIndex,\n dataPointIndex,\n seriesName: effectiveSeries[seriesIndex]?.name,\n category: effectiveCategories?.[dataPointIndex],\n total,\n });\n const generatedDataLabels: ApexOptions[\"dataLabels\"] | undefined = hasGeneratedLabels\n ? {\n enabled: true,\n textAnchor: \"middle\",\n offsetX: 0,\n offsetY: 0,\n background: {\n enabled: false,\n },\n style: {\n fontSize: \"12px\",\n fontWeight: 600,\n colors: [showBarPercentages ? \"#ffffff\" : \"#344054\"],\n },\n formatter: (_value, opts) => {\n const seriesIndex = opts?.seriesIndex ?? 0;\n const dataPointIndex = opts?.dataPointIndex ?? 0;\n const numericValue = valueMatrix[seriesIndex]?.[dataPointIndex] ?? 0;\n const total =\n percentageMode === \"category\"\n ? getCategoryTotal(valueMatrix, dataPointIndex)\n : seriesTotal;\n const context = getLabelContext(seriesIndex, dataPointIndex, total);\n\n if (showBarPercentages) {\n const percentage = total > 0 ? (numericValue / total) * 100 : 0;\n return barPercentageFormatter\n ? barPercentageFormatter(percentage, numericValue, context)\n : `${Math.round(percentage)}%`;\n }\n\n return barValueFormatter\n ? barValueFormatter(numericValue, context)\n : `${numericValue}`;\n },\n }\n : undefined;\n const generatedAnnotations: ApexOptions[\"annotations\"] | undefined =\n isHorizontal && showBarValues\n ? {\n points: effectiveSeries.flatMap((item, seriesIndex) =>\n item.data.map((dataPoint, dataPointIndex) => {\n const value = getDataValue(dataPoint) ?? 0;\n const total =\n percentageMode === \"category\"\n ? getCategoryTotal(valueMatrix, dataPointIndex)\n : seriesTotal;\n const context = getLabelContext(seriesIndex, dataPointIndex, total);\n return {\n x: value,\n y: dataPointIndex,\n seriesIndex,\n marker: {\n size: 0,\n },\n label: {\n text: barValueFormatter ? barValueFormatter(value, context) : `${value}`,\n borderWidth: 0,\n offsetY: -12,\n style: {\n background: \"transparent\",\n color: \"#344054\",\n fontSize: \"12px\",\n fontWeight: 600,\n padding: {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n },\n },\n },\n };\n })\n ),\n }\n : undefined;\n const userChartEvents = options?.chart?.events;\n const generatedChartEvents: ApexChartEvents | undefined = hasHorizontalDomAdjustments\n ? {\n ...userChartEvents,\n mounted: composeHorizontalBarLifecycleEvent(\n userChartEvents?.mounted,\n resolvedMinBarWidth,\n valueMatrix,\n hasMinimumBarWidth,\n shouldCenterDataLabels\n ),\n updated: composeHorizontalBarLifecycleEvent(\n userChartEvents?.updated,\n resolvedMinBarWidth,\n valueMatrix,\n hasMinimumBarWidth,\n shouldCenterDataLabels\n ),\n animationEnd: composeHorizontalBarLifecycleEvent(\n userChartEvents?.animationEnd,\n resolvedMinBarWidth,\n valueMatrix,\n hasMinimumBarWidth,\n shouldCenterDataLabels\n ),\n }\n : userChartEvents;\n const mergedOptions: ApexOptions = {\n ...defaultOptions,\n ...options,\n colors: effectiveColors,\n chart: {\n ...defaultOptions.chart,\n ...options?.chart,\n events: generatedChartEvents,\n animations: {\n ...defaultOptions.chart?.animations,\n ...options?.chart?.animations,\n animateGradually: {\n ...defaultOptions.chart?.animations?.animateGradually,\n ...options?.chart?.animations?.animateGradually,\n },\n dynamicAnimation: {\n ...defaultOptions.chart?.animations?.dynamicAnimation,\n ...options?.chart?.animations?.dynamicAnimation,\n },\n },\n height: height ?? options?.chart?.height ?? defaultOptions.chart?.height,\n },\n plotOptions: {\n ...defaultOptions.plotOptions,\n ...options?.plotOptions,\n bar: {\n ...defaultOptions.plotOptions?.bar,\n ...options?.plotOptions?.bar,\n horizontal: isHorizontal,\n ...(hasGeneratedLabels && {\n dataLabels: {\n ...options?.plotOptions?.bar?.dataLabels,\n position: showBarPercentages ? \"center\" : \"top\",\n },\n }),\n },\n },\n dataLabels: mergeDataLabels(\n defaultOptions.dataLabels,\n options?.dataLabels,\n generatedDataLabels\n ),\n xaxis: {\n ...defaultOptions.xaxis,\n ...options?.xaxis,\n categories:\n categories ??\n options?.xaxis?.categories ??\n defaultOptions.xaxis?.categories,\n },\n grid: mergeGridOptions(baseGridOptions, options?.grid),\n annotations: mergeAnnotations(options?.annotations, generatedAnnotations),\n tooltip: mergeTooltipOptions(defaultOptions.tooltip, options?.tooltip, undefined),\n };\n\n React.useEffect(() => {\n let isMounted = true;\n\n import(\"react-apexcharts\").then((module) => {\n if (isMounted) setChart(() => module.default as ReactApexChartComponent);\n });\n\n return () => {\n isMounted = false;\n };\n }, []);\n\n if (!Chart) return null;\n\n return (\n <Chart\n options={mergedOptions}\n series={chartSeries}\n type=\"bar\"\n height={height ?? 180}\n />\n );\n};\n"]}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunkMSIXHONY_cjs = require('../../chunk-MSIXHONY.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
Object.defineProperty(exports, "BarChart", {
|
|
9
9
|
enumerable: true,
|
|
10
|
-
get: function () { return
|
|
10
|
+
get: function () { return chunkMSIXHONY_cjs.BarChart; }
|
|
11
11
|
});
|
|
12
12
|
//# sourceMappingURL=BarChart.cjs.map
|
|
13
13
|
//# sourceMappingURL=BarChart.cjs.map
|
package/dist/index.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunkMSIXHONY_cjs = require('./chunk-MSIXHONY.cjs');
|
|
5
5
|
var chunkZULPBSQV_cjs = require('./chunk-ZULPBSQV.cjs');
|
|
6
6
|
var chunkGBQCVSZU_cjs = require('./chunk-GBQCVSZU.cjs');
|
|
7
7
|
var chunkETOOIXCY_cjs = require('./chunk-ETOOIXCY.cjs');
|
|
@@ -427,7 +427,7 @@ var Dropdown = ({
|
|
|
427
427
|
reactDom.createPortal(menu, document.body)
|
|
428
428
|
] });
|
|
429
429
|
};
|
|
430
|
-
var variantBase = "flex h-
|
|
430
|
+
var variantBase = "flex h-10 w-full items-center gap-2 rounded-lg px-4 py-2.5 text-left text-sm font-medium transition";
|
|
431
431
|
var variantClasses3 = {
|
|
432
432
|
default: "text-gray-700 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-white/5 dark:hover:text-white",
|
|
433
433
|
primary: "bg-brand-500 text-white shadow-theme-xs hover:bg-brand-600",
|
|
@@ -2953,7 +2953,7 @@ var Slider = ({
|
|
|
2953
2953
|
|
|
2954
2954
|
Object.defineProperty(exports, "BarChart", {
|
|
2955
2955
|
enumerable: true,
|
|
2956
|
-
get: function () { return
|
|
2956
|
+
get: function () { return chunkMSIXHONY_cjs.BarChart; }
|
|
2957
2957
|
});
|
|
2958
2958
|
Object.defineProperty(exports, "LineChart", {
|
|
2959
2959
|
enumerable: true,
|