| /* | 
 | * 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}`); | 
 |             } | 
 |     } | 
 | } |