singleCreator.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. var Single = require("./Single");
  2. var CoordinateSystem = require("../../CoordinateSystem");
  3. /**
  4. * Single coordinate system creator.
  5. */
  6. /**
  7. * Create single coordinate system and inject it into seriesModel.
  8. *
  9. * @param {module:echarts/model/Global} ecModel
  10. * @param {module:echarts/ExtensionAPI} api
  11. * @return {Array.<module:echarts/coord/single/Single>}
  12. */
  13. function create(ecModel, api) {
  14. var singles = [];
  15. ecModel.eachComponent('singleAxis', function (axisModel, idx) {
  16. var single = new Single(axisModel, ecModel, api);
  17. single.name = 'single_' + idx;
  18. single.resize(axisModel, api);
  19. axisModel.coordinateSystem = single;
  20. singles.push(single);
  21. });
  22. ecModel.eachSeries(function (seriesModel) {
  23. if (seriesModel.get('coordinateSystem') === 'singleAxis') {
  24. var singleAxisModel = ecModel.queryComponents({
  25. mainType: 'singleAxis',
  26. index: seriesModel.get('singleAxisIndex'),
  27. id: seriesModel.get('singleAxisId')
  28. })[0];
  29. seriesModel.coordinateSystem = singleAxisModel && singleAxisModel.coordinateSystem;
  30. }
  31. });
  32. return singles;
  33. }
  34. CoordinateSystem.register('single', {
  35. create: create,
  36. dimensions: Single.prototype.dimensions
  37. });