You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
140 lines
4.3 KiB
140 lines
4.3 KiB
|
|
/* |
|
* 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 }; |