@jiaminghi/charts
Version:
Lightweight charting
45 lines (26 loc) • 1.1 kB
JavaScript
import { colorConfig } from '../config'
import { deepClone } from '@jiaminghi/c-render/lib/plugin/util'
import { deepMerge } from '../util'
export function mergeColor (chart, option = {}) {
const defaultColor = deepClone(colorConfig, true)
let { color, series } = option
if (!series) series = []
if (!color) color = []
option.color = color = deepMerge(defaultColor, color)
if (!series.length) return
const colorNum = color.length
series.forEach((item, i) => {
if (item.color) return
item.color = color[i % colorNum]
})
const pies = series.filter(({ type }) => type === 'pie')
pies.forEach(pie => pie.data.forEach((di, i) => (di.color = color[i % colorNum])))
const gauges = series.filter(({ type }) => type === 'gauge')
gauges.forEach(gauge => gauge.data.forEach((di, i) => (di.color = color[i % colorNum])))
const barWithIndependentColor = series
.filter(({ type, independentColor }) => type === 'bar' && independentColor)
barWithIndependentColor.forEach(bar => {
if (bar.independentColors) return
bar.independentColors = color
})
}