c3
Version:
D3-based reusable chart library
57 lines (55 loc) • 1.4 kB
text/typescript
import { ChartInternal } from './core'
ChartInternal.prototype.initTitle = function() {
var $$ = this
$$.title = $$.svg
.append('text')
.text($$.config.title_text)
.attr('class', $$.CLASS.title)
}
ChartInternal.prototype.redrawTitle = function() {
var $$ = this
$$.title.attr('x', $$.xForTitle.bind($$)).attr('y', $$.yForTitle.bind($$))
}
ChartInternal.prototype.xForTitle = function() {
var $$ = this,
config = $$.config,
position = config.title_position || 'left',
x
if (position.indexOf('right') >= 0) {
x =
$$.currentWidth -
$$.getTextRect(
$$.title.node().textContent,
$$.CLASS.title,
$$.title.node()
).width -
config.title_padding.right
} else if (position.indexOf('center') >= 0) {
x = Math.max(
($$.currentWidth -
$$.getTextRect(
$$.title.node().textContent,
$$.CLASS.title,
$$.title.node()
).width) /
2,
0
)
} else {
// left
x = config.title_padding.left
}
return x
}
ChartInternal.prototype.yForTitle = function() {
var $$ = this
return (
$$.config.title_padding.top +
$$.getTextRect($$.title.node().textContent, $$.CLASS.title, $$.title.node())
.height
)
}
ChartInternal.prototype.getTitlePadding = function() {
var $$ = this
return $$.yForTitle() + $$.config.title_padding.bottom
}