measureText function
Implementation
Dimension? measureText(String text,
{required String fontFamily, required Object fontSize, bool bold = false}) {
final canvas = _measureTextCanvas ??= HTMLCanvasElement()
..width = 10
..height = 10;
final ctx = canvas.context2D;
var fontSizeStr = fontSize is num ? '${fontSize}px' : fontSize.toString();
var font = '${bold ? 'bold ' : ''}$fontSizeStr $fontFamily';
ctx.font = font;
final m = ctx.measureText(text);
var actualBoundingBoxAscent =
m.tryActualBoundingBoxAscent ?? m.tryFontBoundingBoxAscent ?? 1;
var actualBoundingBoxDescent =
m.tryActualBoundingBoxDescent ?? m.tryFontBoundingBoxDescent ?? 1;
var fontBoundingBoxDescent =
m.tryFontBoundingBoxDescent ?? m.tryActualBoundingBoxDescent ?? 1;
var width = m.width;
var height = m.tryEmHeightAscent;
if (height != null) {
height += fontBoundingBoxDescent;
} else {
height = actualBoundingBoxAscent + actualBoundingBoxDescent;
}
var d = Dimension(width.round(), height.round());
return d;
}