/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * A mapping of visual provided to developer and visual stored in the List module. * To developer: * 'color', 'opacity', 'symbol', 'symbolSize'... * In the List module storage: * 'style', 'symbol', 'symbolSize'... */ import SeriesData from '../data/SeriesData'; export function getItemVisualFromData(data: SeriesData, dataIndex: number, key: string) { switch (key) { case 'color': const style = data.getItemVisual(dataIndex, 'style'); return style[data.getVisual('drawType')]; case 'opacity': return data.getItemVisual(dataIndex, 'style').opacity; case 'symbol': case 'symbolSize': case 'liftZ': return data.getItemVisual(dataIndex, key); default: if (__DEV__) { console.warn(`Unknown visual type ${key}`); } } } export function getVisualFromData(data: SeriesData, key: string) { switch (key) { case 'color': const style = data.getVisual('style'); return style[data.getVisual('drawType')]; case 'opacity': return data.getVisual('style').opacity; case 'symbol': case 'symbolSize': case 'liftZ': return data.getVisual(key); default: if (__DEV__) { console.warn(`Unknown visual type ${key}`); } } } export function setItemVisualFromData(data: SeriesData, dataIndex: number, key: string, value: any) { switch (key) { case 'color': // Make sure not sharing style object. const style = data.ensureUniqueItemVisual(dataIndex, 'style'); style[data.getVisual('drawType')] = value; // Mark the color has been changed, not from palette anymore data.setItemVisual(dataIndex, 'colorFromPalette', false); break; case 'opacity': data.ensureUniqueItemVisual(dataIndex, 'style').opacity = value; break; case 'symbol': case 'symbolSize': case 'liftZ': data.setItemVisual(dataIndex, key, value); break; default: if (__DEV__) { console.warn(`Unknown visual type ${key}`); } } }