categoryVisual.js 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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. /*
  20. * Licensed to the Apache Software Foundation (ASF) under one
  21. * or more contributor license agreements. See the NOTICE file
  22. * distributed with this work for additional information
  23. * regarding copyright ownership. The ASF licenses this file
  24. * to you under the Apache License, Version 2.0 (the
  25. * "License"); you may not use this file except in compliance
  26. * with the License. You may obtain a copy of the License at
  27. *
  28. * http://www.apache.org/licenses/LICENSE-2.0
  29. *
  30. * Unless required by applicable law or agreed to in writing,
  31. * software distributed under the License is distributed on an
  32. * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  33. * KIND, either express or implied. See the License for the
  34. * specific language governing permissions and limitations
  35. * under the License.
  36. */
  37. function _default(ecModel) {
  38. var paletteScope = {};
  39. ecModel.eachSeriesByType('graph', function (seriesModel) {
  40. var categoriesData = seriesModel.getCategoriesData();
  41. var data = seriesModel.getData();
  42. var categoryNameIdxMap = {};
  43. categoriesData.each(function (idx) {
  44. var name = categoriesData.getName(idx); // Add prefix to avoid conflict with Object.prototype.
  45. categoryNameIdxMap['ec-' + name] = idx;
  46. var itemModel = categoriesData.getItemModel(idx);
  47. var color = itemModel.get('itemStyle.color') || seriesModel.getColorFromPalette(name, paletteScope);
  48. categoriesData.setItemVisual(idx, 'color', color);
  49. var itemStyleList = ['opacity', 'symbol', 'symbolSize', 'symbolKeepAspect'];
  50. for (var i = 0; i < itemStyleList.length; i++) {
  51. var itemStyle = itemModel.getShallow(itemStyleList[i], true);
  52. if (itemStyle != null) {
  53. categoriesData.setItemVisual(idx, itemStyleList[i], itemStyle);
  54. }
  55. }
  56. }); // Assign category color to visual
  57. if (categoriesData.count()) {
  58. data.each(function (idx) {
  59. var model = data.getItemModel(idx);
  60. var category = model.getShallow('category');
  61. if (category != null) {
  62. if (typeof category === 'string') {
  63. category = categoryNameIdxMap['ec-' + category];
  64. }
  65. var itemStyleList = ['color', 'opacity', 'symbol', 'symbolSize', 'symbolKeepAspect'];
  66. for (var i = 0; i < itemStyleList.length; i++) {
  67. if (data.getItemVisual(idx, itemStyleList[i], true) == null) {
  68. data.setItemVisual(idx, itemStyleList[i], categoriesData.getItemVisual(category, itemStyleList[i]));
  69. }
  70. }
  71. }
  72. });
  73. }
  74. });
  75. }
  76. module.exports = _default;