37 lines
957 B
JavaScript
37 lines
957 B
JavaScript
var SVGChartMixin = {
|
|
calculateViewBoxWidth: function() {
|
|
this.setState({
|
|
canvasWidth: this.refs.svg.getDOMNode().offsetWidth
|
|
});
|
|
}
|
|
};
|
|
|
|
var fontFamily = 'Helvetica Neue, Helvetica, sans-serif',
|
|
fontSize = 16;
|
|
|
|
function numberFormat(num) {
|
|
// FIXME: Not supported in IE10- and Safari
|
|
return Intl.NumberFormat().format(num);
|
|
}
|
|
|
|
function textWidth(str) {
|
|
var svg = document.createElementNS('http://www.w3.org/2000/svg', "svg");
|
|
text = document.createElementNS('http://www.w3.org/2000/svg', "text");
|
|
|
|
svg.width = 500;
|
|
svg.height = 500;
|
|
svg.style.position = 'absolute';
|
|
svg.style.left = '-1000px';
|
|
|
|
text.appendChild(document.createTextNode(str))
|
|
text.style.fontFamily = fontFamily;
|
|
text.style.fontSize = fontSize +'px';
|
|
|
|
svg.appendChild(text);
|
|
document.body.appendChild(svg);
|
|
var box = text.getBBox();
|
|
document.body.removeChild(svg);
|
|
|
|
return box.width;
|
|
}
|