parallelPreprocessor.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. var zrUtil = require("zrender/lib/core/util");
  2. var modelUtil = require("../../util/model");
  3. function _default(option) {
  4. createParallelIfNeeded(option);
  5. mergeAxisOptionFromParallel(option);
  6. }
  7. /**
  8. * Create a parallel coordinate if not exists.
  9. * @inner
  10. */
  11. function createParallelIfNeeded(option) {
  12. if (option.parallel) {
  13. return;
  14. }
  15. var hasParallelSeries = false;
  16. zrUtil.each(option.series, function (seriesOpt) {
  17. if (seriesOpt && seriesOpt.type === 'parallel') {
  18. hasParallelSeries = true;
  19. }
  20. });
  21. if (hasParallelSeries) {
  22. option.parallel = [{}];
  23. }
  24. }
  25. /**
  26. * Merge aixs definition from parallel option (if exists) to axis option.
  27. * @inner
  28. */
  29. function mergeAxisOptionFromParallel(option) {
  30. var axes = modelUtil.normalizeToArray(option.parallelAxis);
  31. zrUtil.each(axes, function (axisOption) {
  32. if (!zrUtil.isObject(axisOption)) {
  33. return;
  34. }
  35. var parallelIndex = axisOption.parallelIndex || 0;
  36. var parallelOption = modelUtil.normalizeToArray(option.parallel)[parallelIndex];
  37. if (parallelOption && parallelOption.parallelAxisDefault) {
  38. zrUtil.merge(axisOption, parallelOption.parallelAxisDefault, false);
  39. }
  40. });
  41. }
  42. module.exports = _default;