c3
Version:
D3-based reusable chart library
60 lines (54 loc) • 1.41 kB
text/typescript
import CLASS from './class'
import { Chart } from './core'
import { getOption } from './util'
Chart.prototype.regions = function(regions) {
var $$ = this.internal,
config = $$.config
if (!regions) {
return config.regions
}
config.regions = regions
$$.redrawWithoutRescale()
return config.regions
}
Chart.prototype.regions.add = function(regions) {
var $$ = this.internal,
config = $$.config
if (!regions) {
return config.regions
}
config.regions = config.regions.concat(regions)
$$.redrawWithoutRescale()
return config.regions
}
Chart.prototype.regions.remove = function(options) {
var $$ = this.internal,
config = $$.config,
duration,
classes,
regions
options = options || {}
duration = getOption(options, 'duration', config.transition_duration)
classes = getOption(options, 'classes', [CLASS.region])
regions = $$.main.select('.' + CLASS.regions).selectAll(
classes.map(function(c) {
return '.' + c
})
)
;(duration ? regions.transition().duration(duration) : regions)
.style('opacity', 0)
.remove()
config.regions = config.regions.filter(function(region) {
var found = false
if (!region['class']) {
return true
}
region['class'].split(' ').forEach(function(c) {
if (classes.indexOf(c) >= 0) {
found = true
}
})
return !found
})
return config.regions
}