c3
Version:
D3-based reusable chart library
62 lines (55 loc) • 1.68 kB
text/typescript
import { Chart } from './core'
import { isArray } from './util'
Chart.prototype.data = function(targetIds) {
var targets = this.internal.data.targets
return typeof targetIds === 'undefined'
? targets
: targets.filter(function(t) {
return [].concat(targetIds).indexOf(t.id) >= 0
})
}
Chart.prototype.data.shown = function(targetIds) {
return this.internal.filterTargetsToShow(this.data(targetIds))
}
/**
* Get values of the data loaded in the chart.
*
* @param {String|Array} targetId This API returns the value of specified target.
* @param flat
* @return {Array} Data values
*/
Chart.prototype.data.values = function(targetId, flat = true) {
let values = null
if (targetId) {
const targets = this.data(targetId)
if (targets && isArray(targets)) {
values = targets.reduce((ret, v) => {
const dataValue = v.values.map(d => d.value)
if (flat) {
ret = ret.concat(dataValue)
} else {
ret.push(dataValue)
}
return ret
}, [])
}
}
return values
}
Chart.prototype.data.names = function(names) {
this.internal.clearLegendItemTextBoxCache()
return this.internal.updateDataAttributes('names', names)
}
Chart.prototype.data.colors = function(colors) {
return this.internal.updateDataAttributes('colors', colors)
}
Chart.prototype.data.axes = function(axes) {
return this.internal.updateDataAttributes('axes', axes)
}
Chart.prototype.data.stackNormalized = function(normalized) {
if (normalized === undefined) {
return this.internal.isStackNormalized()
}
this.internal.config.data_stack_normalize = !!normalized
this.internal.redraw()
}