koishi-plugin-chat-analyse 1.4.10 → 1.4.12
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/lib/index.js +13 -7
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -1715,23 +1715,29 @@ var Renderer = class {
|
|
|
1715
1715
|
const points = s.data.map((value, index) => `${getX(index)},${getY(value)}`).join(" ");
|
|
1716
1716
|
svgElements += `<polyline points="${points}" fill="none" stroke="${color}" stroke-width="2"/>`;
|
|
1717
1717
|
});
|
|
1718
|
-
|
|
1718
|
+
const chartAreaHeight = 280;
|
|
1719
|
+
const legendTopMargin = 15;
|
|
1720
|
+
const legendBottomMargin = 15;
|
|
1721
|
+
let legendBlockHeight = 0;
|
|
1719
1722
|
if (series.length > 1) {
|
|
1720
1723
|
const legendRows = Math.ceil(series.length / 3);
|
|
1721
|
-
|
|
1722
|
-
const
|
|
1724
|
+
const legendRowHeight = 20;
|
|
1725
|
+
const legendInternalPadding = 5;
|
|
1726
|
+
legendBlockHeight = legendRows * legendRowHeight + legendInternalPadding;
|
|
1727
|
+
const LEGEND_START_Y = chartAreaHeight + legendTopMargin;
|
|
1723
1728
|
const columnWidth = 560 / 3;
|
|
1724
1729
|
series.forEach((s, seriesIndex) => {
|
|
1725
1730
|
const rowIndex = Math.floor(seriesIndex / 3);
|
|
1726
1731
|
const colIndex = seriesIndex % 3;
|
|
1727
1732
|
const legendX = 40 + colIndex * columnWidth;
|
|
1728
|
-
const legendY = LEGEND_START_Y + rowIndex *
|
|
1733
|
+
const legendY = LEGEND_START_Y + rowIndex * legendRowHeight;
|
|
1729
1734
|
const color = seriesColors[seriesIndex % seriesColors.length];
|
|
1730
1735
|
svgElements += `<rect x="${legendX}" y="${legendY - 8}" width="12" height="8" fill="${color}" rx="2"/>`;
|
|
1731
1736
|
svgElements += `<text x="${legendX + 18}" y="${legendY}" font-size="12" fill="var(--text-color)">${s.name}</text>`;
|
|
1732
1737
|
});
|
|
1733
1738
|
}
|
|
1734
|
-
const
|
|
1739
|
+
const totalLegendSpace = legendBlockHeight > 0 ? legendTopMargin + legendBlockHeight + legendBottomMargin : 0;
|
|
1740
|
+
const svgHeight = chartAreaHeight + totalLegendSpace;
|
|
1735
1741
|
const totalMessages = series.reduce((sum, s) => sum + s.data.reduce((a, b) => a + b, 0), 0);
|
|
1736
1742
|
const cardHtml = `
|
|
1737
1743
|
<div class="container" style="width: 600px;">
|
|
@@ -1767,8 +1773,8 @@ var Renderer = class {
|
|
|
1767
1773
|
const maxWeight = Math.max(...weights, 1);
|
|
1768
1774
|
const minWeight = Math.min(...weights);
|
|
1769
1775
|
const wordCount = words.length;
|
|
1770
|
-
const maxFontSize = Math.max(20, Math.round(
|
|
1771
|
-
const minFontSize = Math.max(
|
|
1776
|
+
const maxFontSize = Math.max(20, Math.round(600 / Math.log1p(wordCount)));
|
|
1777
|
+
const minFontSize = Math.max(6, Math.round(maxFontSize / 10));
|
|
1772
1778
|
const cardHtml = `
|
|
1773
1779
|
<div class="container" style="width: 600px;">
|
|
1774
1780
|
<div class="header">
|