* Give order to visual types, considering colorSaturation, colorAlpha depends on color. * * @public * @param {(Object|Array)} visualTypes If Object, like: {color: ..., colorSaturation: ...} * IF Array, like: ['color', 'symbol', 'colorSaturation
(
visualTypes: {[key in BuiltinVisualProperty]?: any} | BuiltinVisualProperty[]
)
| 429 | * @return {Array.<string>} Sorted visual types. |
| 430 | */ |
| 431 | static prepareVisualTypes( |
| 432 | visualTypes: {[key in BuiltinVisualProperty]?: any} | BuiltinVisualProperty[] |
| 433 | ) { |
| 434 | if (zrUtil.isArray(visualTypes)) { |
| 435 | visualTypes = visualTypes.slice(); |
| 436 | } |
| 437 | else if (isObject(visualTypes)) { |
| 438 | const types: BuiltinVisualProperty[] = []; |
| 439 | each(visualTypes, function (item: unknown, type: BuiltinVisualProperty) { |
| 440 | types.push(type); |
| 441 | }); |
| 442 | visualTypes = types; |
| 443 | } |
| 444 | else { |
| 445 | return []; |
| 446 | } |
| 447 | |
| 448 | visualTypes.sort(function (type1: BuiltinVisualProperty, type2: BuiltinVisualProperty) { |
| 449 | // color should be front of colorSaturation, colorAlpha, ... |
| 450 | // symbol and symbolSize do not matter. |
| 451 | return (type2 === 'color' && type1 !== 'color' && type1.indexOf('color') === 0) |
| 452 | ? 1 : -1; |
| 453 | }); |
| 454 | |
| 455 | return visualTypes; |
| 456 | } |
| 457 | |
| 458 | /** |
| 459 | * 'color', 'colorSaturation', 'colorAlpha', ... are depends on 'color'. |
no test coverage detected