|   | 
| /* | 
| * 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. | 
| */ | 
|   | 
|   | 
| /** | 
|  * AUTO-GENERATED FILE. DO NOT MODIFY. | 
|  */ | 
|   | 
| /* | 
| * 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. | 
| */ | 
| import { extend, isFunction, keys } from 'zrender/lib/core/util.js'; | 
| var SYMBOL_PROPS_WITH_CB = ['symbol', 'symbolSize', 'symbolRotate', 'symbolOffset']; | 
| var SYMBOL_PROPS = SYMBOL_PROPS_WITH_CB.concat(['symbolKeepAspect']); | 
| // Encoding visual for all series include which is filtered for legend drawing | 
| var seriesSymbolTask = { | 
|   createOnAllSeries: true, | 
|   // For legend. | 
|   performRawSeries: true, | 
|   reset: function (seriesModel, ecModel) { | 
|     var data = seriesModel.getData(); | 
|     if (seriesModel.legendIcon) { | 
|       data.setVisual('legendIcon', seriesModel.legendIcon); | 
|     } | 
|     if (!seriesModel.hasSymbolVisual) { | 
|       return; | 
|     } | 
|     var symbolOptions = {}; | 
|     var symbolOptionsCb = {}; | 
|     var hasCallback = false; | 
|     for (var i = 0; i < SYMBOL_PROPS_WITH_CB.length; i++) { | 
|       var symbolPropName = SYMBOL_PROPS_WITH_CB[i]; | 
|       var val = seriesModel.get(symbolPropName); | 
|       if (isFunction(val)) { | 
|         hasCallback = true; | 
|         symbolOptionsCb[symbolPropName] = val; | 
|       } else { | 
|         symbolOptions[symbolPropName] = val; | 
|       } | 
|     } | 
|     symbolOptions.symbol = symbolOptions.symbol || seriesModel.defaultSymbol; | 
|     data.setVisual(extend({ | 
|       legendIcon: seriesModel.legendIcon || symbolOptions.symbol, | 
|       symbolKeepAspect: seriesModel.get('symbolKeepAspect') | 
|     }, symbolOptions)); | 
|     // Only visible series has each data be visual encoded | 
|     if (ecModel.isSeriesFiltered(seriesModel)) { | 
|       return; | 
|     } | 
|     var symbolPropsCb = keys(symbolOptionsCb); | 
|     function dataEach(data, idx) { | 
|       var rawValue = seriesModel.getRawValue(idx); | 
|       var params = seriesModel.getDataParams(idx); | 
|       for (var i = 0; i < symbolPropsCb.length; i++) { | 
|         var symbolPropName = symbolPropsCb[i]; | 
|         data.setItemVisual(idx, symbolPropName, symbolOptionsCb[symbolPropName](rawValue, params)); | 
|       } | 
|     } | 
|     return { | 
|       dataEach: hasCallback ? dataEach : null | 
|     }; | 
|   } | 
| }; | 
| var dataSymbolTask = { | 
|   createOnAllSeries: true, | 
|   // For legend. | 
|   performRawSeries: true, | 
|   reset: function (seriesModel, ecModel) { | 
|     if (!seriesModel.hasSymbolVisual) { | 
|       return; | 
|     } | 
|     // Only visible series has each data be visual encoded | 
|     if (ecModel.isSeriesFiltered(seriesModel)) { | 
|       return; | 
|     } | 
|     var data = seriesModel.getData(); | 
|     function dataEach(data, idx) { | 
|       var itemModel = data.getItemModel(idx); | 
|       for (var i = 0; i < SYMBOL_PROPS.length; i++) { | 
|         var symbolPropName = SYMBOL_PROPS[i]; | 
|         var val = itemModel.getShallow(symbolPropName, true); | 
|         if (val != null) { | 
|           data.setItemVisual(idx, symbolPropName, val); | 
|         } | 
|       } | 
|     } | 
|     return { | 
|       dataEach: data.hasItemOption ? dataEach : null | 
|     }; | 
|   } | 
| }; | 
| export { seriesSymbolTask, dataSymbolTask }; |