symbol.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. function _default(seriesType, defaultSymbolType, legendSymbol, ecModel, api) {
  2. // Encoding visual for all series include which is filtered for legend drawing
  3. ecModel.eachRawSeriesByType(seriesType, function (seriesModel) {
  4. var data = seriesModel.getData();
  5. var symbolType = seriesModel.get('symbol') || defaultSymbolType;
  6. var symbolSize = seriesModel.get('symbolSize');
  7. data.setVisual({
  8. legendSymbol: legendSymbol || symbolType,
  9. symbol: symbolType,
  10. symbolSize: symbolSize
  11. }); // Only visible series has each data be visual encoded
  12. if (!ecModel.isSeriesFiltered(seriesModel)) {
  13. if (typeof symbolSize === 'function') {
  14. data.each(function (idx) {
  15. var rawValue = seriesModel.getRawValue(idx); // FIXME
  16. var params = seriesModel.getDataParams(idx);
  17. data.setItemVisual(idx, 'symbolSize', symbolSize(rawValue, params));
  18. });
  19. }
  20. data.each(function (idx) {
  21. var itemModel = data.getItemModel(idx);
  22. var itemSymbolType = itemModel.getShallow('symbol', true);
  23. var itemSymbolSize = itemModel.getShallow('symbolSize', true); // If has item symbol
  24. if (itemSymbolType != null) {
  25. data.setItemVisual(idx, 'symbol', itemSymbolType);
  26. }
  27. if (itemSymbolSize != null) {
  28. // PENDING Transform symbolSize ?
  29. data.setItemVisual(idx, 'symbolSize', itemSymbolSize);
  30. }
  31. });
  32. }
  33. });
  34. }
  35. module.exports = _default;