123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- 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']);
- var seriesSymbolTask = {
- createOnAllSeries: true,
-
- 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));
-
- 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,
-
- performRawSeries: true,
- reset: function (seriesModel, ecModel) {
- if (!seriesModel.hasSymbolVisual) {
- return;
- }
-
- 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 };
|