| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- 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
- })
- }
|