parallelPreprocessor.js 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /*
  2. * Licensed to the Apache Software Foundation (ASF) under one
  3. * or more contributor license agreements. See the NOTICE file
  4. * distributed with this work for additional information
  5. * regarding copyright ownership. The ASF licenses this file
  6. * to you under the Apache License, Version 2.0 (the
  7. * "License"); you may not use this file except in compliance
  8. * with the License. You may obtain a copy of the License at
  9. *
  10. * http://www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing,
  13. * software distributed under the License is distributed on an
  14. * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  15. * KIND, either express or implied. See the License for the
  16. * specific language governing permissions and limitations
  17. * under the License.
  18. */
  19. var zrUtil = require("zrender/lib/core/util");
  20. var modelUtil = require("../../util/model");
  21. /*
  22. * Licensed to the Apache Software Foundation (ASF) under one
  23. * or more contributor license agreements. See the NOTICE file
  24. * distributed with this work for additional information
  25. * regarding copyright ownership. The ASF licenses this file
  26. * to you under the Apache License, Version 2.0 (the
  27. * "License"); you may not use this file except in compliance
  28. * with the License. You may obtain a copy of the License at
  29. *
  30. * http://www.apache.org/licenses/LICENSE-2.0
  31. *
  32. * Unless required by applicable law or agreed to in writing,
  33. * software distributed under the License is distributed on an
  34. * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  35. * KIND, either express or implied. See the License for the
  36. * specific language governing permissions and limitations
  37. * under the License.
  38. */
  39. function _default(option) {
  40. createParallelIfNeeded(option);
  41. mergeAxisOptionFromParallel(option);
  42. }
  43. /**
  44. * Create a parallel coordinate if not exists.
  45. * @inner
  46. */
  47. function createParallelIfNeeded(option) {
  48. if (option.parallel) {
  49. return;
  50. }
  51. var hasParallelSeries = false;
  52. zrUtil.each(option.series, function (seriesOpt) {
  53. if (seriesOpt && seriesOpt.type === 'parallel') {
  54. hasParallelSeries = true;
  55. }
  56. });
  57. if (hasParallelSeries) {
  58. option.parallel = [{}];
  59. }
  60. }
  61. /**
  62. * Merge aixs definition from parallel option (if exists) to axis option.
  63. * @inner
  64. */
  65. function mergeAxisOptionFromParallel(option) {
  66. var axes = modelUtil.normalizeToArray(option.parallelAxis);
  67. zrUtil.each(axes, function (axisOption) {
  68. if (!zrUtil.isObject(axisOption)) {
  69. return;
  70. }
  71. var parallelIndex = axisOption.parallelIndex || 0;
  72. var parallelOption = modelUtil.normalizeToArray(option.parallel)[parallelIndex];
  73. if (parallelOption && parallelOption.parallelAxisDefault) {
  74. zrUtil.merge(axisOption, parallelOption.parallelAxisDefault, false);
  75. }
  76. });
  77. }
  78. module.exports = _default;