/**
* If colorDomain is specified, match color domain and color schemes manually. If colorDomain is not specified, returns the instance's current colorDomain.
* ColorDomain is an array of objects includes a key and a color(optional) property. If a color peroperty is not specified, uses a color in internal {@link Core#color color schemes} in order. Also, if an element of array is string type, it translates into an object with a key property.
*
* @memberOf Core#
* @function
* @example
* bar.data([
* {name: 'A', value: 10},
* {name: 'B', value: 20},
* {name: 'C', value: 30},
* {name: 'D', value: 40}
* ]) //sets data
* .dimensions(['name'])
* .measures(['value'])
* .color(['red', 'green', 'blue', 'yellow'])
* .colorDomain(['B', {key: 'A', color: 'orange'}, {key: 'D'}])
* // sets bar A: orange / bar B: red / bar C: blue / bar D: green
* @param {(string[]|object[])} [colorDomain]
* @param {string|number} colorDomain[].key
* @param {string} [colorDomain[].color]
*/
function colorDomain(colorDomain) {
if (!arguments.length) return this.__attrs__.colorDomain;
colorDomain = colorDomain.map(d => {
if (typeof d === 'string' || typeof d === 'number') return {key: d};
return d;
});
this.__attrs__.colorDomain = colorDomain;
return this;
}
export default colorDomain;