CandlestickView.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. var zrUtil = require("zrender/lib/core/util");
  2. var ChartView = require("../../view/Chart");
  3. var graphic = require("../../util/graphic");
  4. var _whiskerBoxCommon = require("../helper/whiskerBoxCommon");
  5. var viewMixin = _whiskerBoxCommon.viewMixin;
  6. var CandlestickView = ChartView.extend({
  7. type: 'candlestick',
  8. getStyleUpdater: function () {
  9. return updateStyle;
  10. },
  11. dispose: zrUtil.noop
  12. });
  13. zrUtil.mixin(CandlestickView, viewMixin, true); // Update common properties
  14. var normalStyleAccessPath = ['itemStyle', 'normal'];
  15. var emphasisStyleAccessPath = ['itemStyle', 'emphasis'];
  16. function updateStyle(itemGroup, data, idx) {
  17. var itemModel = data.getItemModel(idx);
  18. var normalItemStyleModel = itemModel.getModel(normalStyleAccessPath);
  19. var color = data.getItemVisual(idx, 'color');
  20. var borderColor = data.getItemVisual(idx, 'borderColor') || color; // Color must be excluded.
  21. // Because symbol provide setColor individually to set fill and stroke
  22. var itemStyle = normalItemStyleModel.getItemStyle(['color', 'color0', 'borderColor', 'borderColor0']);
  23. var whiskerEl = itemGroup.childAt(itemGroup.whiskerIndex);
  24. whiskerEl.useStyle(itemStyle);
  25. whiskerEl.style.stroke = borderColor;
  26. var bodyEl = itemGroup.childAt(itemGroup.bodyIndex);
  27. bodyEl.useStyle(itemStyle);
  28. bodyEl.style.fill = color;
  29. bodyEl.style.stroke = borderColor;
  30. var hoverStyle = itemModel.getModel(emphasisStyleAccessPath).getItemStyle();
  31. graphic.setHoverStyle(itemGroup, hoverStyle);
  32. }
  33. var _default = CandlestickView;
  34. module.exports = _default;