fix: apply suggested changes for PR #4288

This commit is contained in:
Issue哥 2023-06-27 21:56:38 +08:00
parent 77999f0b37
commit f211ed686c
2 changed files with 11 additions and 10 deletions

View File

@ -4,14 +4,9 @@ import { log } from '../../logger.js';
import { configureSvgSize } from '../../setupGraphViewbox.js';
import * as configApi from '../../config.js';
import { parseFontSize } from '../../utils.js';
import { getTextWidth } from '../../rendering-util/getTextWidth.js';
let conf = configApi.getConfig();
// https://stackoverflow.com/a/35373030/3469145
const getTextWidth = (function () {
const canvas = document.createElement('canvas')
const context = canvas.getContext('2d')
return text => context.measureText(text).width * window.devicePixelRatio
})();
/**
* Draws a Pie Chart with the data given in text.
@ -79,15 +74,14 @@ export const draw = (txt, id, _version, diagObj) => {
sum += data[key];
});
const legendShowData = diagObj.db.getShowData() || conf.showData || conf.pie.showData;
const legendShowData = diagObj.db.getShowData() || conf.showData || conf.pie.showData || false;
const legendTexts = Object.keys(data).map(key => {
if (!legendShowData) {
return key;
}
return key + ' [' + data[key] + ']';
return `${key} [${data[key]}]`;
})
const legendTextWidths = legendTexts.map(v => getTextWidth(v)).sort((a, b) => a - b);
const longestTextWidth = parseInt(legendTextWidths.pop());
const longestTextWidth = Math.max(...(legendTexts.map(v => getTextWidth(v))));
const newWidth = width + margin + legendRectSize + legendSpacing + longestTextWidth;
elem.setAttribute("viewBox", "0 0 " + newWidth + " " + height);

View File

@ -0,0 +1,7 @@
// https://stackoverflow.com/a/35373030/3469145
const canvas = document.createElement('canvas');
const context = canvas.getContext('2d');
const getTextWidth = (text) => context.measureText(text).width * window.devicePixelRatio;
export { getTextWidth };